トップ 差分 一覧 ソース 検索 ヘルプ 日記RSS RSS ログイン

TeXWorksで日本語が表示されない、という時は

キーワード
最終更新時間:2010年01月14日 18時47分28秒

TeXWorksとは

TeXWorksは、オープンソースのTeX統合環境(エディタ、コンパイル支援、独自のプレビューアなど)です。Windows, Mac OS, Linuxなど様々なOSで利用することができます。

Windowsでは、角藤氏によるW32TeXに標準で収録(ここ半年くらい)されており、いわゆる“TeX”をインストールすればすぐに使うことができます。インターフェースの日本語化は筆者がおこないました。

TeXWorksの問題

Windows版のTeXWorksには、UTF-8でソースを作成し、ボタンひとつでplatexでコンパイル→dvipdfmxでPDF変換→プレビューアで表示という作業ができるpdfplatex.batというスクリプトが添付されており、好みでインターフェースをいじる以外はほとんど何も設定せずに利用できます。

しかし、W32TeXをインストールしたままの環境でTeXWorksを使って文書を作成し、PDFでプレビューすると、日本語がすべて抜け落ちて表示されます。

できあがったPDFをAdobe Reader等で表示すると問題ないので、これはTeXWorks独自の問題であると考えられます。

実は、Windows版のTeXWorksではフォント名から対応するフォントを呼び出して表示するfontconfigという機能が含まれていません。そのため、W32TeXのデフォルトであるフォントを埋め込まないPDF作成(dvipdfmxによる)では、日本語が表示されません。[1]

しかし、ちょっと設定を変更してフォントを埋め込んだPDFを作成すれば、日本語を含む文書もちゃんと表示できます。

この記事では、TeXWorksで表示するために、フォントを埋め込んだPDFを作る方法を紹介します。

  • [1]一般的に欧文フォントは埋め込まれるようになっているので表示できます。

常にTeX文書にフォントを埋め込むようにする

フォントを埋め込んだPDFを作成するには2つの方法があります。1つは、TeX全体の設定を変更し、dvipdfmxでPDFを作ると常に日本語フォントが埋め込まれるようにする方法です。

この設定をおこなうと、TeXWorksを使わず他のエディタやコマンドプロンプトを使う場合にも、dvipdfmxを使うとフォントが埋め込まれたPDFが得られるようになります。フォントを埋め込んでも劇的にファイルサイズが増えるわけではありませんし、常にフォントを埋め込んでいても特に不都合はないでしょう。

常にフォントを埋め込むよう設定するには、

TeXインストールディレクトリ/share/texmf/fonts/map/dvipdfmx/base

ディレクトリにあるcid-x.mapというファイルを編集します。

TeXインストールディレクトリは、W32TeXサイトのガイドに従っている場合は、

C:/w32tex

でしょうし、阿部氏によるTeXインストーラ3を使っている場合は

C:/tex

となるでしょう。適宜読み替えてください。cid-x.mapを適当なテキストエディタで開きます。これは、「メモ帳」でもTeXWorksでもかまいません。ファイルを開くと以下のようになります。

編集すべき部分は、下にスクロールしていった494行目付近の下図で赤く囲った文字列です。

必要であれば、元に戻せるようにこの部分をコピーして、コメントアウトしておいてください。この文字列のうち、Ryumin-Lightを:0:msmincho.ttcに、そしてGothicBBB-Mediumを:0:msgothic.ttcにそれぞれ書き換えます。:(コロン)も忘れないでください。

編集が終わったら、ファイルを保存してTeXWorksでテストしてみましょう。適当な日本語を含む文書を処理して、きちんとPDFプレビューで日本語が表示されれば、設定は完了です。

TeXWorksで作業する時だけフォントを埋め込むようにする

フォントを埋め込んだPDFを作成するもう1つの方法は、フォント埋め込み用のmapファイルを読み込むよう、pdfplatex.batファイルを修正する方法です。この方法では、一般にTeXWorksを介してしか利用しないpdfplatex.batの内容を編集するので、それ以外のエディタやコマンドプロンプトでの作業では、これまで通りフォントを埋め込まないPDFが作成されます。何か理由があってフォントを埋め込まないPDFを作ることがある場合は、こちらを選択してください。

pdfplatex.batは

TeXインストールディレクトリ/bin

にあります。TeXインストールディレクトリは、W32TeXサイトのガイドに従っている場合は、

C:/w32tex

でしょうし、阿部氏によるTeXインストーラ3を使っている場合は

C:/tex

となるでしょう。適宜読み替えてください。ファイルを右クリックし、「編集」を選択します。するとメモ帳で内容が表示されます。おそらく以下のようになっているはずです。

@echo off
platex -synctex=1 -kanji=utf8 %*
dvipdfmx %*

これを、以下のように編集します。

@echo off
platex -synctex=1 -kanji=utf8 %*
dvipdfmx -f msembed.map %*

dvipdfmxのオプションに

-f msembed.map

と書き加えています。これは、W32TeXに用意されているMS明朝、MSゴシックを埋め込むためのマップファイル(TeXフォントとTrueTypeフォントの対応表)を使う、というものです。このようにdvipdfmxにオプションを与えることで、一時的にフォントを埋め込んだPDFを作ることもできます。

まとめ

TeXWorksは、フォントを埋め込んでいないPDFでは日本語が抜けてしまいます。しかし、フォントを埋め込んだPDFを作成することでTeXWorksで日本語を表示することができます。

フォントを埋め込むための方法として、cid-x.mapを編集する(TeX全体に影響)やりかたと、pdfplatex.batを編集する(TeXWorksのみに影響)やりかたの2種類があります。

特にこだわりがない限りは、cid-x.mapを編集して、dvipdfmxでPDFを作成する際には常にフォントが埋め込まれるようにしておくとよいでしょう。

なお、この問題と解決策については、TeX Q & A 53894で筆者が質問し、TeX Q & A 53896で角藤氏にご回答いただいた結果をまとめたものです。