Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2024/11/21 17:40:55.112 (台灣標準時)

LaTeX CJK で日本語や中国語を取り扱うための準備について

LaTeX において、日本語や中国語を使うための準備についてまとめておくでご ざる。日本語と中国語を一つの文書内に混在させることもできるでござる。

LaTeX CJK のインストール

NetBSD では、 pkgsrc を使うと LaTeX CJK を簡単にインストールすることが できるでござる。


# cd /usr/pkgsrc/print/tex-cjk
# make install
# make clean
# pkg_info | grep cjk
tex-cjk-4.8.5       CJK language support

また、 cjkutils もインストールしておくでござる。


# cd /usr/pkgsrc/print/cjkutils
# make install
# make clean
# pkg_info | grep cjk
tex-cjk-4.8.5       CJK language support
tex-cjkutils-4.8.5  CJK language support
cjkutils-4.8.5      Utilities for CJK LaTeX

DVI ファイルから PS ファイルを生成するのに dvipsk を使うので、 dvipsk をインストールしておくでござる。


# cd /usr/pkgsrc/print/dvipsk
# make install
# make clean
# pkg_info | grep dvips
tex-dvips-2020      Files for a DVI to PostScript driver
dvipsk-2022.1       DVI-to-PostScript translator

DVI ファイルから PDF ファイルを生成するのに dvipdfmx を使うので、 dvipdfmx をインストールしておくでござる。


# cd /usr/pkgsrc/print/dvipdfmx
# make install
# make clean
# pkg_info | grep dvipdf
tex-dvipdfmx-2021   Supplementary files for dvipdfmx
dvipdfmx-20211117   DVI to PDF converter with CID-keyed font support

Unicode フォントをインストールしておくでござる。


# cd /usr/pkgsrc/fonts/cyberbit-ttf
# make install
# make clean
# pkg_info | grep cyberbit
cyberbit-ttf-2.0nb8 Multilingual TrueType font from Bitstream

日本語フォントをインストールしておくでござる。


# cd /usr/pkgsrc/fonts/ipafont
# make install
# make clean
# cd /usr/pkgsrc/fonts/ipaexfont
# make install
# make clean
# pkg_info | grep ipa
ipaexfont-00401     IPAex fonts (fixed JIS X0213 Kanji, and proportional ASCII)
ipafont-00303nb1    IPA JIS X 0213 fonts (Gothic, P Gothic, Mincho, and P Mincho)

中国語フォントをインストールしておくでござる。


# cd /usr/pkgsrc/fonts/arphic-ttf
# make install
# make clean
# pkg_info | grep arphic
arphic-ttf-2.11nb6  Chinese TrueType fonts from Arphic Technology
tex-arphic-2.11nb2  Arphic (Chinese) font packages

ttf2tfm コマンドが必要になるので、それを含む ttf2pk パッケージをインス トールしておくでござる。


# cd /usr/pkgsrc/fonts/ttf2pk
# make install
# make clean
# pkg_info | grep ttf2pk
ttf2pk-2.0nb8       TrueType to TeX PK font converter

Unicode.sfd などの subfont definition ファイルも必要になるので、 tex-ttfutils もインストールしておくでござる。


# cd /usr/pkgsrc/fonts/tex-ttfutils
# make install
# make clean
# pkg_info | grep ttfutils
tex-ttfutils-2013   Data files for TeX Live TTF utilities

Unicode フォントの準備

まず、 texmf.cnf ファイルを参照し、 TrueType フォントを置くべき場所を 確認するでござる。まず、 texmf.cnf ファイルの在り処を探してみるでござ る。


# find /usr/pkg -name texmf.cnf -print
/usr/pkg/share/texmf-dist/web2c/texmf.cnf
/usr/pkg/pkgdb.refcount/files/usr/pkg/etc/texmf/texmf.cnf
/usr/pkg/etc/texmf/texmf.cnf

/usr/pkg/share/texmf-dist/web2c/texmf.cnf にあるようなので、そのファイ ルの中身を見てみるでござる。


% TrueType outline fonts.
TTFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR//

fig_202305/texmf_cnf_00.png

TrueType フォントは、 $TEXMF/fonts/truetype に置くのがよさそうでござる。 では、 $TEXMF というのはどこなのでござろうか。これについても、 texmf.cnf ファイルを見て探してみるでござる。


% List all the texmf trees. For an explanation of what they are, see the
% TeX Live manual.
%
% For texconfig to work properly, TEXMFCONFIG and TEXMFVAR should be named
% explicitly and before other trees.
% 
% TEXMFLOCAL precedes TEXMFDIST because locally-installed versions
% should take precedence over distribution files -- although it is
% generally a source of confusion to have different versions of a
% package installed, whatever the trees, so try to avoid it.
% 
% The odd-looking $TEXMFAUXTREES$TEXMF... construct is so that if no auxtree is
% ever defined (the 99% common case), no extra elements will be added to
% the search paths. tlmgr takes care to end any value with a trailing comma.
TEXMF = {$TEXMFAUXTREES$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFDIST}

fig_202305/texmf_cnf_01.png

複数のディレクトリが指定されているようでござる。 $TEXMFDIST には、標準 的な配布物を置くようなので、 $TEXMFLOCAL の下に TrueType フォントを置 くのが良さそうでござる。 $TEXMFLOCAL の場所を探してみるでござる。


% The main tree of distributed packages and programs:
TEXMFDIST = $TEXMFROOT/texmf-dist

% We used to have a separate /texmf tree with some core programs and files.
% Keep the variable name.
TEXMFMAIN = $TEXMFDIST

% Local additions to the distribution trees.
TEXMFLOCAL = /usr/pkg/share/texmf-local

% TEXMFSYSVAR, where *-sys store cached runtime data.
TEXMFSYSVAR = /var/lib/texmf

% TEXMFSYSCONFIG, where *-sys store configuration data.
TEXMFSYSCONFIG = /usr/pkg/etc/texmf

fig_202305/texmf_cnf_02.png

$TEXMFLOCAL は /usr/pkg/share/texmf-local のようでござる。よって、 TrueType フォントは /usr/pkg/share/texmf-local/fonts/truetype に置くこ ととするでござる。 /usr/pkg/share/texmf-local/fonts/truetype はまだ存 在していないので、ディレクトリを作っておくでござる。


# mkdir -p /usr/pkg/share/texmf-local/fonts/truetype
# cd /usr/pkg/share/texmf-local/fonts/truetype
# pwd
/usr/pkg/share/texmf-local/fonts/truetype

