Locked History Actions

TexLive-2021-on-CentOS8

Tex Live 2021 on CentOS 8

このアーカイブを参考にCentOS 8 にTex Live 2021 (日本語対応)をインストールする。CentOS 7 / Scientific Linux (SL) 7 でも同様。

使用可能なコマンド

以下のコマンドが使える。

日本語と英語に対応しているコマンド

コマンド

動作

使い方

入力ファイル

出力ファイル

platex

TeX ファイルのコンパイル

$ platex test.tex

test.tex

test.dvi

dvipdfmx

DVI から PDF ファイルを直接作成

$ dvipdfmx test.dvi

test.dvi

test.pdf

dvipdf

DVI から PDF ファイルを直接作成

$ dvipdf test.dvi

test.dvi

test.pdf

dvips

DVI から PS ファイルを作成

$ pdvips test.dvi

test.dvi

test.ps

ps2pdf

PS から PDF ファイルを作成

$ ps2pdf test.ps

test.ps

test.pdf

pdf2ps

PDF から PS ファイルを作成

$ pdf2ps test.pdf

test.pdf

test.ps

pxdvi

DVI ファイルビューワ

$ pxdvi test.dvi

test.dvi

-

evince

PS/PDF ファイルビューワ

$ evince test.ps
$ evince test.pdf

test.ps
test.pdf

-

gv

PS/PDF ファイルビューワ

$ gv test.ps
gv test.pdf

test.ps
test.pdf

-

gs

Ghostscript インタプリタ
(PS/PDF インタプリタ)

$ gs test.ps
$ gs test.pdf

test.ps
test.pdf

misc.

lualatex

TeX ファイルのコンパイル
LuaLaTeX (LuaTeX-ja)

$ lualatex test.tex

test.tex

test.pdf


英語のみに対応しているコマンド

コマンド

動作

使い方

入力ファイル

出力ファイル

latex

TeX ファイルのコンパイル

$ latex test.tex

test.tex

test.dvi

xdvi

DVI ファイルビューワ

$ xdvi test.dvi

test.dvi

-

ここで、test.ps は PostScript (PS) ファイル、test.pdf は PDF (Portable Document Format) ファイル、 test.dvi は DVI(DeVice-Independent file format) ファイルを表す。

また、LuaLaTeX (LuaTeX-ja) もインストールされているので ここで動作テストができる。

TeX Live 2021 のインストール

1. まず ISO イメージを保存するディレクトリ (どこでも良い) に移動し、wget コマンドで TeX Live 2021 の ISO イメージを近くのミラーサーバからダウンロードする。

$ cd "ISO イメージを保存するディレクトリ"
$ wget http://ftp.riken.jp/tex-archive/systems/texlive/Images/texlive2021-20210325.iso

2. 同じディレクトリに、ISO イメージをマウントするディレクトリを作る。

$ mkdir texlive2021 

3. ISO イメージのマウントとインストーラの実行には管理者権限が必要なので、su コマンドで root ユーザになる。

4. ISO イメージとマウントディレクトリがあるかを確認したら、ISO イメージをマウント。

# ls
texlive2021  texlive2021-20210325.iso
#
# mount -o loop -t iso9660 texlive2021-20210325.iso texlive2021

5.マウントディレクトリ内の install-tl を実行。Enter command: に対して I を入力するとインストールがスタートする。速いPCだと 12分くらいでインストールできる。

# ./texlive2021/install-tl
...
Enter command: I
...

6.インストール終了後、インストーラが出力したメッセージの最後を見ると、以下のように表示されている。このメッセージに従い PATH の設定をする。

Add /usr/local/texlive/2021/texmf-dist/doc/man to MANPATH.
Add /usr/local/texlive/2021/texmf-dist/doc/info to INFOPATH.
Most importantly, add /usr/local/texlive/2021/bin/x86_64-linux
to your PATH for current and future sessions.

7. platex がインストールされているか確認。試しに platex のバージョンを確認してみる。

$  platex -v
e-pTeX 3.141592653-p3.9.0-210218-2.6 (utf8.euc) (TeX Live 2021)
kpathsea version 6.3.3
ptexenc version 1.3.9

8.アップデートを実行しておく。少し時間がかかる。

# tlmgr update --self
# tlmgr update --all

pxdvi のインストール

