Locked History Actions

Diff for "TexLive-2021-on-CentOS8"

Differences between revisions 127 and 128
Revision 127 as of 2021-06-02 08:23:02
Size: 15912
Comment:
Revision 128 as of 2021-06-02 09:15:14
Size: 15905
Comment:
Deletions are marked like this. Additions are marked like this.
Line 132: Line 132:
この章は検証中、執筆dす。 Ghostscript (gs)の日本語対応がなくても platex, pxdvi, dvipdfmx などのコマンドは日本語や日本語フォント埋め込みに対応しており日本語TeXとして利用できるが、Ghostscript (gs)を日本語対応すると多くのコマンドが利用可能となる(下の「コマンドがインストールされる/設定されるタイミング」の表を参照) この章は検証中、準備中。 Ghostscript (gs)の日本語対応がなくても platex, pxdvi, dvipdfmx などのコマンドは日本語や日本語フォント埋め込みに対応しており日本語TeXとして利用できるが、Ghostscript (gs)を日本語対応すると多くのコマンドが利用可能となる(下の「コマンドがインストールされる/設定されるタイミング」の表を参照)

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.


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

コマンド

動作

使い方

入力ファイル

出力ファイル

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) ファイルを表す。

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)版の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) の更新と日本語対応

この章は検証中、準備中。 Ghostscript (gs)の日本語対応がなくても platex, pxdvi, dvipdfmx などのコマンドは日本語や日本語フォント埋め込みに対応しており日本語TeXとして利用できるが、Ghostscript (gs)を日本語対応すると多くのコマンドが利用可能となる(下の「コマンドがインストールされる/設定されるタイミング」の表を参照)

Tex Live 2020 から、dvipdfmx / dvips での日本語フォント埋込の既定値が「IPAex フォント」から「原ノ味フォント」に変更された。Ghostscriptもこのため最新版に更新し、cjk-gs-integrate スクリプトを実行する必要がある。

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

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

CentOS 8.3 には Ghostscript 9.25 (2018-09-13)がインストールされているが、これは古くてTex Live 2021 の日本語環境には対応しない。(20200307.0 以降のバージョンが必要)

まず Ghostscript(gs) を最新版 (9.54.0 以降) にupdate する。 https://www.ghostscript.com/download/gsdnld.html から、最新版のGhostscript の Source for all platforms を Download、展開し、configure, make, make install する。(Default の /usr/local/bin/ にインストールする)

# wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9540/ghostscript-9.54.0.tar.gz
# tar xf ghostscript-9.54.0.tar.gz
# cd ghostscript-9.54.0
# ./configure
:
# make
:
# make install
:

これで最新版(Ghostscript 9.54.0 (2021-03-30))の gs が /usr/local/bin にインストールされた。

環境がCentOS 7, Scientific Linux 7 の場合、ghostscript 9.54.0 ではコンパイルエラーが出てmakeできない場合、少し前の version

wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9533/ghostscript-9.53.3.tar.gz

を使用すれば make, make installできる。

念のため aliase も定義しておく

# ln -s /usr/local/bin/gs  /usr/local/bin/ghostscript

今回インストールしたgsがPATHの最上位にあることの確認のため gs -help を実行すると

$ gs -help 
GPL Ghostscript 9.54.0 (2021-03-30)
Copyright (C) 2021 Artifex Software, Inc.  All rights reserved.

Search path:
   %rom%Resource/Init/ : %rom%lib/ :
   /usr/local/share/ghostscript/9.54.0/Resource/Init :
   /usr/local/share/ghostscript/9.54.0/lib :
   /usr/local/share/ghostscript/9.54.0/Resource/Font :
   /usr/local/share/ghostscript/fonts :
   /usr/local/share/fonts/default/ghostscript :
   /usr/local/share/fonts/default/Type1 :
   /usr/local/share/fonts/default/TrueType : /usr/lib/DPS/outline/base :

とかと出力される。次にCJK fontsを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/local/share/ghostscript/9.54.0/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/local/share/ghostscript/9.54.0/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
# 

(cjk-gs-integrate と gs の挙動について調査中)

日本語対応のテスト

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.

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

このアーカイブから表を引用する。

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

dvips

-

J/E

J/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

dvipdf

X

E

E

J/E

ps2pdf

E

E

E

J/E

pdf2ps

E

E

E

J/E

latex

-

E

E

E

xdvi

-

E

E

E

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

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

参考: コマンドのメモ

このアーカイブから表を引用する。コマンドに対するメモは以下の通り(間違いがあるかも)。

コマンド

gs コマンド
の使用

フォントの埋め込み

備考

platex

dvipdfmx

行う

英語のフォントは埋め込んでいる?

dvips

行う

フォントを埋め込むことも出来る?

pxdvi

gv (for PS)

使用

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

gv (for PDF)

使用

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

evince (for PS)

使用

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

evince (for PDF)

gs

使用

行う?

下記参照

dvipdf

使用

行う

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

ps2pdf

使用

行う

gs のラッパー

pdf2ps

使用

行う

gs のラッパー

latex

xdvi

gs について

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