XeTeX で日本語、再び

XeTeX で日本語、再び

- Z. R. の投稿
返信数: 18

CTAN に xecjk というパッケージが上がっていたので、これで日本語文書の組版を試してみました。(結果を添付)

若干問題点がある(ソース中のコメントに書いた)ものの、かなり綺麗に仕上がっていると思います。

Z. R. への返信

Re: XeTeX で日本語、再び

- 匿 名 の投稿
こんなページ (http://kuniyoshi.fastmail.fm/xetex/) を見つけました。
匿 名 への返信

Re: XeTeX で日本語、再び

- Z. R. の投稿

情報ありがとうございます。

あくまで実験的な実装ということで、細かい不備(例えば「羅生門」のテキストで「所々、崩れかかった…」の部分とか)は気にしないことにします。基本方針として JIS X 4051 や「日本語組版処理の要件」を intercharacter tokens の機能を利用して実装すればよいと理解しておけばいいでしょう。

あと、いくつか雑感を。

  • genzi では約物を半角幅にするために OpenType の hwid フィーチャを使っている。非常に真っ当な方法なのだが、現時点で hwid や palt に対応しているフォントが少ないのが難点。
  • (日本語話者なら)誰でも使えるパッケージにまで仕上げようとすると、組版規則以外にも色々な点を整備しなければならず、かなりの TeX コーディング力が必要。
  • 4051 にしろ「要件」にしろ、欧文扱いの文字は句読点を含めて全部同じクラスになっている。欧文扱いの句読点と和文文字を隣接させることがありえないということか。
Z. R. への返信

Re: XeTeX で日本語、再び

- Z. R. の投稿

という話をしていたら、xecjk が CTAN に帰ってきたようです ;-)

Z. R. への返信

Re: XeTeX で日本語、再び

- Z. R. の投稿

新しい xeCJK で日本語の組版をやってみました(結果を添付)。ja-test1 は xeCJK の“fullwidth”句読点スタイル(日本語のルールに一番近い)で組んだものです。普通の人には全く違和感が感じられないと思いますが、約物が並んだ箇所をよく見ると JIS メトリックと相違することが判ります。

そこで、より JIS メトリックに近いスタイルを xeCJK の上で実装してみました(zxjatype パッケージ)。さらに、jsarticle クラスから pTeX 依存部分を分離したクラス bxjsarticle を作成しました。これと zxjatype を組み合わせたものの例が ja-test2 および ja-test3 です。なお、ja-test0 は js-test2 と同じ文書を pTeX + jsarticle で組んだものです。

なお、現在の xeCJK は XeTeX の 0.9995 版[2009/06/29]以降を必要とします。以前に見た xeCJK とは全然違う実装になってる…。

Z. R. への返信

Re: XeTeX で日本語、再び

- Z. R. の投稿

新しい xeCJK 2.3.5 版に合わせて、XeLaTeX + xeCJK 上で日本語文書を組版するためのパッケージ ZXjatype と BXjscls を改訂しました。

あわせて、これらのパッケージの使い方、および一般的な XeLaTeX の使い方を解説したページを書きました。

この文書を作るのに 2 ヶ月以上かけている間に CTAN の xeCJK のバージョンがまた上がってしまいました。;-)

Z. R. への返信

Re: XeTeX で日本語、再び

- KWTMS の投稿
どうも。さっそく使わさせていただきました。しかしなぜか約物類の前後が異常に間延びしてしまいます。7月20日投稿のバージョンではうまくいっていたのですが、私が未熟なためか原因を見つけることができません。何が原因か調べていただくことはできますでしょうか。
KWTMS への返信

Re: XeTeX で日本語、再び

- Z. R. の投稿

申し訳ありません。

サイトで公開したいた zxjatype にはこちらの作業ミスのせいでバグが混入していました。現在は修正したものに差し替えておりますので、お手数ですが、そちらを改めてダウンロードしてくださるようお願いします。

XeLaTeX で日本語する件について

何より、zxjatype を利用して頂いてありがとうございます。

Z. R. への返信

Re: XeTeX で日本語、再び

- 匿 名 の投稿
zxjatype [2012/05/01 v0.5] が xeCJK 3.0.7 でエラーになるようです.
xeCJK 2.4.6 では処理できました.
TeX Live 2012 では xeCJK 3.0.7 になっているようです.
また W32TeX [2012/08/27] で xelatex を実行すると

