Skip to content

Instantly share code, notes, and snippets.

@so298
Created April 2, 2024 13:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save so298/1ea5a0512722641d6091a1a8c264a5b9 to your computer and use it in GitHub Desktop.
Save so298/1ea5a0512722641d6091a1a8c264a5b9 to your computer and use it in GitHub Desktop.
(lua)LaTeXでフォントを設定する方法について

$\text{(Lua)}\LaTeX$ でフォントを設定する方法

$\LaTeX$を使っていて、たまにフォントを指定して組版したいときに毎回調べていて大変なので、備忘録として書いておきます

同じ方法が$\text{Xe}\LaTeX$では利用可能だと思いますが、他の実装($\text{p}\LaTeX$など)では多分使えないです

TL;DR

LuaLaTeXなどではfontspecパッケージを利用して利用するフォントをかんたんに指定することができる

\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{HaranoAjiMincho}[
  ItalicFont = {IBM Plex Serif Italic},   % フォントの種類ごとに細かく指定する
\setsansfont{HaranoAjiGothic}[
  AutoFakeSlant=0.2                       % 日本語フォントで擬似的にItalicを再現する
]
\setmonofont{Latin Modern Mono}
\setmathfont{Latin Modern Math}

前提

  • $\text{lua}\LaTeX$を利用している
  • Linux環境で$\LaTeX$を利用している
  • TeXLiveを利用している

使えるフォントを確認する

fontspecパッケージでは基本的にシステムでインストールしているフォントは利用できる。また、ctanからインストールしたフォントも利用することができる

CTAN経由で追加する

tlmgrコマンドでCTANにあるフォントを追加できる

この方法で追加されたフォントはkpsewhich -var-value=TEXMFDISTで得られるパスの下にインストールされる

# tlmgrでインストールされているフォントを確認する (かなり多いので注意)
find $(kpsewhich -var-value=TEXMFDIST)/fonts -type f \( -name "*.otf" -o -name "*.ttf" -o -name "*.pfb" -o -name "*.tfm" \) | less

システムのパッケージマネージャ経由で追加する

Linuxのシステムのパッケージマネージャ経由で追加したfontを利用することができます。 例えば、Debianではこちらから利用可能なフォントを検索できる

また、fc-listコマンド(Debianではfontconfigパッケージを追加で利用可能)でインストールされているフォントを調べることができる

$ fc-list :family
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK SC:style=Bold
/usr/share/fonts/opentype/noto/NotoSerifCJK-Bold.ttc: Noto Serif CJK TC:style=Bold
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment