Fedora 31でuptex環境を設定

久しぶりにlatex関係の情報を調べたら、ptexの拡張であるuptexを知った。早速設定してみた。

Fedora 31ではtexliveのパッケージがあるため、特に追加インストールがなくてもコンパイル、PDF変換ができるが、なぜか付属のxdviでは日本語を表示させることができないため、pxdviを導入する必要がある。

1.以下のサイトからpxdvi.tar.xz、pxdvi.x86_64-linux.tar.xz  をダウンロードし、解凍しておく。

https://texlive.texjp.org/current/tltexjp/archive/

 

2.以下のようにファイルをローカルにインストールする。(->の後ろはインストール後のフルパス)

(ちなみに、Linuxのインストールでは

install -m インストール後のファイルモード 元ファイルのフルパス インストール先のフルパス

のコマンドで実施可能(要root権限))

2-1) pxdvi.tar.xz の解凍ファイル

texmf-dist/xdvi/xdvi-ptex.map.sample  -> /usr/share/texlive/texmf-dist/xdvi/xdvi-ptex.map.sample

texmf-dist/xdvi/pxdvi.cfg  -> /usr/share/texlive/exmf-dist/xdvi/pxdvi.cfg

texmf-dist/fonts/map/pxdvi/xdvi-ptex.map -> /usr/share/texlive/texmf-dist/fonts/map/pxdvi/xdvi-ptex.map

2-2)  pxdvi.x86_64-linux.tar.xz の解凍ファイル

bin/x86_64-linux/pxdvi -> /usr/share/texlive/bin/x86_64-linux/pxdvi

bin/x86_64-linux/pxdvi-xaw -> /usr/share/texlive/bin/x86_64-linux/pxdvi-xaw

 

3.以下のような追加作業を実施する(要root権限

3-1) texmf.cnf リンク作成

ln -s /etc/texlive/web2c/texmf.cnf /usr/share/texlive/bin/

3-2) /usr/share/texlive/bin/pxdvi を修正(最後の行を変更)

変更前:

exec pxdvi-xaw $NAMEOPT ${1+"$@"}

変更後:

exec $(dirname $0)/pxdvi-xaw $NAMEOPT ${1+"$@"}

3-3) xdvi-ptex.map ファイルの修正

/usr/share/texlive/texmf-dist/fonts/map/pxdvi/xdvi-ptex.map に以下の行を追加(/usr/share/texlive/texmf-dist/fonts/map/dvipdfmx/updmap/kanjix.map から取得)

% uptex-ko-baekmuk.map
uphygt-h UniKS-UTF16-H dotum.ttf %!PS Baekmuk-Dotum
uphygt-v UniKS-UTF16-V dotum.ttf %!PS Baekmuk-Dotum
uphysmjm-h UniKS-UTF16-H batang.ttf %!PS Baekmuk-Batang
uphysmjm-v UniKS-UTF16-V batang.ttf %!PS Baekmuk-Batang
% uptex-sc-arphic.map
upstht-h UniGB-UTF16-H gkai00mp.ttf %!PS GBZenKai-Medium
upstht-v UniGB-UTF16-V gkai00mp.ttf %!PS GBZenKai-Medium
upstsl-h UniGB-UTF16-H gbsn00lp.ttf %!PS BousungEG-Light-GB
upstsl-v UniGB-UTF16-V gbsn00lp.ttf %!PS BousungEG-Light-GB
% uptex-tc-arphic.map
upmhm-h UniCNS-UTF16-H bkai00mp.ttf %!PS ZenKai-Medium
upmhm-v UniCNS-UTF16-V bkai00mp.ttf %!PS ZenKai-Medium
upmsl-h UniCNS-UTF16-H bsmi00lp.ttf %!PS ShanHeiSun-Light
upmsl-v UniCNS-UTF16-V bsmi00lp.ttf %!PS ShanHeiSun-Light

3-4) mktexlsrを実行

sudo mktexlsr

必ずroot権限で実行

 

4.以下の追加設定を実施(root権限不要)

4-1) xdvi スクリプトを追加

~/bin/xdvi を追加し、実行権限を付ける。中身は以下のようにする。

#! /bin/sh

/usr/share/texlive/bin/pxdvi "$@"

4-2) .bashrc を編集して、以下の行を追加

export TEXMF=/usr/share/texlive/

 

5.動作確認

5-1) helloj.tex (一番基本なtexファイル)

以下の内容をUTF-8エンコーディングで保存する。

\documentclass{ujarticle}
\begin{document}

こんにちは, \TeX!

\end{document}

以下のコマンドを実行する。

# texコンパイル

uplatex helloj

