lualatexで追加フォントを読み込む

lualatexで追加フォントを読み込む

私は、メインフォントとサンセリフフォントを定義するパッケージを容易にするドキュメントを準備しています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機能があり、他のフォントには機能がなく、小文字用に使用するフォントを指定する必要があります。

fontspecLatin 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.otfSomeFont-BoldSC.otfのようにロードします。

\newfontfamily\somefont{SomeFont}[
   UprightFont = *-Regular ,
   SmallCapsFont = *-RegularSC ,
   BoldFont = *-Bold ,
   BoldFeatures = { SmallCapsFont = *-BoldSC },
   % Etc.
   Extension = .otf ]

SomeFont.fontspecこのコマンドを、ドキュメントに書き込める名前のファイルに配置することもできます\newfontfamily\somefont{SomeFont}。これにより、すべてのドキュメントで特定のフォント バージョンへの依存関係が残ることがなくなります。

関連情報