XeLaTeXで中国語と日本語を同時に使う
2020-03-11
LaTeXで英語と日本語と中国語のCVを作ったのですが、せっかくなので同じ文書内で英語と日本語と中国語をきれいに共存させる方法を調べてみました。
なんといってもキモはフォントなので、fontspec
パッケージ(パソコンにインストールされたフォントを自由に指定できる)が使えるXeLaTeXを使いました。試していませんが、LuaLaTeXでも同じことができると思います。
さて、方法ですが、いたって簡単で、Pan-CJKの源ノ明朝と源ノ角ゴシックをインストールした上で、xeCJK
パッケージを使って指定するだけです。欧文フォントはお好きなものを指定してください。
\documentclass{article}
\usepackage{fontspec}
% Latin fonts
\setromanfont[Numbers={OldStyle},
Ligatures={Common}]{Minion Pro}
\setsansfont[Ligatures={Common}]{UnitOT-Medi}
\setmonofont[Scale=0.72]{Pragmata Pro}
% CJK fonts
\usepackage{xeCJK}
\defaultCJKfontfeatures{Scale=0.9}
\newCJKfontfamily[song]\songti{SourceHanSerifSC-Regular}
\newCJKfontfamily[hei]\heiti{SourceHanSansSC-Regular}
\newCJKfontfamily[mincho]\mincho{SourceHanSerif-Regular}
\newCJKfontfamily[gothic]\gothic{SourceHanSans-Regular}
% Chinese fonts
% \setCJKmainfont{SourceHanSerifSC-Regular}
% \setCJKsansfont{SourceHanSansSC-Regular}
% Japanese fonts
% \usepackage{zxjatype}
% \setjamainfont{SourceHanSerif-Regular}
% \setjasansfont{SourceHanSans-Regular}
\begin{document}
Serif
\textsf{Sans Serif}
\songti{宋体}
\heiti{黑体}
\mincho{明朝体}
\gothic{ゴシック体}
\end{document}
これで新しい命令を定義したことになるので、\songti
、\heiti
、\mincho
、\gothic
でその部分のフォントを指定することができます。
長い文章を書きたい時は、言語にあわせてChinese fonts
かJapanese fonts
の部分をコメントアウトすることでそのフォントがデフォルトで適用されます。ZXjatype
は内部でxeCJK
を呼び出していますが、より日本語らしい組版1ができるので日本語の分量が多くなる時はこちらを使うと良いでしょう。
簡体字ではなく繁体字を使いたい時はSourceHanSerifTC
とSourceHanSansTC
、韓国語を使いたい時はSourceHanSerifKR
とSourceHanSansKR
を指定します。
ちなみに、たまに話題になるBiangですが、IDSを使うことでLaTeXでも表示させることができます。ただ、xeCJK
はこれに対応していないらしく、うまくいきませんでした。直接fontspec
から指定する必要がありそうです。
\documentclass{article}
\usepackage{fontspec}
\def\biangT{⿺辶⿳穴⿰月⿰⿲⿱幺長⿱言馬⿱幺長刂心}
\def\biangS{⿺辶⿳穴⿰月⿰⿲⿱幺长⿱言马⿱幺长刂心}
\begin{document}
\fontspec{Source Han Serif SC}
\biangT\biangS
\fontspec{Source Han Sans SC}
\biangT\biangS
\end{document}
また、源ノ角ゴシックはv2.000以降を使用してください。フォントが対応していないとこんな風になっちゃいます。
参考にしたサイト
- Combining Chinese, Japanese and Korean text with xeCJK
- xeCJK宏包 (PDF)
ccmp
in Lua(La)TeX/ConTeXt, with Source Han Serif font
「らしさ」なんていうのは結構厄介なので、ここでは今現在現象としてよく使われているなあ、くらいの意味です。結果としての言語らしさは存在するかもしれませんが、言語らしさの押し付け、特にネイティブから非ネイティブへのそれは、意識するかしないか、善意か否かに関わらず、無益この上ないと思います。 ↩︎