ここを参考に pxdviをインストールする。 (2021.5.24時点で current(2021)に tltexjp/pxdvi はまだないので 2020 のをインストール)

# wget https://texlive.texjp.org/tltexjp-key.asc
# tlmgr key add tltexjp-key.asc
# tlmgr repository add http://texlive.texjp.org/2020/tltexjp tltexjp
# tlmgr pinning add tltexjp '*'
# tlmgr install pxdvi
# tlmgr path add
# cd /usr/local/texlive/2021
# ln -s texmf-dist texmf

gv のインストール

EPELから gv をインストールする。

# dnf -y install epel-release
# dnf -y install gv

Ghostscript (gs) の日本語対応

Tex Live 2020 から、dvipdfmx / dvips での日本語フォント埋込の既定値が「IPAex フォント」から「原ノ味フォント」に変更された。Ghostscript もこの日本語フォント埋込に対応する必要がある。(Ghostscript(gs)の日本語対応が未設定の場合でも、platex, dvipfdmx, pxdvi のコマンドで日本語TeXの処理は正常にできる。)

CentOS 8.3 にプリインストールされている gs のバージョンを調べる。

$ gs -help
GPL Ghostscript 9.25 (2018-09-13)
Copyright (C) 2018 Artifex Software, Inc.  All rights reserved.

Search path:
   /usr/share/ghostscript/Resource/Init : /usr/share/ghostscript/lib :
   /usr/share/ghostscript/Resource/Font : /usr/share/ghostscript/fonts :
   /usr/share/fonts/urw-base35 : /usr/share/fonts/google-droid :
   /usr/share/ghostscript/conf.d/ : /usr/share/fonts

CentOS 8.3 には Ghostscript 9.25 (2018-09-13) がインストールされている。

Ghostscript を日本語フォント埋込に対応するために cjk-gs-integrateスクリプトを実行する。最初に念のため初期化(クリーンアップ)をし、次にフォントマップの組み込みを行う。

# cjk-gs-integrate --link-texmf  --cleanup --force
cjk-gs-integrate: reading font database ...
cjk-gs-integrate: searching for Ghostscript resource
cjk-gs-integrate: going to clean up /usr/share/ghostscript/Resource
cjk-gs-integrate: cleaning up all links, snippets and cidfmap.local ...
cjk-gs-integrate: removing cidfmap.local from cidfmap file ...
cjk-gs-integrate: removing snippets and cidfmap.aliases for font aliases ...
cjk-gs-integrate: removing cidfmap.aliases from cidfmap file ...
cjk-gs-integrate: running mktexlsr ...
mktexlsr: Updating /usr/local/texlive/2021/texmf-config/ls-R... 
mktexlsr: Updating /usr/local/texlive/2021/texmf-dist/ls-R... 
mktexlsr: Updating /usr/local/texlive/2021/texmf-var/ls-R... 
mktexlsr: Updating /usr/local/texlive/texmf-local/ls-R... 
mktexlsr: Done.
cjk-gs-integrate: finished
# 
# cjk-gs-integrate --link-texmf --force
cjk-gs-integrate: reading font database ...
cjk-gs-integrate: checking for files ...
cjk-gs-integrate: searching for Ghostscript resource
cjk-gs-integrate: output is going to /usr/share/ghostscript/Resource
cjk-gs-integrate: generating links and snippets for CID fonts ...
cjk-gs-integrate: generating links, snippets and cidfmap.local for non-CID fonts ...
cjk-gs-integrate: adding cidfmap.local to cidfmap file ...
cjk-gs-integrate: generating snippets and cidfmap.aliases for font aliases ...
cjk-gs-integrate: adding cidfmap.aliases to cidfmap file ...
cjk-gs-integrate: running mktexlsr ...
mktexlsr: Updating /usr/local/texlive/2021/texmf-config/ls-R... 
mktexlsr: Updating /usr/local/texlive/2021/texmf-dist/ls-R... 
mktexlsr: Updating /usr/local/texlive/2021/texmf-var/ls-R... 
mktexlsr: Updating /usr/local/texlive/texmf-local/ls-R... 
mktexlsr: Done.
cjk-gs-integrate: finished
# 

これで Ghostscript (gs) の日本語対応 (cjkフォントの組み込み)が行われた。

日本語対応の確認

Tex Live 2021 が日本語対応になっているかどうか、簡単にテストする。 以下のファイル jtest.tex を作成する。

