TeX Live 2019 を最新版の 2020 にアップグレードする。
TeX
TeX Live 2020 がリリースされたので、これまで使っていた TeX Live 2019 をアップグレードしてみることにしました。
MacTeX 2019 でセットアップした TeX Live 2019 を macOS で利用していたのですけれど、 その次のバージョンの TeX Live 2020 がリリースされたので、早速インストールしてみることにしました。
ところで先に、今回アップグレードしてみた所感を綴っておくと、以前は「MacTex をインストールするのが良さそう」と感じましたけれど、こうして改めてアップグレードをしてみると、MacTex でインストールした TeX Live であっても、今回のコマンドラインを使った アップグレードの方法で問題なさそうな印象でした。
それとところで、今回は TeX Live 2019 の最終リリースで、subfile を使っていると部分的にビルドしたときに ! LaTeX Error: File `import.sty' not found.
というエラーが出てしまうのが改善されるのを期待してアップグレードしたのですけれど、
少なくとも TeX Live 2020 の最初のリリースではこの問題が解消することはありませんでした。
それでは、以下では早速 TeX Live 2019 を TeX Live 2020 にアップグレードしていきます。
TeX Live 2020 にアップグレードする
アップデートの方法は基本的に こちら
で紹介した方法で大丈夫でしたけれど、
まだ
の時点では MacTeX 2020 はリリースされていないので、今回は紹介したうちの コマンドラインを使ってアップグレードする方法
を行うことにします。
TeX Live アップグレードのための下準備
アップグレードするにあたって、まずは TeX Live がインストールされているフォルダーを複製します。
既定では /usr/local/texlive
フォルダーの中にバージョン毎のフォルダーで切られてインストールされているので、
次のコマンドを実行して、既存の 2019
から 2020
に複製します。
cd /usr/local/texlive
sudo rsync -ahv --exclude='tlpkg/backups' 2019/ 2020
sudo mkdir 2020/tlpkg/backups
これで tlpkg/backups
フォルダーの内容を除く全てのファイルが 2020
フォルダー内に複製されました。
tlmgr のパスを確認する
続いて tlmgr
コマンドのアップグレードを行っていきたいところなのですけれど、
そのまま手順を進めようとすると、旧バージョン用の 2019
フォルダーに対してアップグレードを実施してしまうので、次のコマンドを実行して、新しいバージョン用の 2020
フォルダーがアクティブになるようにします。
sudo tlmgr path remove
sudo /usr/local/texlive/2020/bin/x86_64-darwin/tlmgr path add
このコマンドを実行するとき、試してみた限りでは、目的のバージョンの tlmgr
コマンドまでのパスを絶対パスで指定する必要がある様子でした。それをしなかったときにアクティブな tlmgr
に切り替わらないことがあったため、念のため次のコマンドを実行して、
tlmgr
のバージョンが適切に更新されたかどうかを確認しておくと安心かもしれません。
sudo tlmgr version
こうすることで、使用した tlmgr
コマンドが、どのバージョンで、
どのパスにインストールされているかが確認できます。
今の時点で大事になってくるのは、インストール先が /usr/local/texlive/2020
であるかどうかです。肝心の TeX Live 本体バージョンは、まだ 2019 で正解です。
tlmgr revision 53842 (2020-02-19 08:28:40 +0100) tlmgr using installation: /usr/local/texlive/2020 TeX Live (http://tug.org/texlive) version 2019
TeX Live をアップグレードする
上記の手順で tlmgr
コマンドの場所を、次に使う予定のバージョン名をつけたフォルダー内のものにできたら、今度は次のようにして tlmgr
コマンドのアップグレードコマンドを用意します。
cd 2020
sudo curl -L -O http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
これでアップグレード用のコマンド update-tlmgr-latest.sh
を入手できるので、後は次のようにして、アップグレードを実行します。
sudo sh update-tlmgr-latest.sh -- --upgrade
このとき、自分が試した限りでは、最初は次のメッセージが表示されてアップグレードが上手くいかなかったのですけれど、少しばかり時間をおいてから、アップグレード用のスクリプトを再ダウンロードしてやってみたところ、上手く行くようになりました。
Verifying archive integrity... All good.
Uncompressing TeX Live Manager Updater 100%
./runme.sh: updating in /usr/local/texlive/2020...
./runme.sh: tlmgr version says this is TeX Live 2019,
./runme.sh: and this updater script created: Thu Feb 27 02:37:09 CET 2020.
./runme.sh: have TL 2019, new version also 2019;
./runme.sh: using --upgrade doesn't make sense; terminating.
(./runme.sh: makeself creation date = Thu Feb 27 02:37:09 CET 2020.)
TeX Live をアップデートする
tlmgr
のアップグレードが完了したら、あとは普段通り、
次のコマンドを実行することで TeX Live のアップデートが行えます。
sudo tlmgr update --self --all
これで、アップグレードに関する全ての手続きが完了しました。自分の環境では 25 分ほどかかったので、 それくらいの時間は待つことになるつもりで作業をするのが良さそうです。
以前のバージョンを格納した 2019
フォルダーは削除して問題ないはずですけれど、
念のため、既存の主要な TeX ファイルをビルドできることを確認してから削除するのが良さそうです。
アップデート用のスクリプトを削除する
ここまでの作業が終われば、アップグレード用のコマンド update-tlmgr-latest.sh
は必要なくなるので、次のコマンドを実行して削除しておきます。
sudo rm -f update-tlmgr-latest.sh
TeX Live に関するパスを調整する
TeX Live 2020 自体へのアップデートが終わったところで、TeX Live に関するパスがアップデートした 2020 用のものに更新されているかを確認しておきます。
/usr/local/bin
まず、既定で利用される TeX 関連のバイナリーは /usr/local/bin
にシンボリックリンクで用意されている様子なのですけれど、これらについては上記の手順で最新のものに更新される様子でした。
たとえば ls -l /usr/local/bin/tex*
などと実行して、TeX に関連するファイルが /usr/local/texlive/2020/bin
の中のコマンドにリンクされていることが確認できます。
/Library/TeX/texbin のパスを変更する
ところで TeX を利用するときに /Library/TeX/texbin
フォルダー内のコマンドを使用することがありますけれど、
この参照先は Distributions/Programs/texbin
になっていて、これを辿ると Distributions/.DefaultTeX/Contents/Programs/texbin
に着き、
そこからさらに x86_64
へのリンクを経て /usr/local/texlive/2018/bin/x86_64-darwin
に辿り着く様子でした。
このリンク情報は システム環境設定にある TeX Destribusion というアプリで設定できるらしい のですけれど、自分の環境ではそのアプリを見つけられなかったため、正しいかどうかはわからないのですけれど、とりあえず次のコマンドを実行して、シンボリックリンクを変更しておくことにしました。
cd /Library/TeX/Distributions/.DefaultTeX/Contents/Programs
sudo rm -f i386
sudo rm -f powerpc
sudo rm -f ppc
sudo rm -f x86_64
sudo rm -f x86_64-legacy
sudo ln -s ../../../../../../../usr/local/texlive/2020/bin/i386-darwin i386
sudo ln -s ../../../../../../../usr/local/texlive/2020/bin/powerpc-darwin powerpc
sudo ln -s ../../../../../../../usr/local/texlive/2020/bin/powerpc-darwin ppc
sudo ln -s ../../../../../../../usr/local/texlive/2020/bin/x86_64-darwin x86_64
sudo ln -s ../../../../../../../usr/local/texlive/2020/bin/x86_64-darwinlegacy x86_64-legacy
Mac 環境でヒラギノフォントを割り当てる
これまで行っていた平義のフォントを割り当てる作業は、もしかすると必要ないのかもしれません。
TeX Live 2019 までは TeX Live をアップデートしたあとは、標準フォントが IPA フォントに戻ってしまっていたように思うので、今回も最初はフォントを再設定する手続きを行なっていたのですけれど、TeX Live 2020 からはフォント周りに手が入って問題なくなっているはずと教えていただきました。
TeX Live の中の人です。偶然見つけました。
— aminophen (@aminophen) April 16, 2020
「IPAex に戻ってしまう」とのことですが,2020年以降はデフォルトは「原ノ味フォント」にしてありますので,仰るような現象は起きないはずです。(また,原ノ味は Noto / 源ノフォントと同じ見た目で,ヒラギノと見比べても遜色ないと思います。)
そこで改めて、別にあった TeX Live 2019 環境を 2020 にアップグレードしてみたところ、確かに特にフォントの設定を行わなくても意図した通りのフォントが埋め込まれている様子でした。
ただ、埋め込まれているフォントは HiraKakuProN-W6
みたいで、フォント事情はよくわからないのですけれど、
もしかすると TeX Live 2019 の頃に設定したヒラギノフォントがそのまま有効になっているのかもしれません。
とりあえず、何か TeX ソースファイルをビルドしてフォントの印象が好みではない場合のときは、必要に応じてヒラギノフォントへの差し替えを検討してみるのも良いかもしれません。
システムフォントを差し替える場合
ヒラギノフォントに差し替える準備を行うにあたって、パッケージのインストールを行っておく必要があるようです。
sudo tlmgr repository add http://contrib.texlive.info/current tlcontrib
sudo tlmgr pinning add tlcontrib '*'
sudo tlmgr install japanese-otf-nonfree japanese-otf-uptex-nonfree ptex-fontmaps-macos cjk-gs-integrate-macos
そして TeX Live 周りのリンク情報を更新しておきます。
sudo cjk-gs-integrate --link-texmf --cleanup
sudo cjk-gs-integrate-macos --link-texmf
sudo mktexlsr
ヒラギノフォントに差し替える
こうして準備が整ったら、ヒラギノフォントを埋め込むためのマップファイルを作成します。 macOS Catalina でも、この方法で埋め込むことができる様子でした。
sudo kanji-config-updmap-sys --jis2004 hiragino-highsierra-pron
ヒラギノフォントに差し替えられたかを確認するには
ヒラギノフォントに正常に差し替えられたかは、TeX で PDF を作成して、その埋め込みフォントを確認するのが良さそうです。
埋め込みフォントの確認は、PDF を Adobe Reader DC で開いて
ファイル
プロパティ
から 文書のプロパティ を開きます。
ここのフォント
タブのところを見ると、その文書で使用しているフォントを確認することができます。
たとえば TeX Live 2019 で作成した PDF に IPA フォントが埋め込まれている場合は、ここでIPAexGothic(埋め込みサブセット)
や
IPAexMinchi(埋め込みサブセット)
というような表記が現れます。
ヒラギノフォントが埋め込まれている場合には、ここがHiraKakuProN-W6(埋め込みサブセット)
や
HiraMinProN-W3(埋め込みサブセット)
というような表記で登場します。