cyberbit フォントが /usr/pkg/share/texmf-local/fonts/truetype で参照で きるように、シンボリックリンクを作っておくでござる。大文字と小文字は区 別されるので、小文字を使って cyberbit.ttf として参照できるようにしてお くでござる。


# pwd
/usr/pkg/share/texmf-local/fonts/truetype
# ln -s /usr/pkg/share/fonts/X11/TTF/Cyberbit.ttf cyberbit.ttf
# ls -lF
total 0
lrwxr-xr-x  1 root  wheel  41 May  3 11:46 cyberbit.ttf@ -> /usr/pkg/share/fonts/X11/TTF/Cyberbit.ttf

この後、 TFM (TeX Font Metric) ファイルを生成するのでござるが、その TFM ファイルをどこに置けばよいのか、 texmf.cnf ファイルを見て確認して おくでござる。


% Device-independent font metric files.
VFFONTS = $TEXMFDOTDIR;$TEXMF/fonts/vf//
TFMFONTS = $TEXMFDOTDIR;{$TEXMF/fonts,$VARTEXFONTS}/tfm//

fig_202305/texmf_cnf_03.png

$TEXMF/fonts/tfm に置けばよいようでござる。つまり、 /usr/pkg/share/texmf-local/fonts/tfm でござる。ただ、複数のフォントの ファイルをどれも /usr/pkg/share/texmf-local/fonts/tfm に置くと、ごちゃ ごちゃしてわかりにくいので、 cyberbit フォントの TFM ファイルは、 /usr/pkg/share/texmf-local/fonts/tfm/bitstrea/cyberbit に置くこととす るでござる。そのディレクトリはまだ存在していないので、ディレクトリを作 成しておくでござる。


# mkdir -p /usr/pkg/share/texmf-local/fonts/tfm/bitstrea/cyberbit
# cd /usr/pkg/share/texmf-local/fonts/tfm/bitstrea/cyberbit
# pwd
/usr/pkg/share/texmf-local/fonts/tfm/bitstrea/cyberbit

ttf2tfm コマンドを使って TrueType フォント cyberbit.ttf から TFM ファ イルを生成するでござる。


# pwd
/usr/pkg/share/texmf-local/fonts/tfm/bitstrea/cyberbit
# ttf2tfm ../../../truetype/cyberbit.ttf -w cyberb@Unicode@

.....

cyberb10fd:

Glyph  Code   Glyph Name                Width    llx   lly      urx   ury
-------------------------------------------------------------------------


cyberb10fe:

Glyph  Code   Glyph Name                Width    llx   lly      urx   ury
-------------------------------------------------------------------------


cyberb10ff:

Glyph  Code   Glyph Name                Width    llx   lly      urx   ury
-------------------------------------------------------------------------

cyberb@Unicode@   ../../../truetype/cyberbit.ttf
# ls
cyberb00.enc cyberb3b.tfm cyberb67.enc cyberb82.tfm cyberb9e.enc cyberbc5.tfm
cyberb00.tfm cyberb3c.enc cyberb67.tfm cyberb83.enc cyberb9e.tfm cyberbc6.enc
cyberb01.enc cyberb3c.tfm cyberb68.enc cyberb83.tfm cyberb9f.enc cyberbc6.tfm
cyberb01.tfm cyberb3d.enc cyberb68.tfm cyberb84.enc cyberb9f.tfm cyberbc7.enc
cyberb02.enc cyberb3d.tfm cyberb69.enc cyberb84.tfm cyberbac.enc cyberbc7.tfm
cyberb02.tfm cyberb4e.enc cyberb69.tfm cyberb85.enc cyberbac.tfm cyberbc8.enc
cyberb03.enc cyberb4e.tfm cyberb6a.enc cyberb85.tfm cyberbad.enc cyberbc8.tfm
cyberb03.tfm cyberb4f.enc cyberb6a.tfm cyberb86.enc cyberbad.tfm cyberbc9.enc
cyberb04.enc cyberb4f.tfm cyberb6b.enc cyberb86.tfm cyberbae.enc cyberbc9.tfm
cyberb04.tfm cyberb50.enc cyberb6b.tfm cyberb87.enc cyberbae.tfm cyberbca.enc

.....

cyberb36.tfm cyberb62.enc cyberb7d.tfm cyberb99.enc cyberbc0.tfm cyberbfb.enc
cyberb37.enc cyberb62.tfm cyberb7e.enc cyberb99.tfm cyberbc1.enc cyberbfb.tfm
cyberb37.tfm cyberb63.enc cyberb7e.tfm cyberb9a.enc cyberbc1.tfm cyberbfc.enc
cyberb38.enc cyberb63.tfm cyberb7f.enc cyberb9a.tfm cyberbc2.enc cyberbfc.tfm
cyberb38.tfm cyberb64.enc cyberb7f.tfm cyberb9b.enc cyberbc2.tfm cyberbfd.enc
cyberb39.enc cyberb64.tfm cyberb80.enc cyberb9b.tfm cyberbc3.enc cyberbfd.tfm
cyberb39.tfm cyberb65.enc cyberb80.tfm cyberb9c.enc cyberbc3.tfm cyberbfe.enc
cyberb3a.enc cyberb65.tfm cyberb81.enc cyberb9c.tfm cyberbc4.enc cyberbfe.tfm
cyberb3a.tfm cyberb66.enc cyberb81.tfm cyberb9d.enc cyberbc4.tfm cyberbff.enc
cyberb3b.enc cyberb66.tfm cyberb82.enc cyberb9d.tfm cyberbc5.enc cyberbff.tfm

多数の TFM ファイルと ENC ファイルが作成されたでござる。

次に、 cyberbit フォント用の Font Definition ファイルを作成するでござ る。 /usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8 に c70cyberb.fd というファイルを作成することとするでござる。ファイルの中 身は以下の通りでござる。


\ProvidesFile{c70cyberb.fd}
% character set: Unicode U+0080 - U+FFFD
% font encoding: Unicode

\DeclareFontFamily{C70}{cyberb}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{cyberb}{m}{n}{<-> CJK * cyberb}{}
\DeclareFontShape{C70}{cyberb}{bx}{n}{<-> CJKb * cyberb}{\CJKbold}

\endinput

fig_202305/c70cyberb_fd_00.png

