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 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(埋め込みサブセット) というような表記で登場します。