luatexja-fontspec で望みどおりの欧文フォントが出せないことがある
誤: a.fontspec-palatino-t1.{log,tex}、 e.t1-fontspec-palatino.{log,tex} 正: a.fontspec-palatino-t1.{log,pdf}、 e.t1-fontspec-palatino.{log,pdf}
(私自身 fontspec は使わないので間違っているかもしれませんが)fontspec を使う場合には旧来の fontenc, palatino は不要です.
\documentclass{book} \usepackage[papersize={6.13in,9.21in}]{geometry} \usepackage{luatexja-fontspec} \setmainfont{TeX Gyre Pagella} % Palatino 類似 \setsansfont{TeX Gyre Heros} % Helvetica 類似 \setmonofont{TeX Gyre Cursor} % Courier 類似 \begin{document} ... \copyright hogehoge \textsf{sans-serif}, \texttt{typewriter} \end{document}
では如何でしょうか?
私も理解が少し怪しいですが,fontspec を読み込んだ時点で OpenType フォントを使うものとして EU2 エンコーディング (デフォルトフォントは LatinModern)で設定されますので,北川さんの書かれたように OpenType フォントを使うよう設定するのが 解決策としては早いと思います. (「欧文フォントが汚くなる」と書かれていますが,PDF のプロパティを見るとわかるように LatinModern が使われています.) TeX Gyre フォントは URW++ のフォントを基にして作られた OpenType フォントです.
どうしても従来の Type 1 フォントを使いたい場合は,日本語の埋め込みフォントについては NFSS2 のインターフェースを 用いて設定されるとよいのではないでしょうか.
既に他の方が答えていますが、 以下のような理由があって、 結局 Unicode フォントを使うのが無難ということになります。
そして、(OT1 や T1 エンコーディングでなく)Unicode のフォントを使うと決めたなら、(fontenc はもちろん) palatino パッケージも使えません。 何故なら、これは Type1 版の Palatino フォントを使うためのものであり、 一般に Type1 フォントは Unicode ではないからです。 (OpenType/TrueType フォントはその大部分が Unicode である。) 代わりに、「Palatino 系の OpenType/TrueType フォント」 を用意して、それを fontspec の機能を用いて指定することになります。 (具体的な記述は北川さん(h7k)のコメントにある通りです。)
ちなみに、 同じ現象が起こる最小動作例。 lualatex でも xelatex でもエラーとなります。 少なくとも LuaTeX-ja は無関係です。
\documentclass[a4paper]{article} \usepackage{fontspec} \begin{document} \usefont{T1}{ptm}{m}{n}Mr.~X \end{document}
皆さん、アドバイスありがとうございました。
相談する場所を間違えていました。フォーラムに移動します。
移動先: フォーラム 公開討議/質問 #63752
#27759 を発行してから時間がたってしまいました。
LuaTeX-ja のバグというほどのことはなかったのですが、この場を借りて報告・相談します。
1. LaTeX Error: Option clash for package color.
\usepackage{luatexja-fontspec} より先に \usepackage[...]{color} して解決しました。
2. LaTeX Error: Command \super already defined.
私達の文書では \super という Smalltalk の予約語をマクロ化して使っており、これが xunicode 中の定義と衝突しました。 \usepackage{luatexja-fontspec} の直後に \let\super\relax して(強引に)解決しました。
3. LaTeX Error: Command \copyright unavailable in encoding T1.
\copyright → \textcopyright にして解決しました。
4. LaTeX Error: Command \nobreakspace unavailable in encoding T1.
\usepackage[T1]{fontenc} を落として解決しました。 実際、"OT1, T1 and other font encodings may have small problems with xunicode" ということなので、たぶんこれしか解は無いと思われます。この対策を入れると 3 の対策は不要になります。
5. しかし
\usepackage[T1]{fontenc} を落とすと、欧文フォントが汚くなります。
現象を再現するためのプログラム 0.py、0.py を走らせた結果で、 望みどおりのフォントが出るもののエラーになった a.fontspec-palatino-t1.{log,pdf}、 エラーにはならないものの望みどおりのフォントが出ない e.t1-fontspec-palatino.{log,pdf} を gist に置きました。
https://gist.github.com/2657622
解決のヒントを与えていただけると幸いです。