# mkdir -p /usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8
# cd /usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8
# pwd
/usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8
# vi c70cyberb.fd
# cat c70cyberb.fd
\ProvidesFile{c70cyberb.fd}
% character set: Unicode U+0080 - U+FFFD
% font encoding: Unicode

\DeclareFontFamily{C70}{cyberb}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{cyberb}{m}{n}{<-> CJK * cyberb}{}
\DeclareFontShape{C70}{cyberb}{bx}{n}{<-> CJKb * cyberb}{\CJKbold}

\endinput

更に、必要に応じて TrueType フォントから PK フォントが自動生成されるよ うに、 ttfonts.map ファイルを作成するでござる。


# mkdir -p /usr/pkg/share/texmf-local/fonts/map/ttf2pk
# cd /usr/pkg/share/texmf-local/fonts/map/ttf2pk
# pwd
/usr/pkg/share/texmf-local/fonts/map/ttf2pk
# echo "cyberb@Unicode@ cyberbit.ttf" > ttfonts.map
# cat ttfonts.map 
cyberb@Unicode@ cyberbit.ttf

また、 dvipdfmx コマンドが cyberbit フォントを利用できるように、 cid-x.map ファイルを編集するでござる。 cid-x.map ファイルの最後尾に cyberbit フォントについての記述があるでござる。コメントを外しておけば よいでござる。


# find /usr/pkg -name cid-x.map -print
/usr/pkg/share/texmf-dist/fonts/map/dvipdfmx/cid-x.map
# cd /usr/pkg/share/texmf-dist/fonts/map/dvipdfmx
# ls -lF
total 10
-rw-r--r--  1 root  wheel  4436 May  2 11:52 cid-x.map
-rw-r--r--  1 root  wheel  1289 May  2 11:52 ckx.map
drwxr-xr-x  2 root  wheel   512 May  2 11:38 updmap/
# cp -pi cid-x.map cid-x.map.original
# ls -lF
total 16
-rw-r--r--  1 root  wheel  4436 May  2 11:52 cid-x.map
-rw-r--r--  1 root  wheel  4436 May  2 11:52 cid-x.map.original
-rw-r--r--  1 root  wheel  1289 May  2 11:52 ckx.map
drwxr-xr-x  2 root  wheel   512 May  2 11:38 updmap/
# tail cid-x.map
%% Heisei family of Acrobat Asian Font Packs:
%% Not embedded.
%mincho@UJIS@ UniJIS-UCS2-H HeiseiMin-W3-Acro
%gothic@UJIS@ UniJIS-UCS2-H HeiseiKakuGo-W5-Acro

%% Bitstream Cyberbit
%% Available at:
%%  http://ftp.netscape.com/pub/communicator/extras/fonts/windows/ReadMe.htm

%cyberb@Unicode@ unicode cyberbit
# vi cid-x.map
# tail cid-x.map
%% Heisei family of Acrobat Asian Font Packs:
%% Not embedded.
%mincho@UJIS@ UniJIS-UCS2-H HeiseiMin-W3-Acro
%gothic@UJIS@ UniJIS-UCS2-H HeiseiKakuGo-W5-Acro

%% Bitstream Cyberbit
%% Available at:
%%  http://ftp.netscape.com/pub/communicator/extras/fonts/windows/ReadMe.htm

cyberb@Unicode@ unicode cyberbit
# diff -c cid-x.map.original cid-x.map
*** cid-x.map.original  Tue May  2 11:52:54 2023
--- cid-x.map   Wed May  3 12:12:01 2023
***************
*** 149,152 ****
  %% Available at:
  %%  http://ftp.netscape.com/pub/communicator/extras/fonts/windows/ReadMe.htm
  
! %cyberb@Unicode@ unicode cyberbit
--- 149,152 ----
  %% Available at:
  %%  http://ftp.netscape.com/pub/communicator/extras/fonts/windows/ReadMe.htm
  
! cyberb@Unicode@ unicode cyberbit

編集したり新たに作ったりしたファイルを読み込む

編集したり、新たに作ったファイルを有効にするために、 updmap コマンドと mktexlsr コマンドを実行するでござる。


# updmap -sys
updmap will read the following updmap.cfg files (in precedence order):
  /usr/pkg/etc/texmf/web2c/updmap.cfg
  /usr/pkg/share/texmf-dist/web2c/updmap.cfg
updmap may write changes to the following updmap.cfg file:
  /usr/pkg/etc/texmf/web2c/updmap.cfg
dvips output dir: "/var/lib/texmf/fonts/map/dvips/updmap"
pdftex output dir: "/var/lib/texmf/fonts/map/pdftex/updmap"
dvipdfmx output dir: "/var/lib/texmf/fonts/map/dvipdfmx/updmap"