\documentclass{jarticle}
\begin{document}
こんにちは世界
\end{document}

これを platex でコンパイル

$ platex jtest.tex
This is e-pTeX, Version 3.141592653-p3.9.0-210218-2.6 (utf8.euc) (TeX Live 2021)
:
Output written on jtest.dvi (1 page, 308 bytes).
$
Transcript written on jtest.log.

X11 windows 環境下で

$ pxdvi jtest.dvi

を実行すると xdvik のウインドウが開いて日本語テキストが表示されればOK。 また

$ dvipdfmx jtest.dvi
jtest.dvi -> jtest.pdf
[1]
4821 bytes written
$

のコマンドでpdfが作成でき、この pdf ファイルを X windows下で evince を実行すると

$ evince jtest.pdf

日本語テキストが表示され、さらに Properties の Font メニューで

HaranoAjiMincho-Regular-Identity-H
Type 1C (CID)
Encoding: Identity-H
Enbedded subset

CMR10
Type 1C
Encoding:Builtin
Enbedded subset

と、日本語フォント(原ノ味フォント)が埋め込まれていることを確認できればOK。さらに gsの日本語対応が行われているのを確認するため

$ platex jtest.tex
$ dvipdf jtest.dvi
$ evince jtest.pdf

で、日本語文章が表示されることを確認する。gsの日本語対応が行われていないと、dvipdf で作ったpdfファイルの日本語部分は文字化けする。

参考: コマンドがインストールされる/設定されるタイミング

このアーカイブから表を引用し修正する。Ghostscript(gs)の日本語対応により多くのコマンドが日英対応となる。(Ghostscript(gs)の日本語対応が未設定の場合でも、platex, dvipfdmx, pxdvi のコマンドで日本語TeXの処理は正常にできる。)

Step 0

Step 1

Step 2

Step 3

コマンド

CentOS 8.3
WorkStation環境
(デフォルト)

TeX Live 2021
インストール後

pxdvi, gv
インストール後

Ghostscript
日本語対応後

platex

-

J/E

J/E

J/E

dvipdfmx

-

J/E

J/E

J/E

dvipdf

-

E

E

J/E

dvips

-

E

E

J/E

pxdvi

-

-

J/E

J/E

gv (for PS)

-

-

E

J/E

gv (for PDF)

-

-

E

J/E

evince (for PS)

E

E

E

J/E

evince (for PDF)

J/E

J/E

J/E

J/E

gs

E

E

E

J/E

ps2pdf

E

E

E

J/E

pdf2ps

E

E

E

J/E

latex

-

E

E

E

xdvi

-

E

E

E

凡例
- : インストールされていない
E : 英語の文書に対しては動く
J/E : 日本語と英語の文書に対して動く

ただし、日本語フォントが埋め込まれている PS, PDF に対しては、gs コマンドの日本語設定が行われていなくても、gv, evince, gs, dvipdf, ps2pdf, pdf2ps コマンドは正しく動作するようである。

参考: コマンドのメモ

このアーカイブから表を引用し修正する。コマンドに対するメモは以下の通り。

コマンド

gs コマンド
の使用

フォントの埋め込み

備考

platex

dvipdfmx

行う

gsとは独立に
日英のフォントを埋め込む

dvipdf

使用

行う

dvips と ps2pdf を呼んでいる
ただのシェルスクリプト

dvips

使用

行う

gsを用いて
日英のフォントを埋め込む

pxdvi

gv (for PS)

使用

PS を表示する際、gs を使う。

gv (for PDF)

使用

PDF を表示する際、pdf2ps コマンドを
使って PS に変換している。

evince (for PS)

使用

PS を表示する際、gs を使う。

evince (for PDF)

gs

使用

行う?

下記参照

ps2pdf

使用

行う

gs のラッパー

pdf2ps

使用

行う

gs のラッパー

latex

xdvi

gs について

  • 入力ファイルにフォントが埋め込まれていない場合、gs は設定に従いフォントを参照する。入力ファイルに日本語フォントが埋め込まれていない場合、gs の日本語の設定が正しくされていないと、エラーとなったり、出力結果が文字化けする。gs の出力ファイルには、設定に従ったフォントが埋め込まれる。入力ファイルにフォントが埋め込まれている場合、特に問題は起きないようだ。