試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

cjk-latex(UTF-8)を使用して生成する日本語PDFにVLゴシックを埋め込む

cjk-latex(UTF-8)を使用することで、LaTeX文書から日本語を含むPDFファイルが作れるようになったが、日本語のみの文書に対しては、Cyberbit以外の(ライセンス上、埋め込むことに問題のない)フォントを埋め込んで使うのがより良いのでは、ということで、VLゴシックを埋め込んでみることにする。
VLゴシックの本家には、
[引用]vlgothic.dicey.org/license.html より

文書への埋め込みなど、フォントとしての再使用を目的としない用途においては、以下で言う Redistribution には当たらず、制限なく行えるものとします。

とあり、埋め込みの使用には問題がないことがはっきりしている。
以下のファイルの配置場所は、Gentoo Linux 2007.0のもので、別のディストリの場合、場所の変わるファイルもある。

$ sudo mkdir /usr/local/share/texmf/fonts/truetype/vlgothic
$ sudo ln -s /usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf /usr/local/share/texmf/fonts/truetype/vlgothic/
$ mkdir work; cd work/
$ cp /usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf .
$ cp /usr/share/texmf/scripts/subfonts/subfonts.pe .
$ fontforge -script subfonts.pe VL-Gothic-Regular.ttf vlgothic /usr/share/texmf/ttf2pk/Unicode.sfd
$ for filename in *.pfb;
> do echo "$(basename $filename .pfb) $(basename $filename .pfb) < $filename" >>| vlgothic.map;
> done
$ sudo mkdir -p /usr/local/share/texmf/fonts/map/dvips/vlgothic /usr/local/share/texmf/fonts/{afm,type1,tfm}/vlgothic
$ sudo cp vlgothic.map /usr/local/share/texmf/fonts/map/dvips/vlgothic/
$ sudo cp *.afm /usr/local/share/texmf/fonts/afm/vlgothic/
$ sudo cp *.pfb /usr/local/share/texmf/fonts/type1/vlgothic/
$ sudo cp *.tfm /usr/local/share/texmf/fonts/tfm/vlgothic/
$ sudo mktexlsr

ファイル名: /etc/texmf/updmap.d/10vlgothic.cfg

Map vlgothic.map
$ cd ../
$ updmap
$ sudo updmap-sys

これだけではダメで、下の/usr/share/texmf/ttf2pk/ttfonts.map*1の修正をする必要がある。Cyberbit用の記述は初めからあるのだが、追加する場合は手動で書き足す。
念のため、元のファイルのコピーをとってから

$ sudo cp -p /usr/share/texmf/ttf2pk/ttfonts.map /usr/share/texmf/ttf2pk/ttfonts.map.orig

下のように、「vlgothic@Unicode@」の行を追加する。

--- /usr/share/texmf/ttf2pk/ttfonts.map.orig
+++ /usr/share/texmf/ttf2pk/ttfonts.map
@@ -10,6 +10,7 @@

 ntukai@Big5@     ntu_kai.ttf   Pid = 3 Eid = 4
 cyberb@Unicode@  cyberbit.ttf
+vlgothic@Unicode@ VL-Gothic-Regular.ttf

 % the next entry maps the Unicode encoded font to Big 5 encoding; thus you
 % can say \begin{CJK}{Big5}{...} (this is an environment from the CJK

編集が終わったら、以下のファイルを作成し
[任意]ファイル名: vlgothic.tex

\documentclass{article}
\usepackage{CJK}

\DeclareFontFamily{C70}{vlgothic}{}
\DeclareFontShape{C70}{vlgothic}{m}{n}{<-> CJK * vlgothic}{}
\DeclareFontShape{C70}{vlgothic}{bx}{n}{<-> CJKb * vlgothic}{\CJKbold}

\begin{document}
\begin{CJK}{UTF8}{vlgothic}
こんにちは コンニチハ 今日は
\end{CJK}
\end{document}

動作を確認。

$ pdflatex vlgothic.tex


画像は、Adobe Reader上で表示したもの。上がCyberbitで、下がVLゴシック

Cyberbitに代わってデフォルトの「song」フォントとして使うためには、以下の修正が必要。

--- /usr/share/texmf/tex/latex/cjk-latex/UTF8/c70song.fd.orig
+++ /usr/share/texmf/tex/latex/cjk-latex/UTF8/c70song.fd
@@ -15,7 +15,7 @@

 \DeclareFontFamily{C70}{song}{\hyphenchar \font\m@ne}

-\DeclareFontShape{C70}{song}{m}{n}{<-> CJK * cyberb}{}
-\DeclareFontShape{C70}{song}{bx}{n}{<-> CJKb * cyberb}{\CJKbold}
+\DeclareFontShape{C70}{song}{m}{n}{<-> CJK * vlgothic}{}
+\DeclareFontShape{C70}{song}{bx}{n}{<-> CJKb * vlgothic}{\CJKbold}

 \endinput

これを行った場合

\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{song}
こんにちは コンニチハ 今日は
\end{CJK}
\end{document}

のように書くだけでVLゴシックが使われる。フォント指定で「\begin{CJK}{UTF8}{}」と書いても同様。

使用したバージョン:

*1:Debian,Ubuntuでは/etc/texmf/map/ttf2pk/ttfonts/ttfonts.mapにある