はじめに
TeX Liveは毎年その年度版が公開される.今年のバージョン(TeX Live 2026)も3月に公開された.しかしインストーラは,パッケージの引継ぎを自動で行ってはくれない.
引き継ぐ方法を調べたところ,それらしい情報がヒットしなかったため,自分の環境でうまくいった方法を共有したい.
自分の環境
| 項目 | バージョン |
|---|---|
| OS | Windows11 Home 25H2 |
| TeXディストリビューション | TeX Live 2026 |
手順
Tex Live インストーラはダウンロード済みとして説明をしていきます.
1. 前バージョンでインストールしていたパッケージを取得する
PowerShellで以下のコマンドを実行することで,前バージョンでインストールしていたパッケージの一覧を old.txt に出力する.
tlmgr info --only-installed --data name | Sort-Object | Set-Content old.txt
先に新バージョンのインストールを完了させると,参照先が新バージョンになり,前バージョンを取得するためには環境変数をいじる必要があって面倒だった.
上記の操作は最初にやっておいたほうが良い.
2. 新しいTeX Liveをインストールする
インストーラを実行し,インストールを行う.
この記事の対象者は,TeX Liveをインストールしたことがある方であるためここは割愛する.
3. 新バージョンのパッケージ一覧を取得する
PowerShellで以下のコマンドを実行することで,
新バージョンのインストーラの実行によってインストールされたパッケージ一覧を new.txt に出力する.
tlmgr info --only-installed --data name | Sort-Object | Set-Content new.txt
行う操作自体は手順1と変わらない.
4. 取得したパッケージ一覧の差分を取得する
PowerShellで以下のコマンドを実行することで,old.txtにあってnew.txtにはない,すなわち前TeX Liveにあって新しいTeX Liveにはないパッケージをdiff.txtに出力する.
Compare-Object (Get-Content old.txt) (Get-Content new.txt) `
| Where-Object {$_.SideIndicator -eq "<="} `
| Select-Object -ExpandProperty InputObject `
| Set-Content diff.txt
5. 差分情報から新バージョンにパッケージをインストールする
PowerShellで以下のコマンドを実行することで,取得したdiff.txtにあるパッケージを新バージョンのTeX Liveにインストールする.
Get-Content diff.txt | ForEach-Object { tlmgr install $_ }
感想
何か事情があるのかもしれないが,毎年インストーラをダウンロードさせるならせめてパッケージ引き継ぎ機能をインストール設定に追加してほしいと感じた.
この情報がどなたかの参考になれば幸いです.