BXsuika パッケージ

変更履歴
  • 2010/05/16:一部の文章を修正。

概要

W32TeX の topdftex フィルタと併用して、pdfLaTeX で日本語を使えるようにする パッケージである。topdftex は元々 ums パッケージ(稲垣淳 氏製作)と併用する 前提で作られているので、ums の改良版といえる。主な改良点は DVI 出力の場合 も同じ出力ができるようにしたことである。(ums にもこの機能はあるが、正しく 動かない。) この時には欧文と同じ形式の DVI が生成されるので、設定次第で 欧文用の DVI ウェアが使える可能性がある。残念ながら、和文組版品質は元の ums と同じであまり良くない。

参考: topdftex フィルタと ums パッケージを用いた pdfLaTeX での日本語組版については W32TeX に含まれる角藤氏による文書 「pdfTeX for Win32 について」 に詳しく述べられている。 以下のコマンドを実行すると該当の PDF 文書が表示される。
texdocc jpdfsample.pdf
参考: pdfLaTeX(を含む 8 ビット欧文 LaTeX)で 日本語で使うための有名なパッケージとして CJK パッケージ(Werner Lemberg 氏製作) がある。 海外で LaTeX で日本語を扱う場合には大概はこれが使われている。

対応環境

以下のものが必要である。

  • W32TeX の topdftex フィルタ
  • 以下の処理系のいずれか
    • pdfLaTeX2e (pdfTeX 1,40.10 以降)
    • 欧文 LaTeX2e + dvipdfmx
    • 欧文 LaTeX2e + Unicode subfont 対応の DVI ウェア (機能制限あり)

参考: W32TeX において topdftex は pdfTeX 本体とともに pdftex-w32.tar.bz2 アーカイブに含まれている。 このプログラムは C 言語のソースも公開されている (W32TeX のソースアーカイブ w32tex-src に含まれる)ので、 W32TeX 以外の環境でも本パッケージを使えるかもしれない。

ダウンロード

インストール方法については、パッケージに含まれる 説明書(README ファイル)を参照。

基本的な使用法

文書作成

bxsuika パッケージを次のようにして読み込む。

\usepackage[driver=‹ドライバ›,mincho=‹明朝›,gothic=‹ゴシック›]{bxsuika}

‹明朝›‹ゴシック›には 明朝体とゴシック体として用いる日本語フォントのファイル名(ipam.ttf 等;「IPA明朝」等のフォント名ではない)を指定する。 TrueType/OpenType(拡張子 .ttf/.otf)形式のフォントが使えるが、 TTC 形式(拡張子 .ttc;例えば MS フォントとか)は使えない。

‹ドライバ› は実際に使う処理系を pdftex / dvipdfmx / none から 選択するが、driver を指定しないと、自動的に pdftexdvipdfmx のうち適当な方が選ばれるので、 通常は指定する必要はない。

参考: none は pdfTeX と dvipdfmx 以外の DVI ドライバを使う時に設定する。 この場合、minchogothic による フォント設定は無効となり、そのドライバのためのフォント設定を 別個に行う必要がある。

以下に日本語を含む文書の例を示す。

% このファイルの文字コードは Shift_JIS
% pdflatex (または latex) で組版する
\documentclass[a4paper]{article} % 欧文用クラスを指定する。
  % 明朝を「IPA明朝」、ゴシックを「IPAゴシック」にする
