
私は、メインフォントとサンセリフフォントを定義するパッケージを容易にするドキュメントを準備していますfontspec
。そのドキュメントでは、メインフォントを Computer Modern、正確にはその後継の Latin Modern と比較したいと思います。
私は、書くことは
\newfontfamily\lmfont{Latin Modern Roman}
70 を超えるフォント ファイルすべてを含む完全なファミリが有効になります。 しかし、これは正しくありません。
例えば私がこう言うとき
{\lmfont\scshape{}abcd} {\scshape{}abcd}
私はこれを理解します:
左側はラテン系のモダン フォントですが、小文字は使用されていません :-(、右側はドキュメントのデフォルト ("mainfont") フォントで、本来の外観のままです。
比較のために、このファミリーのフォントの優れたセレクション/組み合わせ、つまり、-italic、-italic-bold、-slanted、-slanted-bold、-bold、-smallcaps などの形状とフェイスが追加されたローマン、サンセリフ、モノ フォントを紹介したいと思います。
残念ながら、私のソリューションでLMRoman10-Regular
は とLMSans10-Regular
フォントのみが読み込まれ、 は読み込まれませんLMRomanCaps10-Regular
。そのため、\lmfont\scshape
(または\lmfont\ttfamily
) は機能しませんでした。
\newfamily
それで、完全なラテンモダンフォントが含まれていると定義する可能性はありますか?
2 つのフォント ファミリを並べて比較できる簡単なマクロを作成できるソリューションであれば、どのようなものでも問題ありません。
MWE は次のとおりです。
\documentclass{scrbook}
\usepackage{fontspec}
\setmainfont{Times New Roman} % and other definitions
\newfontfamily\lmfont{Latin Modern Roman} % this is not complete!!
%% New command to compare.
%% #1 defines the family/shape/series
\newcommand{\compare}[1]{%
{#1%
ABCD \dots{} XYZ, abcd \dots{} xyz\\
\lmfont{}ABCD \dots{} XYZ, abcd \dots{} xyz\par
}
}
\begin{document}
\compare{\upshape}
\compare{\itshape}
\compare{\itshape\bfseries}
\compare{\scshape}
\end{document}
答え1
いいえ、そのようには機能しませんし、実際に機能することはできません。
フォントの命名規則は存在せず、フォントによって機能が大きく異なります。一部のフォントにはsmcp
機能があり、他のフォントには機能がなく、小文字用に使用するフォントを指定する必要があります。
fontspec
Latin Modern Roman の場合は状況が大きく異なります。フォント ファイルが約 70 個あり、必要な割り当てをすべて実行するためにそれらを分析するのは範囲外です。
ただし、特定のケースでは、.fd
ファイルが利用可能であるため、それを使用することができます。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\newfontfamily\lmodern{Latin Modern Roman}[
NFSSFamily=lmr
]
\begin{document}
Abc\textsc{Abc}
\lmodern
Abc\textsc{Abc}
\end{document}
答え2
egregさんの素晴らしい回答への補足として、たとえば や という別のファイルに小文字大文字を保存するカスタムフォントの場合、SomeFont-RegularSC.otf
次SomeFont-BoldSC.otf
のようにロードします。
\newfontfamily\somefont{SomeFont}[
UprightFont = *-Regular ,
SmallCapsFont = *-RegularSC ,
BoldFont = *-Bold ,
BoldFeatures = { SmallCapsFont = *-BoldSC },
% Etc.
Extension = .otf ]
SomeFont.fontspec
このコマンドを、ドキュメントに書き込める名前のファイルに配置することもできます\newfontfamily\somefont{SomeFont}
。これにより、すべてのドキュメントで特定のフォント バージョンへの依存関係が残ることがなくなります。