フォントの選択に苦労しています。どうも理解できないようです。
私は、Latin Modern Roman、Trajan Pro、および Trajan Pro Bold を使用するドキュメント クラスを開発しています。私のニーズは、Trajan フォントをスモール キャップスとボールド スモール キャップスに定義し、その他すべてに LRM を使用することです。
[options]
以下の場合にエラーが発生する理由や、それを回避する方法がわかりません。
\documentclass[11pt]{article}
\usepackage{geometry} %for page layout
\geometry{hmargin={1in,1in},vmargin={0.75in,0.75in},marginparwidth={0.8in},marginparsep={0in}}
\usepackage{fontspec} %for xelatex unicode
\setmainfont{Latin Modern Roman}[
UprightFeatures = {SmallCapsFont=TrajanPro-Regular.otf},
BoldFeatures = {SmallCapsFont=TrajanPro-Bold.otf},
]
\begin{document}
Here is some {\bfseries\scshape Boldface SmallCaps} text
Here is some {\bfseries\uppercase{Boldface Uppercase}} text
Here is some {\bfseries Boldface} text
Here is some {\scshape SmallCaps} text
Here is some \uppercase{Uppercase} text
Here is some {Regular} text
\end{document}
編集として、私がほぼ 5 年間使用してきた次の回避策コードを追加しました。これは問題なく動作します。入力したいすべての場所に、代わりに\scshape
入力するだけです\sffamily
。そうすることが間違っていることはわかっていますが、5 年以上もより良い方法を見つけようとしてきましたが、見つけられませんでした。
\RequirePackage{fontspec} %for xelatex unicode
\setmainfont{Latin Modern Roman}
% BoldFont = ⟨font name⟩
% ItalicFont = ⟨font name⟩
% BoldItalicFont = ⟨font name⟩
% SlantedFont = ⟨font name⟩
% BoldSlantedFont = ⟨font name⟩
% SmallCapsFont = ⟨font name⟩
\setsansfont{TrajanPro-Regular.otf}[
BoldFont=TrajanPro-Bold.otf
% ItalicFont = ⟨font name⟩
% BoldItalicFont = ⟨font name⟩
% SlantedFont = ⟨font name⟩
% BoldSlantedFont = ⟨font name⟩
% SmallCapsFont = ⟨font name⟩
]
もう 1 つ編集すると、LRM はシステムにインストールされたフォントで、Trajan フォントはルート ディレクトリ内のプロジェクトに保存されている 2 つのファイルです。ルート内のフォント フォルダーにこれらを配置できるようにしたいのですが、一度に 1 ステップずつ実行します。
答え1
私は Trajan-Pro を持っていないので、LMR (TexGyreHeros) とは明らかに異なる別のものを代用しました。
\documentclass[11pt]{article}
\usepackage{geometry} %for page layout
\geometry{hmargin={1in,1in},vmargin={0.75in,0.75in},marginparwidth={0.8in},marginparsep={0in}}
\usepackage{fontspec} %% running under LuaLaTeX
\setmainfont{Latin Modern Roman}[
SmallCapsFeatures={Letters=SmallCaps}, % <=== See Section 4.1 of Fontspec documentation.
UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf},
BoldFeatures = {SmallCapsFont=texgyreheros-bold.otf},
]
\begin{document}
Here is some {\bfseries\scshape Boldface SmallCaps} text
Here is some {\bfseries\uppercase{Boldface Uppercase}} text
Here is some {\bfseries Boldface} text
Here is some {\scshape SmallCaps} text
Here is some \uppercase{Uppercase} text
Here is some {Regular} text
\end{document}
SmallCapsFeatures={Letters=SmallCaps},
行われた唯一の変更は、セクション 4.1 の Fontspec ドキュメントで説明されている理由により、行を追加することです。
このコードは私のシステムでは LuaLaTeX では動作しますが、XeLaTeX では動作しません。おそらく、LMR がシステム フォントとしてインストールされていないためです。LuaLaTeX では、LMR がデフォルトのフォントです。この考えをテストするために、次のコードでシステム フォントの 1 つを LMR (TeX Gyre Termes) に置き換えます。
%% using the free Tex Gyre fonts, which I have installed as system fonts
\setmainfont{TeXGyreTermesX}[
SmallCapsFeatures={Letters=SmallCaps}, % <=== See Section 4.1 of Fontspec documentation.
UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf},
BoldFeatures = {SmallCapsFont=texgyreheros-bold.otf},
]
この変更により、LuaLaTeX でも XeLaTeX でも同じ結果が得られます。
2つの追加の注意事項が役立つかもしれません。まず、ウィル・ロバートソンは最近、「人間が読める」システム名ではなく、明示的なファイル名を使用することを推奨しました。タグボート39(2018年)2 番目に、をSmallCapsFeatures
他の機能に埋め込むことができるため、直立または太字の追加制御が可能になります。
\setmainfont{texgyretermes}[
Extension = {.otf},
UprightFont = {*-regular},
ItalicFont = {*-italic},
BoldFont = {*-bold},
BoldItalicFont = {*-bolditalic},
UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf, SmallCapsFeatures={Letters=SmallCaps, Color=992211}},
BoldFeatures = {SmallCapsFont=/Users/John/Library/Fonts/FiraGO-Heavy.otf, SmallCapsFeatures={Letters=SmallCaps, Color=112299}, Color = FF4422},
]
たとえば、ここで FiraGO-Heavy に対して行ったように、Trajan-Pro フォント ファイルへの完全なパスを指定できます。