\usepackage[mincho=ipam.ttf,gothic=ipag.ttf]{bxsuika}
\usepackage[scale=.8]{geometry}
\newcommand*{\jRead}[1]{{\footnotesize #1}}
\newcommand*{\xAnnot}[1]{{\small(\textsl{#1})}}
\begin{document}

\section*{Greeting Expressions in Japanese (挨拶\jRead{あいさつ}の表現)}
  % 内容は気にしない ;-)
\begin{center}\begin{tabular}{p{10em}p{20em}}
\hline\hline
\multicolumn{1}{c}{English} & \multicolumn{1}{c}{Japanese (日本語)}
\\\hline
Good morning!
&
おはようございます。\xAnnot{formal}\newline
おはよう。\xAnnot{informal}
\\\hline
How are you?
&
お元気ですか。\xAnnot{formal}\newline
もうかりまっか。\xAnnot{in the Kansai region}
\\\hline
Happy New Year!
&
明けましておめでとうございます。\xAnnot{formal}\newline
あけましておめでとう。\xAnnot{informal}\newline
あけおめー!\xAnnot{very colloquial}
\\\hline\hline
\end{tabular}\end{center}

Note that in Japanese culture greetings on New Year (正月\jRead{しょうがつ})
are not made until New Year's Day has come, thus there is no period
where greetings on New Year and Christmas (クリスマス) are simultanously made.
Consequently there is no Japanese phrase that directly corresponds to
``Merry Christmas and Happy New Year!''.
\end{document}

基底言語が英語の例を示したのは、現状では使用できる文書クラスが 欧文用のものしかないからである。 日本語の文書に適したレイアウトにするには種々の工夫が必要となる。 パッケージに含まれるサンプル sample-bxsuika.org.tex は 日本語の文書の例である。

コンパイル

和文文字を含むファイルを topdftex で変換する。 変換後のファイルは pdflatex 等の欧文 LaTeX 処理系で組版できる。 pdflatex を使う場合は次のようになる。

# (元の LaTeX 文書を foo.org.tex とする)
topdftex foo.org.tex foo.tex
pdflatex foo.tex
# (PDF 文書を foo.pdf が生成される)

日本語を pdfTeX で通すのがパッケージの主目的であるが、 なぜか dvipdfmx でも通るようになっている。 dvipdfmx を使う場合は次のようになる。

# (元の LaTeX 文書を foo.org.tex とする)
topdftex foo.org.tex foo.tex
# 欧文用の latex を使う
latex foo.tex
dvipdfmx foo.dvi
# (PDF 文書を foo.pdf が生成される)

他にも、latex で生成された DVI ファイルを dvipng などの 欧文 DVI 用の DVI ウェアに通す等の利用方法が考えられる。 (ただしこの用途なら PXtosb バンドルの 方が適切である。) 詳しくは説明書(README ファイル)を参照。

日本語しおりの作成

重要: 以下の例はまだ正常に動作しない。原因を検討中である…。

hyperref を用いて日本語のしおりを作成するには W32TeX の out2uni プログラム(dvipdfm-w32.tar.bz2 アーカイブに含まれる)を併用する。

以下では、次のファイル sample.org.tex を例として具体的な 手順を述べる。

% sample.org.tex
% このファイルの文字コードは Shift_JIS
\documentclass[a4paper]{article}
\usepackage[mincho=ipam.ttf,gothic=ipag.ttf]{bxsuika}
\usepackage[scale=.8]{geometry}
\usepackage[pdftex,
  bookmarks=true,bookmarksnumbered=true,bookmarkstype=toc]{hyperref}
\begin{document}
\title{pdf\LaTeXe\ 怪文書作成入門}
\author{絶対匿名希望}
\maketitle
\section{美しい怪文書組版のために}
(この節は書きかけです。執筆者を募集しております。\<)
\section{pdf\LaTeXe\ の紹介}
(この節は書きかけです。執筆者を募集しております。\<)
\section{以下省略}
\end{document}
参考: 上のソース中で \< は「半角幅だけ戻る」命令である。 bxsuika では和文文字はベタ組されるので、そのままでは 〈。〉と〈)〉の間に余分な間隔が生じる。 \< はこれを除去している。 なお、\< はその箇所での改行を禁止する。 改行を許可したい場合は代わりに \<* を用いる。

これを組版して PDF 文書 sample.pdf を得る手順は次のようになる。

topdftex sample.org.tex sample.tex
pdflatex sample.tex
# (ここで sample.out が生成されるので、それに変換をかける)
out2uni sample.out
pdflatex sample.tex
参考: 相互参照の解決等のために pdflatex を 3 回以上実行する必要がある場合は、out2uni は最後の 1 回の 直前に実行する。