updmap is creating new map files
using the following configuration:
  LW35 font names                  : URWkb (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  prefer outlines                  : true (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  texhash enabled                  : true
  download standard fonts (dvips)  : true (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  download standard fonts (pdftex) : true (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  jaEmbed replacement string       : haranoaji (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  jaVariant replacement string     : -04 (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  scEmbed replacement string       : arphic (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  tcEmbed replacement string       : arphic (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  koEmbed replacement string       : baekmuk (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  create a mapfile for pxdvi       : false (default)

Scanning for LW35 support files  [  3 files]
Scanning for MixedMap entries    [  6 files]
Scanning for KanjiMap entries    [  0 files]
Scanning for Map entries         [ 34 files]

Generating output for dvipdfmx...
Generating output for ps2pk...
Generating output for dvips...
Generating output for pdftex...

Files generated:
  /var/lib/texmf/fonts/map/dvips/updmap:
       15758 2023-05-03 12:13:31 builtin35.map
       21231 2023-05-03 12:13:31 download35.map
      110801 2023-05-03 12:13:31 psfonts_pk.map
      114652 2023-05-03 12:13:31 psfonts_t1.map
      114647 2023-05-03 12:13:31 ps2pk.map
          14 2023-05-03 12:13:31 psfonts.map -> psfonts_t1.map
  /var/lib/texmf/fonts/map/pdftex/updmap:
      114654 2023-05-03 12:13:31 pdftex_dl14.map
      112989 2023-05-03 12:13:31 pdftex_ndl14.map
          15 2023-05-03 12:13:31 pdftex.map -> pdftex_dl14.map
  /var/lib/texmf/fonts/map/dvipdfmx/updmap:
         281 2023-05-03 12:13:31 kanjix.map

Transcript written on "/var/lib/texmf/web2c/updmap.log".
updmap: Updating ls-R files.
# mktexlsr 
mktexlsr: Updating /usr/pkg/etc/texmf/ls-R... 
mktexlsr: Updating /usr/pkg/share/texmf-dist/ls-R... 
mktexlsr: Updating /usr/pkg/share/texmf-local/ls-R... 
mktexlsr: Updating /var/lib/texmf/ls-R... 
mktexlsr: Done.

試しに PDF ファイルを作ってみる

これで準備ができたので、試しに PDF ファイルを作ってみるでござる。

まず、 LaTeX ファイルを準備するでござる。以下の内容のファイルを test_cyberb.tex という名前で作成するでござる。


\documentclass{article}
\usepackage{CJK}

\begin{document}
\begin{CJK}{UTF8}{cyberb}

平仮名、片仮名も書ける。

\begin{quotation}
あいうえお

アイウエオ
\end{quotation}

漢字も書ける。

\begin{quotation}
呷飽未

歹勢

歐吉桑
\end{quotation}

台灣と日本で表記がちょっと違う漢字。

\begin{quotation}
內 黃 德 歷 溫

内 黄 徳 歴 温
\end{quotation}

\begin{quotation}
臺灣 醫學 圓 對 處 國 佛 禮 應 體 

台湾 医学 円 対 処 国 仏 礼 応 体
\end{quotation}

\end{CJK}
\end{document}

LaTeX で処理してみるでござる。


% ls -lF
total 8
-rw-r--r--  1 daisuke  taiwan  565 May  3 12:17 test_cyberb.tex
% latex test_cyberb.tex 
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/pkgsrc) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./test_cyberb.tex
LaTeX2e <2022-06-01> patch level 5
L3 programming layer <2022-08-23>
(/usr/pkg/share/texmf-dist/tex/latex/base/article.cls
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
(/usr/pkg/share/texmf-dist/tex/latex/base/size10.clo))
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/CJK.sty
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/mule/MULEenc.sty)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/CJK.enc))
(/usr/pkg/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)
No file test_cyberb.aux.
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.bdg)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.enc)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.chr)
(/usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8/c70cyberb.fd) [1]
(./test_cyberb.aux) )
Output written on test_cyberb.dvi (1 page, 2148 bytes).
Transcript written on test_cyberb.log.
% ls -lF
total 48
-rw-r--r--  1 daisuke  wheel     32 May  3 12:19 test_cyberb.aux
-rw-r--r--  1 daisuke  wheel   2148 May  3 12:19 test_cyberb.dvi
-rw-r--r--  1 daisuke  wheel   9739 May  3 12:19 test_cyberb.log
-rw-r--r--  1 daisuke  taiwan   565 May  3 12:17 test_cyberb.tex

DVI ファイルができたようでござる。次に、 dvips コマンドを使って PS ファ イルを作ってみるでござる。


% dvips -o test_cyberb.ps test_cyberb.dvi 
This is dvips(k) 2022.1 (TeX Live 2022)  Copyright 2022 Radical Eye Software (www.radicaleye.com)
' TeX output 2023.05.03:1219' -> test_cyberb.ps

kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 cyberb5e
/usr/pkg/bin/mktexpk: gsftopk: not found
mktexpk: Running ttf2pk -q cyberb5e 600
/usr/pkg/share/texmf-dist/web2c/mktexupd: /var/lib/texmf/ls-R unwritable.
mktexpk: /var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb5e.600pk: successfully generated.
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb5e.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 cyberb4e
/usr/pkg/bin/mktexpk: gsftopk: not found
mktexpk: Running ttf2pk -q cyberb4e 600
/usr/pkg/share/texmf-dist/web2c/mktexupd: /var/lib/texmf/ls-R unwritable.
mktexpk: /var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb4e.600pk: successfully generated.

.....

</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb61.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 cyberb9a
/usr/pkg/bin/mktexpk: gsftopk: not found
mktexpk: Running ttf2pk -q cyberb9a 600
/usr/pkg/share/texmf-dist/web2c/mktexupd: /var/lib/texmf/ls-R unwritable.
mktexpk: /var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb9a.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb9a.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 cyberb56
/usr/pkg/bin/mktexpk: gsftopk: not found
mktexpk: Running ttf2pk -q cyberb56 600
/usr/pkg/share/texmf-dist/web2c/mktexupd: /var/lib/texmf/ls-R unwritable.
mktexpk: /var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb56.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb56.600pk>
</usr/pkg/share/texmf-dist/dvips/base/tex.pro>
</usr/pkg/share/texmf-dist/dvips/l3backend/l3backend-dvips.pro>
</usr/pkg/share/texmf-dist/dvips/base/texps.pro>
</usr/pkg/share/texmf-dist/dvips/base/special.pro>. 
</usr/pkg/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>[1] 
% ls -lF
total 296
-rw-r--r--  1 daisuke  wheel       32 May  3 12:19 test_cyberb.aux
-rw-r--r--  1 daisuke  wheel     2148 May  3 12:19 test_cyberb.dvi
-rw-r--r--  1 daisuke  wheel     9739 May  3 12:19 test_cyberb.log
-rw-r--r--  1 daisuke  wheel   126527 May  3 12:21 test_cyberb.ps
-rw-r--r--  1 daisuke  taiwan     565 May  3 12:17 test_cyberb.tex

PS ファイルができたようなので、 gv コマンドで表示してみるでござる。


% gv test_cyberb.ps

期待通りに組版されたでござる。

fig_202305/test_cyberb_00.png

なれど、幾つか、気になることがあるでござる。まず、一つ目は、 gsftopk コマンドが見つからない、と言われていることでござる。


/usr/pkg/bin/mktexpk: gsftopk: not found

gsftopk コマンドはどのパッケージに含まれるのか探してみるでござる。


% grep gsftopk /usr/pkgsrc/fonts/*/PLIST
/usr/pkgsrc/fonts/gsftopkk/PLIST:bin/gsftopk
/usr/pkgsrc/fonts/gsftopkk/PLIST:man/man1/gsftopk.1
/usr/pkgsrc/fonts/gsftopkk/PLIST:share/texmf-dist/dvips/gsftopk/render.ps

gsftopkk パッケージに含まれるようなので、このパッケージをインストール するでござる。


# cd /usr/pkgsrc/fonts/gsftopkk
# make install
# make clean
# pkg_info | grep gsftopk
gsftopkk-1.19.2nb13 Tool to convert bitmaps to .pk format

もう一つの問題は、 /var/lib/texmf/ls-R ファイルに書き込みができない、 というものでござる。


/usr/pkg/share/texmf-dist/web2c/mktexupd: /var/lib/texmf/ls-R unwritable.

書き込みができるようにするでござる。


# ls -lF /var/lib/texmf/ls-R 
-rw-r--r--  1 root  wheel  901 May  3 12:14 /var/lib/texmf/ls-R
# chmod g+w /var/lib/texmf/ls-R
# ls -lF /var/lib/texmf/ls-R
-rw-rw-r--  1 root  wheel  901 May  3 12:14 /var/lib/texmf/ls-R

world-writable にするのもどうかと思うので、 group に対して書き込みがで きるようにしておいたでござる。どのようにするのが良い作法なのか、後で調 べてみようと思うでござる。

ここで、もう一度、 PS ファイルを作成してみるでござる。


% rm -f test_cyberb.aux test_cyberb.dvi test_cyberb.log test_cyberb.ps
% ls -lF
total 8
-rw-r--r--  1 daisuke  taiwan  565 May  3 12:17 test_cyberb.tex
% latex test_cyberb.tex 
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/pkgsrc) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./test_cyberb.tex
LaTeX2e <2022-06-01> patch level 5
L3 programming layer <2022-08-23>
(/usr/pkg/share/texmf-dist/tex/latex/base/article.cls
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
(/usr/pkg/share/texmf-dist/tex/latex/base/size10.clo))
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/CJK.sty
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/mule/MULEenc.sty)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/CJK.enc))
(/usr/pkg/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)
No file test_cyberb.aux.
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.bdg)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.enc)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.chr)
(/usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8/c70cyberb.fd) [1]
(./test_cyberb.aux) )
Output written on test_cyberb.dvi (1 page, 2148 bytes).
Transcript written on test_cyberb.log.
% dvips -o test_cyberb.ps test_cyberb.dvi
This is dvips(k) 2022.1 (TeX Live 2022)  Copyright 2022 Radical Eye Software (www.radicaleye.com)
' TeX output 2023.05.03:1234' -> test_cyberb.ps
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb5e.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb4e.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb54.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb30.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb72.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb66.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb6f.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb5b.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb98.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb67.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb6b.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb52.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb68.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb53.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb70.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb65.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb88.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb8a.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb90.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb51.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb9e.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb5f.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb6e.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb81.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb91.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb57.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb5c.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb86.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb4f.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb79.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb61.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb9a.600pk>
</var/lib/texmf/fonts/pk/modeless/bitstrea/cyberbit/cyberb56.600pk>
</usr/pkg/share/texmf-dist/dvips/base/tex.pro>
</usr/pkg/share/texmf-dist/dvips/l3backend/l3backend-dvips.pro>
</usr/pkg/share/texmf-dist/dvips/base/texps.pro>
</usr/pkg/share/texmf-dist/dvips/base/special.pro>. 
</usr/pkg/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>[1] 

今度は、文句を言われないようになったようでござる。

次に、 dvipdfmx コマンドを使って PDF ファイルを作ってみるでござる。


% dvipdfmx test_cyberb.dvi 
test_cyberb.dvi -> test_cyberb.pdf
[1]
32354 bytes written
% ls -lF
total 360
-rw-r--r--  1 daisuke  wheel       32 May  3 12:34 test_cyberb.aux
-rw-r--r--  1 daisuke  wheel     2148 May  3 12:34 test_cyberb.dvi
-rw-r--r--  1 daisuke  wheel     9739 May  3 12:34 test_cyberb.log
-rw-r--r--  1 daisuke  wheel    32354 May  3 12:37 test_cyberb.pdf
-rw-r--r--  1 daisuke  wheel   126527 May  3 12:35 test_cyberb.ps
-rw-r--r--  1 daisuke  taiwan     565 May  3 12:17 test_cyberb.tex

PDF ファイルが生成されたので、 okular コマンドを使って表示させてみるで ござる。


% okular test_cyberb.pdf

fig_202305/test_cyberb_01.png

期待通りの PDF ファイルができたようでござる。

日本語フォントの準備

今度は、日本語フォントを使えるようにするでござる。ここでは、 IPA フォ ントと IPAex フォントを利用するでござる。まず、 TrueType フォントの準 備でござる。


# cd /usr/pkg/share/texmf-local/fonts/truetype
# ls -lF
total 0
lrwxr-xr-x  1 root  wheel  41 May  3 11:46 cyberbit.ttf@ -> /usr/pkg/share/fonts/X11/TTF/Cyberbit.ttf
# find /usr/pkg -name "*ipa*ttf*" -print
/usr/pkg/share/fonts/X11/TTF/ipaexg.ttf
/usr/pkg/share/fonts/X11/TTF/ipaexm.ttf
/usr/pkg/share/fonts/X11/TTF/ipag.ttf
/usr/pkg/share/fonts/X11/TTF/ipagp.ttf
/usr/pkg/share/fonts/X11/TTF/ipam.ttf
/usr/pkg/share/fonts/X11/TTF/ipamp.ttf
% ln -s /usr/pkg/share/fonts/X11/TTF/ipam.ttf
% ln -s /usr/pkg/share/fonts/X11/TTF/ipag.ttf
% ln -s /usr/pkg/share/fonts/X11/TTF/ipaexm.ttf
% ln -s /usr/pkg/share/fonts/X11/TTF/ipaexg.ttf
% ls -lF
total 0
lrwxr-xr-x  1 root  wheel  41 May  3 11:46 cyberbit.ttf@ -> /usr/pkg/share/fonts/X11/TTF/Cyberbit.ttf
lrwxr-xr-x  1 root  wheel  39 May  3 12:45 ipaexg.ttf@ -> /usr/pkg/share/fonts/X11/TTF/ipaexg.ttf
lrwxr-xr-x  1 root  wheel  39 May  3 12:45 ipaexm.ttf@ -> /usr/pkg/share/fonts/X11/TTF/ipaexm.ttf
lrwxr-xr-x  1 root  wheel  37 May  3 12:45 ipag.ttf@ -> /usr/pkg/share/fonts/X11/TTF/ipag.ttf
lrwxr-xr-x  1 root  wheel  37 May  3 12:45 ipam.ttf@ -> /usr/pkg/share/fonts/X11/TTF/ipam.ttf

ttf2tfm コマンドを使って TFM ファイルを生成するでござる。


# mkdir -p /usr/pkg/share/texmf-local/fonts/tfm/ipa
# cd /usr/pkg/share/texmf-local/fonts/tfm/ipa
# pwd
/usr/pkg/share/texmf-local/fonts/tfm/ipa
# ttf2tfm ../../truetype/ipam.ttf -w ipam@Unicode@
# ttf2tfm ../../truetype/ipag.ttf -w ipag@Unicode@
# ttf2tfm ../../truetype/ipaexm.ttf -w ipaexm@Unicode@
# ttf2tfm ../../truetype/ipaexg.ttf -w ipaexg@Unicode@
# ls
ipaexg00.enc ipaexg77.enc ipaexm49.enc ipaexmfa.enc ipag76.enc   ipam4b.enc
ipaexg00.tfm ipaexg77.tfm ipaexm49.tfm ipaexmfa.tfm ipag76.tfm   ipam4b.tfm
ipaexg01.enc ipaexg78.enc ipaexm4a.enc ipaexmfe.enc ipag77.enc   ipam4c.enc
ipaexg01.tfm ipaexg78.tfm ipaexm4a.tfm ipaexmfe.tfm ipag77.tfm   ipam4c.tfm
ipaexg02.enc ipaexg79.enc ipaexm4b.enc ipaexmff.enc ipag78.enc   ipam4d.enc
ipaexg02.tfm ipaexg79.tfm ipaexm4b.tfm ipaexmff.tfm ipag78.tfm   ipam4d.tfm
ipaexg03.enc ipaexg7a.enc ipaexm4c.enc ipag00.enc   ipag79.enc   ipam4e.enc
ipaexg03.tfm ipaexg7a.tfm ipaexm4c.tfm ipag00.tfm   ipag79.tfm   ipam4e.tfm
ipaexg04.enc ipaexg7b.enc ipaexm4d.enc ipag01.enc   ipag7a.enc   ipam4f.enc
ipaexg04.tfm ipaexg7b.tfm ipaexm4d.tfm ipag01.tfm   ipag7a.tfm   ipam4f.tfm

.....

ipaexg72.enc ipaexm44.enc ipaexm9d.enc ipag71.enc   ipam46.enc   ipam9f.enc
ipaexg72.tfm ipaexm44.tfm ipaexm9d.tfm ipag71.tfm   ipam46.tfm   ipam9f.tfm
ipaexg73.enc ipaexm45.enc ipaexm9e.enc ipag72.enc   ipam47.enc   ipamf9.enc
ipaexg73.tfm ipaexm45.tfm ipaexm9e.tfm ipag72.tfm   ipam47.tfm   ipamf9.tfm
ipaexg74.enc ipaexm46.enc ipaexm9f.enc ipag73.enc   ipam48.enc   ipamfa.enc
ipaexg74.tfm ipaexm46.tfm ipaexm9f.tfm ipag73.tfm   ipam48.tfm   ipamfa.tfm
ipaexg75.enc ipaexm47.enc ipaexmf8.enc ipag74.enc   ipam49.enc   ipamfe.enc
ipaexg75.tfm ipaexm47.tfm ipaexmf8.tfm ipag74.tfm   ipam49.tfm   ipamfe.tfm
ipaexg76.enc ipaexm48.enc ipaexmf9.enc ipag75.enc   ipam4a.enc   ipamff.enc
ipaexg76.tfm ipaexm48.tfm ipaexmf9.tfm ipag75.tfm   ipam4a.tfm   ipamff.tfm

Font Definition ファイルを作成するでござる。


# cd /usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8
# pwd
/usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8
# vi c70ipam.fd
# cat c70ipam.fd
\DeclareFontFamily{C70}{ipam}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{ipam}{m}{n}{<-> CJK * ipam}{}
\DeclareFontShape{C70}{ipam}{bx}{n}{<-> CJKb * ipam}{\CJKbold}
# vi c70ipag.fd
# cat c70ipag.fd 
\DeclareFontFamily{C70}{ipag}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{ipag}{m}{n}{<-> CJK * ipag}{}
\DeclareFontShape{C70}{ipag}{bx}{n}{<-> CJKb * ipag}{\CJKbold}
# vi c70ipaexm.fd
# cat c70ipaexm.fd
\DeclareFontFamily{C70}{ipaexm}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{ipaexm}{m}{n}{<-> CJK * ipaexm}{}
\DeclareFontShape{C70}{ipaexm}{bx}{n}{<-> CJKb * ipaexm}{\CJKbold}
# vi c70ipaexg.fd
# cat c70ipaexg.fd 
\DeclareFontFamily{C70}{ipaexg}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{ipaexg}{m}{n}{<-> CJK * ipaexg}{}
\DeclareFontShape{C70}{ipaexg}{bx}{n}{<-> CJKb * ipaexg}{\CJKbold}
# ls -lF
total 10
-rw-r--r--  1 root  wheel  286 May  3 12:03 c70cyberb.fd
-rw-r--r--  1 root  wheel  180 May  3 12:53 c70ipaexg.fd
-rw-r--r--  1 root  wheel  180 May  3 12:53 c70ipaexm.fd
-rw-r--r--  1 root  wheel  170 May  3 12:51 c70ipag.fd
-rw-r--r--  1 root  wheel  170 May  3 12:51 c70ipam.fd

ttfonts.map ファイルに記述を追加するでござる。


# cd /usr/pkg/share/texmf-local/fonts/map/ttf2pk
# pwd
/usr/pkg/share/texmf-local/fonts/map/ttf2pk
# ls -lF
total 2
-rw-r--r--  1 root  wheel  29 May  3 12:08 ttfonts.map
# cp -pi ttfonts.map ttfonts.map.original
# ls -lF
total 4
-rw-r--r--  1 root  wheel  29 May  3 12:08 ttfonts.map
-rw-r--r--  1 root  wheel  29 May  3 12:08 ttfonts.map.original
# echo "ipam@Unicode@ ipam.ttf" >> ttfonts.map
# echo "ipag@Unicode@ ipag.ttf" >> ttfonts.map
# echo "ipaexm@Unicode@ ipaexm.ttf" >> ttfonts.map
# echo "ipaexg@Unicode@ ipaexg.ttf" >> ttfonts.map
# cat ttfonts.map
cyberb@Unicode@ cyberbit.ttf
ipam@Unicode@ ipam.ttf
ipag@Unicode@ ipag.ttf
ipaexm@Unicode@ ipaexm.ttf
ipaexg@Unicode@ ipaexg.ttf
# diff -c ttfonts.map.original ttfonts.map
*** ttfonts.map.original        Wed May  3 12:08:10 2023
--- ttfonts.map Wed May  3 12:56:11 2023
***************
*** 1 ****
--- 1,5 ----
  cyberb@Unicode@ cyberbit.ttf
+ ipam@Unicode@ ipam.ttf
+ ipag@Unicode@ ipag.ttf
+ ipaexm@Unicode@ ipaexm.ttf
+ ipaexg@Unicode@ ipaexg.ttf

map ファイルと ls-R ファイルを更新するでござる。


# updmap -sys
updmap will read the following updmap.cfg files (in precedence order):
  /usr/pkg/etc/texmf/web2c/updmap.cfg
  /usr/pkg/share/texmf-dist/web2c/updmap.cfg
updmap may write changes to the following updmap.cfg file:
  /usr/pkg/etc/texmf/web2c/updmap.cfg
dvips output dir: "/var/lib/texmf/fonts/map/dvips/updmap"
pdftex output dir: "/var/lib/texmf/fonts/map/pdftex/updmap"
dvipdfmx output dir: "/var/lib/texmf/fonts/map/dvipdfmx/updmap"

updmap is creating new map files
using the following configuration:
  LW35 font names                  : URWkb (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  prefer outlines                  : true (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  texhash enabled                  : true
  download standard fonts (dvips)  : true (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  download standard fonts (pdftex) : true (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  jaEmbed replacement string       : haranoaji (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  jaVariant replacement string     : -04 (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  scEmbed replacement string       : arphic (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  tcEmbed replacement string       : arphic (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  koEmbed replacement string       : baekmuk (/usr/pkg/etc/texmf/web2c/updmap.cfg)
  create a mapfile for pxdvi       : false (default)

Scanning for LW35 support files  [  3 files]
Scanning for MixedMap entries    [  6 files]
Scanning for KanjiMap entries    [  0 files]
Scanning for Map entries         [ 34 files]

Generating output for dvipdfmx...
Generating output for ps2pk...
Generating output for dvips...
Generating output for pdftex...

Files generated:
  /var/lib/texmf/fonts/map/dvips/updmap:
       15758 2023-05-03 12:58:30 builtin35.map
       21231 2023-05-03 12:58:30 download35.map
      110801 2023-05-03 12:58:30 psfonts_pk.map
      114652 2023-05-03 12:58:30 psfonts_t1.map
      114647 2023-05-03 12:58:30 ps2pk.map
          14 2023-05-03 12:58:30 psfonts.map -> psfonts_t1.map
  /var/lib/texmf/fonts/map/pdftex/updmap:
      114654 2023-05-03 12:58:30 pdftex_dl14.map
      112989 2023-05-03 12:58:30 pdftex_ndl14.map
          15 2023-05-03 12:58:30 pdftex.map -> pdftex_dl14.map
  /var/lib/texmf/fonts/map/dvipdfmx/updmap:
         281 2023-05-03 12:58:30 kanjix.map

Transcript written on "/var/lib/texmf/web2c/updmap.log".
updmap: Updating ls-R files.
# mktexlsr 
mktexlsr: Updating /usr/pkg/etc/texmf/ls-R... 
mktexlsr: Updating /usr/pkg/share/texmf-dist/ls-R... 
mktexlsr: Updating /usr/pkg/share/texmf-local/ls-R... 
mktexlsr: Updating /var/lib/texmf/ls-R... 
mktexlsr: Done.

IPA 及び IPAex フォントを使った PS ファイルと PDF ファイルの生成

IPA フォントと IPAex フォントを使って、 PS ファイルと PDF ファイルを作っ てみるでござる。まず、以下の内容のファイルを準備するでござる。


\documentclass{article}

\usepackage{CJK}

\begin{document}

\begin{CJK}{UTF8}{ipam}
これは、 IPA 明朝体の使用例でござる。
\end{CJK}

\begin{CJK}{UTF8}{ipag}
これは、 IPA ゴシック体の使用例でござる。
\end{CJK}

\begin{CJK}{UTF8}{ipaexm}
これは、 IPAex 明朝体の使用例でござる。
\end{CJK}

\begin{CJK}{UTF8}{ipaexg}
これは、 IPAex ゴシック体の使用例でござる。
\end{CJK}

\end{document}

LaTeX を実行してみるでござる。


% ls -lF
total 368
-rw-r--r--  1 daisuke  wheel       32 May  3 12:34 test_cyberb.aux
-rw-r--r--  1 daisuke  wheel     2148 May  3 12:34 test_cyberb.dvi
-rw-r--r--  1 daisuke  wheel     9739 May  3 12:34 test_cyberb.log
-rw-r--r--  1 daisuke  wheel    32354 May  3 12:37 test_cyberb.pdf
-rw-r--r--  1 daisuke  wheel   126527 May  3 12:35 test_cyberb.ps
-rw-r--r--  1 daisuke  taiwan     565 May  3 12:17 test_cyberb.tex
-rw-r--r--  1 daisuke  taiwan     452 May  3 13:00 test_ipa.tex
% latex test_ipa.tex 
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/pkgsrc) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./test_ipa.tex
LaTeX2e <2022-06-01> patch level 5
L3 programming layer <2022-08-23>
(/usr/pkg/share/texmf-dist/tex/latex/base/article.cls
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
(/usr/pkg/share/texmf-dist/tex/latex/base/size10.clo))
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/CJK.sty
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/mule/MULEenc.sty)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/CJK.enc))
(/usr/pkg/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)
No file test_ipa.aux.
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.bdg)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.enc)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.chr)
(/usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8/c70ipam.fd)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.enc)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.chr)
(/usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8/c70ipag.fd)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.enc)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.chr)
(/usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8/c70ipaexm.fd)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.enc)
(/usr/pkg/share/texmf-dist/tex/latex/cjk/texinput/UTF8/UTF8.chr)
(/usr/pkg/share/texmf-local/tex/latex/cjk/texinput/UTF8/c70ipaexg.fd) [1]
(./test_ipa.aux) )
Output written on test_ipa.dvi (1 page, 1184 bytes).
Transcript written on test_ipa.log.
% dvips -o test_ipa.ps test_ipa.dvi 
This is dvips(k) 2022.1 (TeX Live 2022)  Copyright 2022 Radical Eye Software (www.radicaleye.com)
' TeX output 2023.05.03:1302' -> test_ipa.ps

kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipam30
mktexpk: Running ttf2pk -q ipam30 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipam30.600pk: successfully generated.
</var/lib/texmf/fonts/pk/modeless/ipa/ipam30.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipam66
mktexpk: Running ttf2pk -q ipam66 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipam66.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipam66.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipam67
mktexpk: Running ttf2pk -q ipam67 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipam67.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipam67.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipam4f
mktexpk: Running ttf2pk -q ipam4f 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipam4f.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipam4f.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipam75
mktexpk: Running ttf2pk -q ipam75 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipam75.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipam75.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipag30
mktexpk: Running ttf2pk -q ipag30 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipag30.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipag30.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipag4f
mktexpk: Running ttf2pk -q ipag4f 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipag4f.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipag4f.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipag75
mktexpk: Running ttf2pk -q ipag75 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipag75.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipag75.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipaexm30
mktexpk: Running ttf2pk -q ipaexm30 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipaexm30.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipaexm30.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipaexm66
mktexpk: Running ttf2pk -q ipaexm66 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipaexm66.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipaexm66.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipaexm67
mktexpk: Running ttf2pk -q ipaexm67 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipaexm67.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipaexm67.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipaexm4f
mktexpk: Running ttf2pk -q ipaexm4f 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipaexm4f.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipaexm4f.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipaexm75
mktexpk: Running ttf2pk -q ipaexm75 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipaexm75.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipaexm75.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipaexg30
mktexpk: Running ttf2pk -q ipaexg30 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipaexg30.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipaexg30.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipaexg4f
mktexpk: Running ttf2pk -q ipaexg4f 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipaexg4f.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipaexg4f.600pk>
kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+0/600 --dpi 600 ipaexg75
mktexpk: Running ttf2pk -q ipaexg75 600
mktexpk: /var/lib/texmf/fonts/pk/modeless/ipa/ipaexg75.600pk: successfully generated.

</var/lib/texmf/fonts/pk/modeless/ipa/ipaexg75.600pk>
</usr/pkg/share/texmf-dist/dvips/base/tex.pro>
</usr/pkg/share/texmf-dist/dvips/l3backend/l3backend-dvips.pro>
</usr/pkg/share/texmf-dist/dvips/base/texps.pro>
</usr/pkg/share/texmf-dist/dvips/base/special.pro>. 
</usr/pkg/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>[1] 
% ls -lF
total 632
-rw-r--r--  1 daisuke  wheel       32 May  3 12:34 test_cyberb.aux
-rw-r--r--  1 daisuke  wheel     2148 May  3 12:34 test_cyberb.dvi
-rw-r--r--  1 daisuke  wheel     9739 May  3 12:34 test_cyberb.log
-rw-r--r--  1 daisuke  wheel    32354 May  3 12:37 test_cyberb.pdf
-rw-r--r--  1 daisuke  wheel   126527 May  3 12:35 test_cyberb.ps
-rw-r--r--  1 daisuke  taiwan     565 May  3 12:17 test_cyberb.tex
-rw-r--r--  1 daisuke  wheel       32 May  3 13:02 test_ipa.aux
-rw-r--r--  1 daisuke  wheel     1184 May  3 13:02 test_ipa.dvi
-rw-r--r--  1 daisuke  wheel    10751 May  3 13:02 test_ipa.log
-rw-r--r--  1 daisuke  wheel   113335 May  3 13:03 test_ipa.ps
-rw-r--r--  1 daisuke  taiwan     452 May  3 13:00 test_ipa.tex

PS ファイルができたので、 gv コマンドを使って表示させてみるでござる。


% gv test_ipa.ps

fig_202305/test_ipa_00.png

dvipdfmx コマンドを使って PDF ファイルを作ってみるでござる。


% dvipdfmx test_ipa.dvi 
test_ipa.dvi -> test_ipa.pdf
[1]
26826 bytes written
% ls -lF
total 688
-rw-r--r--  1 daisuke  wheel       32 May  3 12:34 test_cyberb.aux
-rw-r--r--  1 daisuke  wheel     2148 May  3 12:34 test_cyberb.dvi
-rw-r--r--  1 daisuke  wheel     9739 May  3 12:34 test_cyberb.log
-rw-r--r--  1 daisuke  wheel    32354 May  3 12:37 test_cyberb.pdf
-rw-r--r--  1 daisuke  wheel   126527 May  3 12:35 test_cyberb.ps
-rw-r--r--  1 daisuke  taiwan     565 May  3 12:17 test_cyberb.tex
-rw-r--r--  1 daisuke  wheel       32 May  3 13:02 test_ipa.aux
-rw-r--r--  1 daisuke  wheel     1184 May  3 13:02 test_ipa.dvi
-rw-r--r--  1 daisuke  wheel    10751 May  3 13:02 test_ipa.log
-rw-r--r--  1 daisuke  wheel    26826 May  3 13:06 test_ipa.pdf
-rw-r--r--  1 daisuke  wheel   113335 May  3 13:03 test_ipa.ps
-rw-r--r--  1 daisuke  taiwan     452 May  3 13:00 test_ipa.tex

okular コマンドを使って、 PDF ファイルを表示させてみるでござる。


% okular test_ipa.pdf

fig_202305/test_ipa_01.png

期待通りの PS ファイル、及び PDF ファイルができたでござる。



Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Food___Taiwan/20220429_0.html
  9. Computer___NetBSD/20220817_3.html
  10. Computer___Python/20220410_0.html
  11. Computer___Network/20240416_00.html
  12. Computer___Network/20240130_00.html
  13. Computer___Debian/20210223_1.html
  14. Computer___NetBSD/20230119_00.html
  15. Computer___Python/20210124_0.html
  16. Computer___Python/20221013_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Science___Math/20220420_0.html
  20. Computer___NetBSD/20240101_02.html
  21. Computer___NetBSD/20220808_0.html
  22. Computer___TeX/20230503_00.html
  23. Computer___NetBSD/20230515_00.html
  24. Science___Astronomy/20220503_0.html
  25. Computer___NetBSD/20210127_0.html
  26. Computer___Python/20240101_00.html
  27. Computer___Network/20220413_1.html
  28. Computer___Python/20220816_1.html
  29. Computer___NetBSD/20210204_0.html
  30. Travel___Taiwan/20220809_2.html


HTML file generated by Kinoshita Daisuke.