はじめまして。モナディコスという屋号でマニュアル代理作成及び作業効率化ツール作成を始めました。
マニュアル代理作成ではTypstを使用しています。それを応用して手軽にマニュアルを無料作成できる無料自動マニュアル作成ツールを作成しています。
Renderで現在稼働中なのですが、運用するにあたり日本語フォントでこけたのでメモです。
背景
- 無料自動マニュアル作成ツールをTypst×flask×Renderで作成中
- Render上(Linux)ではデフォルトで日本語フォントが含まれていない。
- Render.com 上でアプリをデプロイし、Typst を使って PDF を自動生成したい。
- 日本語テキスト(例:明朝体)を含むPDFを生成するには、日本語フォントを手動でインストールしてキャッシュさせる必要がある。
結論
- .fonts に日本語フォント(例:IPA明朝)の .ttf を配置
- fc-cache -fv .fonts を実行してキャッシュを再構築
- Typstで明朝体のPDFがRender上でも正常に出力できたことを確認
やったこと
- render.yaml の設定(抜粋)
今回使用したフォントはIPA明朝です。色々ありますが、TTFファイルの4書体パック(Ver.003.03)
をRender上でcurlコマンドでダウンロードしています。
services:
- type: web
name: monadikos_LP_app
runtime: python
rootDir: project
buildCommand: |
mkdir -p typst
curl -L https://github.com/typst/typst/releases/download/v0.13.1/typst-x86_64-unknown-linux-musl.tar.xz -o typst.tar.xz
tar -xf typst.tar.xz
cp typst*/typst typst/typst
mkdir -p .fonts
curl -LO https://moji.or.jp/wp-content/ipafont/IPAfont/IPAfont00303.zip
unzip IPAfont00303.zip -d .fonts
fc-cache -fv .fonts
pip install -r requirements.txt
startCommand: |
export HOME=$(pwd)
export PATH="$PATH:$(pwd)/typst"
export FONTCONFIG_PATH="$(pwd)/.fonts"
gunicorn app:app
なお、HOME
のパスを書き換えていますが、これをしないとFONTCONFIG_PATH
を設定してもフォントが読み込まれません。
buildCommandは主にファイルの展開
startCommandは環境変数の設定およびアプリの実行
という使い分けで理解しておいた方がよい(一敗)
2.Typst 側のフォント指定
#text(
...
font: "IPAMincho"
...
)
Renderのダッシュボード
>MANAGE
>Shell
からサーバーにSSHログインし
例えばfc-list : family
コマンドでフォントがIPA明朝で設定されているか確認しても表示されない。
なぜなら、実行中の環境(IPA明朝がインストールされた環境)とSSHログインした環境は別物だから。
以上がRender(Linux)でTypstに日本語フォント(IPA明朝)を適応する方法です。
ちなみに無料自動マニュアル作成ツールを使うと、こんなのが出てきます。ちゃんと日本語で出力されています。