0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TeX】Tex Liveで前バージョンで入れていたパッケージを引き継ぐ

0
Posted at

はじめに

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 $_ }

感想

何か事情があるのかもしれないが,毎年インストーラをダウンロードさせるならせめてパッケージ引き継ぎ機能をインストール設定に追加してほしいと感じた.

この情報がどなたかの参考になれば幸いです.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?