# dviファイルの表示

xdvi helloj

pxdviの画面

pxdviの画面

# PDFファイル作成
dvipdfmx helloj

# PDFファイルを表示(好きなPDFビューワーを使う)

atril helloj.pdf

atrilの画面

atrilの画面

5-2) cjk.texhttps://texwiki.texjp.org/?upTeX%2CupLaTeX#p5e56276 にあるCJKサンプルファイル)

以下の内容をUTF-8エンコーディングで保存する。

\documentclass{ujarticle}
% CJK fontの設定
\DeclareFontFamily{JT2}{jpnrm}{}
\DeclareFontFamily{JY2}{jpnrm}{}
\DeclareFontFamily{JT2}{schrm}{}
\DeclareFontFamily{JY2}{schrm}{}
\DeclareFontFamily{JT2}{tchrm}{}
\DeclareFontFamily{JY2}{tchrm}{}
\DeclareFontFamily{JT2}{korrm}{}
\DeclareFontFamily{JY2}{korrm}{}
\DeclareFontShape{JT2}{jpnrm}{m}{n}{<->s*[0.962216]upjpnrm-h}{}
\DeclareFontShape{JY2}{jpnrm}{m}{n}{<->s*[0.962216]upjpnrm-h}{}
\DeclareFontShape{JT2}{schrm}{m}{n}{<->s*[0.962216]upschrm-h}{}
\DeclareFontShape{JY2}{schrm}{m}{n}{<->s*[0.962216]upschrm-h}{}
\DeclareFontShape{JT2}{tchrm}{m}{n}{<->s*[0.962216]uptchrm-h}{}
\DeclareFontShape{JY2}{tchrm}{m}{n}{<->s*[0.962216]uptchrm-h}{}
\DeclareFontShape{JT2}{korrm}{m}{n}{<->s*[0.962216]upkorrm-h}{}
\DeclareFontShape{JY2}{korrm}{m}{n}{<->s*[0.962216]upkorrm-h}{}
\DeclareFontShape{JT2}{jpnrm}{bx}{n}{<->ssub*jpnrm/m/n}{}
\DeclareFontShape{JY2}{jpnrm}{bx}{n}{<->ssub*jpnrm/m/n}{}
\DeclareFontShape{JT2}{schrm}{bx}{n}{<->ssub*schrm/m/n}{}
\DeclareFontShape{JY2}{schrm}{bx}{n}{<->ssub*schrm/m/n}{}
\DeclareFontShape{JT2}{tchrm}{bx}{n}{<->ssub*tchrm/m/n}{}
\DeclareFontShape{JY2}{tchrm}{bx}{n}{<->ssub*tchrm/m/n}{}
\DeclareFontShape{JT2}{korrm}{bx}{n}{<->ssub*korrm/m/n}{}
\DeclareFontShape{JY2}{korrm}{bx}{n}{<->ssub*korrm/m/n}{}
\DeclareRobustCommand\jpnrm{\kanjifamily{jpnrm}\selectfont}
\DeclareRobustCommand\schrm{\kanjifamily{schrm}\selectfont}
\DeclareRobustCommand\tchrm{\kanjifamily{tchrm}\selectfont}
\DeclareRobustCommand\korrm{\kanjifamily{korrm}\selectfont}
\begin{document}
\section{日本語}
\jpnrm
すべての人間は、生まれながらにして自由であり、かつ、尊厳と権利とについて平等である。
人間は、理性と良心とを授けられており、互いに同胞の精神をもって行動しなければならない。
\section{中国語・簡体字 {\schrm 简体中文}}
{\schrm
人人生而自由,在尊严和权利上一律平等。
他们赋有理性和良心,并应以兄弟关系的精神相对待。
}
\section{中国語・繁体字 {\tchrm 繁體中文}}
{\tchrm
人人生而自由,在尊嚴和權利上一律平等。
他們賦有理性和良心,並應以兄弟關係的精神相對待。
}
\section{韓国語 {\korrm 한국어}}
{\korrm
\xkanjiskip=.1zw plus 1pt minus 1pt
모든 인간은 태어날 때부터 자유로우며 그 존엄과 권리에 있어 동등하다.
인간은 천부적으로 이성과 양심을 부여받았으며 서로 형제애의 정신으로 행동하여야 한다.
}
\end{document}

以下のコマンドを実行する。

# texコンパイル

uplatex cjk

# dviファイルの表示

xdvi cjk

pxdviの画面

pxdviの画面

# PDFファイル作成
dvipdfmx cjk

# PDFファイルを表示(好きなPDFビューワーを使う)

atril cjk.pdf

atrilの画面

atrilの画面