Mac で日本語の LaTeX 文書をビルドする方法を、LuaLaTeX と upLaTeX の2通りで説明します。どちらもコピーして使える最小のファイルを付けました。
どちらを選ぶか
LuaLaTeX と LuaTeX-ja: PDF を直接作ります。クラスは
ltjsarticleかjlreq。テンプレートの指定がなければ、まずこちらが手軽です。upLaTeX と dvipdfmx: DVI を作ってから PDF にします。クラスは
jsarticleなど。学会や大学のテンプレートがjsarticleや pLaTeX 系を前提にしているときは、こちらを使います。
テンプレートに指定がある場合は、その指定に従ってください。
準備: TeX を入れる
MacTeX には日本語のパッケージが最初から入っています。小さな TinyTeX を使う場合は、ターミナルで必要なものを足します。tlmgr が見つからなければ ~/Library/TinyTeX/bin/universal-darwin/tlmgr を指定してください。LuaLaTeX の場合:
tlmgr install luatexja haranoaji haranoaji-extra jlreq regexpatch
upLaTeX の場合は、日本語 TeX 一式のコレクションを入れます。容量の大きいコレクションです。
tlmgr install collection-langjapanese
TinyTeX を入れていない場合、ModernTex はコンパイル時に TeX が見つからないと、ワンクリックの TinyTeX インストールを案内します。
方法 1: LuaLaTeX と ltjsarticle
次を main.tex として UTF-8 で保存します。
% !TEX program = lualatex
\documentclass[a4paper,11pt]{ltjsarticle}
\usepackage{amsmath}
\title{日本語 LaTeX のテスト}
\author{山田 太郎}
\date{\today}
\begin{document}
\maketitle
\section{はじめに}
これは LuaLaTeX と LuaTeX-ja による日本語の文書です。数式 $E = mc^2$ も使えます。
\begin{equation}
\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}
\end{equation}
\end{document}
ターミナルでのビルドは次のとおりです。
latexmk -lualatex main.tex
1行目の % !TEX program = lualatex は、ModernTex のようなエディタに使うエンジンを伝えるための書き方です。latexmk 自身は読まないので、ターミナルでは -lualatex を付けます。
ltjsarticle は、日本語の既定フォントとして TeX Live に入っている原ノ味(haranoaji)を使います。Mac に入っているヒラギノを使いたいときは、\usepackage{amsmath} の前に次の1行を足します。
\usepackage[hiragino-pro]{luatexja-preset}
方法 2: LuaLaTeX と jlreq
jlreq は、日本語組版処理の要件に沿ったクラスです。LuaLaTeX では次のように書きます。
% !TEX program = lualatex
\documentclass[paper=a4,lualatex]{jlreq}
\usepackage{luatexja-preset}
\title{jlreq のテスト}
\author{山田 太郎}
\date{\today}
\begin{document}
\maketitle
\section{はじめに}
jlreq クラスは、日本語組版の要件に沿った組版を行います。句読点、括弧、行頭禁則を確認します。
\end{document}
ビルドは方法 1 と同じ latexmk -lualatex main.tex です。
方法 3: upLaTeX と dvipdfmx
3つのファイルを同じフォルダに置きます。まず main.tex です。
\documentclass[uplatex,dvipdfmx,a4paper,11pt]{jsarticle}
\usepackage{amsmath}
\title{upLaTeX のテスト}
\author{山田 太郎}
\date{\today}
\begin{document}
\maketitle
\section{はじめに}
これは upLaTeX と dvipdfmx による日本語の文書です。文献\cite{yamada2020}を引用します。数式 $E = mc^2$。
\bibliographystyle{jplain}
\bibliography{refs}
\end{document}
文献データベース refs.bib です。
@book{yamada2020,
author = {山田 太郎},
title = {日本語の組版},
publisher = {例示出版},
year = {2020},
}
そして、latexmk に upLaTeX の道具立てを教える latexmkrc です。
$latex = 'uplatex -synctex=1 -interaction=nonstopmode -file-line-error %O %S';
$bibtex = 'upbibtex %O %B';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'upmendex %O -o %D %S';
$max_repeat = 5;
$pdf_mode = 3;
各行の意味は次のとおりです。$latex は upLaTeX を呼び、$bibtex は日本語対応の upbibtex を呼びます。$dvipdf は DVI を PDF に変えます。$makeindex は upmendex を呼びます。$pdf_mode = 3 は、PDF を DVI から作る設定です。ビルドは次のとおりです。
latexmk main.tex
文字コード
上のファイルはすべて UTF-8 です。古い Shift_JIS のファイルは、macOS 付属の iconv で変換できます。
iconv -f CP932 -t UTF-8 old.tex > new.tex
ModernTex で使う
LuaLaTeX と XeLaTeX の文書は、1行目に % !TEX program = lualatex のように書けばビルドできます。upLaTeX は専用のプリセットがないため、プロジェクトの latexmkrc(Full ビルドで、確認したあとに実行されます。ModernTex 1.10.0 以降)か、Full ビルド用の独自ビルドコマンド(1.11.0 以降)で指定します。この latexmkrc の内容は TinyTeX のターミナルで確かめたもので、ModernTex の中でのビルドは確かめていません。
確認したこと
2026年10月29日に、macOS 上の TinyTeX(TeX Live 2026)で、このページの main.tex を次のとおりビルドしました。方法 1(原ノ味とヒラギノの両方)、方法 2、方法 3 はいずれも PDF になり、方法 3 では文献 [1] も正しく表示されました。TinyTeX は、上の tlmgr のコマンドを足した状態です。
よくある質問
HaranoAjiMincho-Regular.otf が見つからないと出ます。
原ノ味フォントが入っていません。TinyTeX では tlmgr install haranoaji haranoaji-extra を実行してください。ヒラギノを使うなら、\usepackage[hiragino-pro]{luatexja-preset} を足す方法もあります。
regexpatch.sty が見つからないと出ます。
tlmgr install regexpatch を実行してください。LuaTeX-ja が使う補助パッケージです。
latexmk が「Bst file not found」と表示しますが、文献は出ます。
upLaTeX で jplain などの日本語用スタイルを使うと、latexmk は自分の検索でスタイルファイルを見つけられず、この表示を出しますが、upbibtex は見つけてくれます。ビルド結果の文献が正しく出ていれば、そのままで問題ありません。
jsarticle と ltjsarticle は何が違いますか。
jsarticle は upLaTeX と pLaTeX 用、ltjsarticle は LuaLaTeX(LuaTeX-ja)用の同じ体裁のクラスです。使うエンジンに合わせて選びます。
古い Shift_JIS のファイルはそのまま使えますか。
いいえ。上の方法は UTF-8 を前提にしています。iconv -f CP932 -t UTF-8 で変換してから使ってください。
ModernTex でビルドする
ModernTex は、ソースに追従する PDF プレビュー、平易な言葉のエラー説明、投稿前チェックを備えた Mac 用の LaTeX エディタです。手元の TeX を使うので、ここまでの手順がそのまま使えます。7日間無料で、気に入れば 19.99ドルの買い切りです。