---! c:/w32tex/share/texmf/web2c/xetex/xelatex.fmt doesn't match xetex.pool
(Fatal format file error; I'm stymied)

といったエラーが発生しました.

fmtutil.exe --refresh --byfmt xelatex

としてみましたが同様にエラーになりました.
TeX Live 2012 の xelatex.fmt を上書きするとエラーにならずに処理できました.
匿 名 への返信

Re: XeTeX で日本語、再び

- Z. R. の投稿
zxjatype [2012/05/01 v0.5] が xeCJK 3.0.7 でエラーになるようです.

xeCJK 3.x で zxjatype が使えないことは把握しております。zxjatype の「日本語用」句読点スタイル(quasijis)を実装するのに xeCJK の内部コードにパッチを当てる必要があるのですが、xeCJK 2.x と 3.x は中のコードが全然別のものになっている(xeCJK.sty を実際に眺めれば一目瞭然です。3.x は expl3 の言語で書かれています。)ので、同じ機能を実現するには「新しいコードの中身を解析する」ところから始めないといけません。

この日本語用の quasijis スタイルは zxjatype の最も重要な機能である訳です。ところが実は、最近の xeCJK ではデフォルトのスタイル(fullwidth スタイル)は、日本語文書をかなりよく組版できるように思います。

[test-xeCJK.tex]
\documentclass[a4paper]{bxjsarticle}
\usepackage[
  xCJKecglue=true,                % 和欧文間の空白文字を CJKecglue に変換
  CheckSingle=true,               % 文字ウィドウ禁止
  AllowBreakBetweenPuncts=true    % 約物の間で行分割許可
  ]{xeCJK}
\NewDocumentCommand{\jaecglue}{}  %+ 和欧文間空白の設定
 {\hspace{0.25em plus 0.15em minus 0.05em}} %+ (\xkanjiskip に相当)
\xeCJKsetup{CJKecglue=\jaecglue}  %+
\defaultfontfeatures{Scale=\jsScale} % 和文スケール
  % 注: \jsScale は bxjsarticle で与えられる.
\setCJKmainfont[BoldFont=IPAGothic]{IPAMincho} % 和文の\rmfamily
\setCJKsansfont{IPAGothic}                     % 和文の\sffamily
\setCJKmonofont{IPAGothic}                     % 和文の\ttfamily
\newCJKfontfamily{\mikachan}{みかちゃん} % 標準以外の和文フォント
%% 以下はロゴ命令(\XeTeX 等)の定義
\usepackage{metalogo} % \XeTeX, \LuaTeX
\providecommand{\ConTeXt}{Con{\TeX}t}
\providecommand{\pdfTeX}{pdf\/{\TeX}}
\begin{document}
\ConTeXt(この中のXは /ks/ と読む)は\TeX 上に構成された文書生成
システムである。最新版の「MkIV(マーク4)」は\LuaTeX
エンジン\textbf{のみ}をサポートし、「MkII\relax{}(マーク2)」は
\pdfTeX と\XeTeX をサポートする。(\XeTeX に対して%
「MkIII」が計画されていたが{\mikachan 結局作られなかった}。)
\end{document}

(結果の PDF ファイルを添付しました。)

これを見ると、「quasijis スタイル」の実装(およびその他の『パッチが必要な』危険な実装)はもはや不要ではないかと考えています。一方で、上掲ソースでわかるように、xeCJK を直接使う場合は、日本語に適した(句読点スタイル以外の)設定が色々と必要になるので、この辺りを補助する新しい zxjatype を用意するのはそれなりに意味があるかなとも考えています。

こんな感じで悩んでおりますので、xeCJK を実際に使っている人の意見を是非とも聞きたいところです。

Z. R. への返信

Re: XeTeX で日本語、再び

- 匿 名 の投稿
> xeCJK 3.x で zxjatype が使えないことは把握しております。

Z. R. さんがこの問題を把握していることがわかってよかったです.
xeCJK 3.0.7 と 2.4.6 では確かに中身が全く異なっていて
xeCJK 3.0.7 は expl3 を使用したコードになっていますね.

> 「quasijis スタイル」の実装(およびその他の『パッチが必要な』危険な実装)はもはや不要ではないかと考えています。
> xeCJK を直接使う場合は、日本語に適した(句読点スタイル以外の)設定が色々と必要になるので、この辺りを補助する新しい zxjatype を用意するのはそれなりに意味があるかなとも考えています。

私は BXjscls + xeCJK のデフォルトの設定でも十分満足していますが
zxjatype を使用することで自動的に日本語に適した設定になるのであれば
その方が便利だと思います.
xeCJK 3.0.7 と zxjatype を使用した TeX ファイルが xelatex でコンパイルエラーにならないように
zxjatype を修正している人もいるようなので需要はあると思います.
Z. R. への返信

Re: XeTeX で日本語、再び

- 匿 名 の投稿
ZXjatype 0.6 が xeCJK 3.0.8 でも xeCJK 2.4.6 でもどちらでも動作することを確認しました.
対応ありがとうございました.
匿 名 への返信

Re: XeTeX で日本語、再び

- Akira Kakuto の投稿
> W32TeX [2012/08/27] で xelatex を実行すると
> ---! c:/w32tex/share/texmf/web2c/xetex/xelatex.fmt doesn't match xetex.pool
> (Fatal format file error; I'm stymied)
> といったエラーが発生しました.
> TeX Live 2012 の xelatex.fmt を上書きするとエラーにならずに処理できました.

おそらくバイナリは TeX Live 2012, フォーマットは W32TeX となって
いたのでしょう。バージョンが異なるので当然上のように
なります:
TeX Live 2012 : 3.1415926-2.4-0.9998
latest W32TeX: 3.1415926-2.5-0.9999

> fmtutil.exe --refresh --byfmt xelatex
> としてみましたが同様にエラーになりました.
理論上は有り得ないことですが,何かがおかしくなっていたのでしょう。

Akira Kakuto への返信

Re: XeTeX で日本語、再び

- 匿 名 の投稿
Kakuto さん返信どうもありがとうございます.
状況としては TeX Live 2012 に PATH を設定して W32TeX には PATH を設定せずに使用していました.
いろいろテストしてみると以下のようになりました.

・PATH を全く設定しない場合
TeX Live の xelatex を実行しても動作しない.
W32TeX の xelatex を実行しても動作しない.

・TeX Live の PATH のみ設定した場合
TeX Live の xelatex が実行できる.
W32TeX の xelatex がエラーになる.

・W32TeX の PATH のみ設定した場合
TeX Live の xelatex がエラーになる.
W32TeX の xelatex が実行できる.

といった結果になりました.
xelatex は PATH を設定しないと動作しないようです.
platex や lualatex などは PATH を設定しなくても動作するようです.

あと W32TeX のインストーラーが luatexja.tar.xz を展開してくれないようです.
lua で始まるファイルが一度しか展開されないような気がします.
匿 名 への返信

Re: XeTeX で日本語、再び

- Akira Kakuto の投稿
> あと W32TeX のインストーラーが luatexja.tar.xz を展開してくれないようです.
> lua で始まるファイルが一度しか展開されないような気がします.

ありがとうございます。うっかりしていました。
できるだけはやく訂正致します。

Akira Kakuto への返信

Re: XeTeX で日本語、再び

- 前田 富美男 の投稿

xeCJK.styファイルをSUSEより、コピーして、

Windowsのtexファイルのあるフォルダに貼り付け、

次のようなソースをxelatexで実行したところ

動作しました。

\documentclass{jsarticle}

\usepackage{xeCJK}

\begin{document}

\begin{xeCJK}{UTF-8}{sami}

こんにちは\TeX

\end{xeCJK}

\end{document}

Akira Kakuto への返信

Re: XeTeX で日本語、再び

- 匿 名 の投稿
> ありがとうございます。うっかりしていました。
> できるだけはやく訂正致します。

W32TeX [2012/09/03] でインストーラーが luatexja.tar.xz を展開して
正しくインストールされることを確認しました.
対応ありがとうございました.
匿 名 への返信

Re: XeTeX で日本語、再び

- Z. R. の投稿

xeCJK 3.x 版に対応した ZXjatype(0.6 版)を正式にリリースしました。

実装上の都合により、以前の版と非互換な点が幾つかあります。詳細については以下の解説ページを参照してください。