
XeLaTeX で大まかな文法を書き、fontspec を使用してデフォルトのフォントを CM ではなく Bitstream Charter に変更します。出力の最初のページくらいは問題なく動作しますが、2 ページ目でフォントが突然 Computer Modern に戻ります。原因はわかりません。私のプリアンブルは次のように設定されています。
\usepackage[left=0.5in,right=0.5in,top=1in,bottom=1in]{geometry}
\renewcommand{\rmdefault}{bch}
\usepackage{fontspec}
\newfontfamily\la{Brill Roman}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{array}
\usepackage{multirow}
\renewcommand{\p}{\textipa}
2 ページ目の出力は次のようになります。
そして、その領域の実際の LaTeX コードは次のように実行されます。
\item \la{V} $\to$ any of the vowels or diphthongs.
\item \la{C2} $\to$ optional; restricted to nasals, fricatives, and \la{/l/}.
\end{enumerate}
\item \la{N} -- syllabic nasal. May be any of the nasals.
\end{enumerate}
\large{\textbf{Stress}}
Stress is always on the penultimate syllable.
答え1
最新の TeX ディストリビューションには XCharter OpenType フォントが含まれているため、 の代わりにこれを使用できますが、\renewcommand{\rmdefault}{bch}
ASCII 文字以外は何も表示されません。
さらに、\la
あなたが定義したように、これは XeLaTeX にその時点から Brill を使用するように指示するスイッチにすぎません。
正しい文書は
\documentclass{article}
\usepackage[left=0.5in,right=0.5in,top=1in,bottom=1in]{geometry}
\usepackage{fontspec}
\setmainfont{XCharter}
\newfontfamily\lafont{Brill Roman}[Color=FF0000]
\DeclareTextFontCommand{\la}{\lafont}
\usepackage{array}
\usepackage{multirow}
\newcommand{\p}{\textipa}
\begin{document}
\begin{enumerate}
\item \la{V} $\to$ any of the vowels or diphthongs.
\item \la{C2} $\to$ optional; restricted to nasals, fricatives, and \la{/l/}.
\item \la{N} -- syllabic nasal. May be any of the nasals.
\end{enumerate}
{\large\textbf{Stress}\par}
Stress is always on the penultimate syllable.
\end{document}
注意して\la
くださいする引数を取りますが、\large
取りません。テキストは Charter フォントで表示されますが、引数のテキストは\la
Brill フォントで表示されます (例では強調するためだけに赤で表示しています。オプションは削除してくださいColor=FF0000
)。
システム フォントの中にない場合はXCharter
、より複雑な設定を使用できます。
\setmainfont{XCharter}[%
Extension=.otf,
UprightFont=*-Roman,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]
また、通常はxunicode
とxltxtra
をロードしないことにも注意してください。
利用可能なのバージョンに応じて、とfontspec
の必須引数とオプション引数の順序を切り替える必要がある場合があります。\setmainfont
\newfontfamily
\newfontfamily\lafont[Color=FF0000]{Brill Roman}
\setmainfont[%
Extension=.otf,
UprightFont=*-Roman,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]{XCharter}
この場合は、TeX ディストリビューションを更新したほうがよいでしょう。
答え2
で
\la{N}
は{}
何も行わず、\la
引数も取らず、現在のグループの残りのフォントを切り替えます。この場合、 は です。したがって、\end{enumerate}
その時点でフォント (およびその他のローカル宣言) は で持っていた値に戻ります\begin{enumerate}
。
\la
フォントを変更するだけなのN
か、文書全体のフォントを変更したいのかは不明ですが、その場合は次のように使用できます。
\setmainfont{Brill Roman}