Mac上でのPDFやePUB生成に使うMacTexの日本語出力対応込セットアップをTerminal上で完結させてみた
はじめに
PCからPDFファイルの作成を行う場合、ブラウザ上でファイルを開いてプリントにてPDF出力を選んでいます。レイアウト調整もやりやすくて大体はそれで完結するためです。
ただ、全く問題がないわけでもありません。印刷時のページ数が多くなるケースではブラウザが応答不能になる可能性もあります。
対策として、電子書籍のPDF等を作成する際に用いられるMacTexを試してみることにしました。が、インストールをTerminalで完結させようとしたところ、思いの外手間取ったため、完了するまでの過程を記録として残してみました。
MacTexの導入
HomeBrewでさくっと終わらせられます。
brew cask install mactex
問題は初期設定状態だと日本語文書が作成できない点です。パッケージを追加インストールする必要があります。
サブセットのインストール
インストールのためのコマンドはシンプルです。
sudo tlmgr update --self --all
もしも以下のようなエラーが出た場合は、初期登録のアップデート用リポジトリが機能していません。
/Library/TeX/texbin/tlmgr: TLPDB::from_file could not download https://ftp.kddilabs.jp/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb; /Library/TeX/texbin/tlmgr: maybe the repository setting should be changed.
ミラーリングリポジトリを登録します。
sudo tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
恐らくこれで上手くいくはずです。が、以下のようなエラーが出てくる場合、更に対策を取る必要があります。
/Library/TeX/texbin/tlmgr: unexpected return value from verify_checksum: -5
最新版のアップデート用バッチスクリプトを実行する
対策としては以下のようになります。
Please update with update-tlmgr-latest.sh, after that normal operation can be done.
ミラーリングリポジトリ上からupdate-tlmgr-latest.sh
を直接落として実行します。
wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sudo kpsewhich --var-value=SELFAUTOPARENT sudo sh ./update-tlmgr-latest.sh
Verifying archive integrity... All good. Uncompressing TeX Live Manager Updater 100% ./runme.sh: updating in /usr/local/texlive/2019... ./runme.sh: tlmgr version says this is TeX Live 2019, ./runme.sh: and this updater script created: Thu Jul 9 02:37:20 CEST 2020. ./runme.sh: proceeding with tlmgr update. ./runme.sh: updating /usr/local/texlive/2019/bin/x86_64-darwin ... ./runme.sh: /Library/TeX/texbin/tlmgr including objects: master/tlpkg/tlpobj/texlive.infra.tlpobj master/tlpkg/tlpobj/texlive.infra.x86_64-darwin.tlpobj D:appending to package log file: /usr/local/texlive/2019/texmf-var/web2c/tlmgr.log D:appending to command log file: /usr/local/texlive/2019/texmf-var/web2c/tlmgr-commands.log D:tlmgr:main: ::tldownload_server not defined D:setup_programs: preferring system versions D:program curl found in path D:program wget found in path D:program lz4 not usable from path D:(unix) trying to set up lz4, default /usr/local/texlive/2019/tlpkg/installer/lz4/lz4.x86_64-darwin, arg --version D: Using shipped /usr/local/texlive/2019/tlpkg/installer/lz4/lz4.x86_64-darwin for lz4 (tested). D:program gzip found in path D:program xz found in path ./runme.sh: done.
サブセットのインストールを再度試してみます。
sudo tlmgr update --self -all
tlmgr: package repository http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet (verified) tlmgr: saving backups to /usr/local/texlive/2019/tlpkg/backups [ 1/1412] auto-remove: guide-latex-fr ... done [ 2/1412] auto-remove: presentations ... done [ 3/1412] auto-remove: einfuehrung ... done [ 4/1412] auto-remove: einfuehrung2 ... done .. [ 42/1412] auto-remove: tetex ... done [ 43/1412] auto-remove: bezos ... done [ 44/1412, ??:??/??:??] update: 2up [56k] (41578 -> 55076) ... done [ 45/1412, 00:02/17:04:22] update: IEEEtran [564k] (38238 -> 51065) ... done [ 46/1412, 00:04/03:03:17] update: SIstyle [338k] (15878 -> 54080) ... done [ 47/1412, 00:06/02:57:56] update: a0poster [119k] (15878 -> 54071) ... done [ 48/1412, 00:08/03:31:03] update: a2ping [69k] (49161 -> 52964) ... done [ 49/1412, 00:09/03:43:09] update: aastex [1267k] (47692 -> 51836) ... done [ 50/1412, 00:11/02:09:22] update: abnt [121k] (49188 -> 55471) ... done [ 51/1412, 00:13/02:25:37] update: academicons [126k] (48100 -> 54512) ... done [ 52/1412, 00:14/02:29:26] update: achemso [895k] (50025 -> 55899) ... done [ 53/1412, 00:19/02:31:42] update: acmart [3498k] (50968 -> 55004) ... done [ 54/1412, 00:26/01:44:33] update: acro [1226k] (50045 -> 55090) ... done ... running mktexlsr ... done running mktexlsr. running mtxrun --generate ... done running mtxrun --generate. running updmap-sys ... done running updmap-sys. regenerating language.dat regenerating language.def regenerating language.dat.lua regenerating fmtutil.cnf in /usr/local/texlive/2019/texmf-dist running fmtutil-sys --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --no-error-if-no-format --byengine aleph ... done running fmtutil-sys --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --no-error-if-no-format --byengine aleph. running fmtutil-sys --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --no-error-if-no-format --byengine luajithbtex ... done running fmtutil-sys --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --no-error-if-no-format --byengine luajithbtex. running fmtutil-sys --no-error-if-no-engine=luajithbtex,luajittex,mfluajit --no-error-if-no-format --byengine ptex ... ... tlmgr: package log updated: /usr/local/texlive/2019/texmf-var/web2c/tlmgr.log
ログに出ている時間を見るとわかるように、完了までにはそれなりの時間がかかります。
実行するコマンドまとめ
以下の順にコマンドを実行しましょう。
brew cask install mactex sudo tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sudo kpsewhich --var-value=SELFAUTOPARENT sudo sh ./update-tlmgr-latest.sh sudo tlmgr update --self -all
実際にPDFが生成されることを確認する
実際に日本語を文書中に使っている、TechBooster公開のTechBooster/ReVIEW-Templateにて確認してみます。
gem install bundler git clone git@github.com:TechBooster/ReVIEW-Template.git cd ReVIEW-Template npm install npm run pdf open articles/ReVIEW-Template.pdf
ReVIEW-template/articles
下にReVIEW-Template.pdf
が生成されます。尚、gitignoreに該当pdfファイルが含まれているため、git diff
しても差分として出てくることはありません。
あとがき
GUIインストーラによる説明は多く存在しましたが、Terminalでのインストール手順になかなかたどり着けない状態でした。コマンド貼り付けだけで済ませたい場合にはおすすめです。