問題点
upLaTeX を使う場合、ソースファイルにアクセント付きのラテン文字を直接記述し、それを出力することができる。例えば、\'{e}
と入力せずに、直接ソースファイルに é
と入力することで、“é” が出力される。
ただし、特に設定しないかぎり、アクセント付きのラテン文字は、欧文として扱われず、「その他の和文」として扱われてしまう。このことにより、出力がおかしくなることがある。例えば、ソースファイルに「彼は一種のéliteだ。」と入力すると、以下のように出力される。
ここで、“é”と“lite”の間に余計なスペースが入ってしまっている。“élite” は1つの単語であるから、途中で余計なスペースが入ってほしくないところだ。
なぜ余計なスペースが入ってしまったのだろうか。和文文字と欧文文字の間にスペースが適宜入れられるせいだ。upLaTeX では、特に設定しないかぎり、アクセント付きのラテン文字は「その他の和文」として扱われる。このことにより、“é” は和文として扱われ、直後の欧文文字 “l” との間にスペースが入れられてしまうのだ。
解決法
こうしたことが起きるのを防ぐには、プリアンブルで pxcjkcat
パッケージを読みこみ、そのオプションで prefernoncjk
を指定すればよい。要するに \usepackage[prefernoncjk]{pxcjkcat}
と書く。
こう指定すれば、漢字・仮名・ハングルなどを除いたすべての文字が欧文扱いされる。これにより、アクセント付きのラテン文字なども欧文扱いに変わる。
このようにして \usepackage[prefernoncjk]{pxcjkcat}
をプリアンブルで記述しておけば、先ほど挙げた「彼は一種のéliteだ。」という例も全く問題なく表示されるようになる。
今挙げた例は、アクセント付きのラテン文字の話であるが、Æ などの合字や引用符(“)についても同様に問題を解決できる。
例えば、以下のようにソースファイルに記述したとする。
\documentclass[uplatex]{jsarticle} \usepackage[utf8]{inputenc} % ソースファイルのエンコーディングがUTF8であることを示す \usepackage[prefernoncjk]{pxcjkcat} % なるべく欧文扱いにする \begin{document} 彼は一種のéliteだ。 Æsopの物語を“naïve”という言葉で表現したのだから。 \end{document}
これは以下のように出力される。
なお、\usepackage[prefernoncjk]{pxcjkcat}
という記述がない場合は、以下のように出力される。
pxcjkcat
パッケージの用法や upLaTeX での文字コードの扱いについてもっと詳しく知りたい人は、以下を参照されたい。
- 『[改訂第7版]LaTeX2ε美文書作成入門』 [1] の「12.4節:ファイルのエンコーディング」
pxcjkcat
パッケージの README-ja- 「upLaTeX を使おう」
- 「LaTeX の「アレなデフォルト」 傾向と対策 」の「その10:upTeXの和文カテゴリコードがアレ」
補:幾何学的な図形や OTF
パッケージの記号がうまくでない場合の対処法
pxcjkcat
パッケージのオプションで prefernoncjk
を指定すると、幾何学的な図形(■ / ○ / ▼)などがうまく出力できなくなることがある。これは、 prefernoncjk
を指定すると、幾何学的な図形も欧文扱いされるからだ。
こうなるのを防ぐためには、幾何学的な図形を「その他の和文」扱いすればよい。
具体的には、プリアンブルに \cjkcategory{sym18}{cjk}
と指定すればよい [2] 。\cjkcategory
は、pxcjkcat
パッケージで文字の扱いを変えるために用いられる命令である。ここでは、幾何学的な図形 (U+25A0 – U+25FF) の範囲を指す sym18
に明示的に cjk
と指定している。
例えば、以下のようにソースファイルに記述したとする。
\documentclass[uplatex]{jsarticle} \usepackage[utf8]{inputenc} % ソースファイルのエンコーディングがUTF8であることを示す \usepackage[prefernoncjk]{pxcjkcat} % なるべく欧文扱いにする \cjkcategory{sym18}{cjk} % 幾何学的な図形を「その他の和文」扱いにする \begin{document} フランス語で正三角形(▲)は、 triangle équilatéral と言います。 \end{document}
これは、以下のように出力される。
また、pxcjkcat
パッケージのオプションで prefernoncjk
を指定すると、OTF
パッケージの記号がうまく出ないことがある。例えば、丸囲みの「問」(㉄)を出力する場合、OTF
パッケージでは \ajLig{○問}
と記述するのだが、これがうまく出ないことがある。 なぜうまく出ないのかと言うと、\ajLig{○問}
の中に幾何学的な図形である ○ が含まれているためである。
これについても、プリアンブルに \cjkcategory{sym18}{cjk}
と指定しておけば、うまく出力される。
このほか、pxcjkcat
パッケージのオプションで prefernoncjk
を指定している場合、♨(温泉を示す記号)などもうまく出力できないことがある。この場合、プリアンブルで、\cjkcategory{sym19}{cjk}
を指定すればうまく出力できる [3] 。
- 奥村晴彦・黒木裕介.(2017). 『[改訂第7版]LaTeX2ε美文書作成入門』東京:技術評論社. [↩]
- 実は、プリアンブルに
\cjkcategory{sym18}{cjk}
と指定しなくても、本文中で\withcjktokenforced
という命令を個用いれば、その部分は欧文扱いされなくなる。例えば、\withcjktokenforced{▲}
とすれば、▲ が「その他の和文」扱いで出力される。ただ、こうした幾何学的な図形が出てくるたびに\withcjktokenforced
を毎回指定しないといけない。もし、何度も使うようなら、プリアンブルであらかじめ指定しておいた方が楽である。 [↩] - sym19 は Unicode での「その他の記号」(Miscellaneous Symbols, U+2600 – U+26FF) の範囲を指す。 [↩]