私は文書の組版を細かく制御する方法を模索しています。このPDFしかし、「()、+、-、=、...」などの記号を次のように設定する方法がわかりません。わずかに他の計算よりも重いです。これは可能ですか? また、Unicode 計算は他のパッケージの多くのオプションを壊すことも知っていますが、ラテン文字とギリシャ文字の異なる書体を実現するために使用しています。Unicode なしで同じことを実現できる場合は、Unicode への依存を取り除く可能性を受け入れますが、このパッケージを念頭に置いたソリューションを希望します。
答え1
ここでは 2 つの問題があります。1 つ目は、必要なグリフが実際に含まれているフォントを見つけること、2 つ目は、必要な場所にグリフを表示させることです。
現在利用可能な、複数のウェイトを提供する OpenType 数学フォントは次のとおりです。
- Lucida Bright MathはRegularとDemiboldを提供しています
- Minion Math は、Regular、Medium、Semibold、Bold(それぞれ 5 つの光学サイズ)を提供しています。
- XITS MathはRegularとBoldを提供しています
では、メインの数式フォントとして Minion Math Regular を使用していて、好みに応じて Minion Math Semibold を「少し」太字にすることにしたとします (太字の数式バージョンよりも薄いでしょうか?)。次に、特定の記号を半太字にしたい場合、全体を通してrange
ドキュメントのプリアンブルでのキーを使用できます\setmathfont
。たとえば、次のようになります。
% Ignoring optical sizes
\setmathfont{MinionMath-Regular.otf}
\setmathfont[
range = { "002B,"2212,"003C,"003E,"003D,"007B,"007D,"007C,"0028,"0029 } % +-<>={}|()
]{MinionMath-Semibold.otf}
追加の Unicode スロットまたは範囲のコードは で見つかりますunimath-symbols.pdf
。
効果を適用したい場合一部のみ文書の文字を毎回再マッピングする必要があります。次のようにします。
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{MinionMath-Regular.otf}
\NewDocumentCommand\applysemi{}{%
\setmathfont[
range = { "002B,"2212,"003C,"003E,"003D,"007B,"007D,"007C,"0028,"0029 }
]{MinionMath-Semibold.otf}%
}
\NewDocumentCommand\removesemi{}{%
\setmathfont[
range = { "002B,"2212,"003C,"003E,"003D,"007B,"007D,"007C,"0028,"0029 }
]{MinionMath-Regular.otf}%
}
\begin{document}
$ a + ( b - c ) = x $
\applysemi
$ a + ( b - c ) = x $
\removesemi
$ a + ( b - c ) = x $
\end{document}
FakeBold
XeLaTeXを使用している場合は、ドキュメントのセクション9.3に記載されているように、キーを使用して、指定された太さのないフォントの外観を歪めることもできますfontspec
。たとえば、Cambria Mathの場合は次のようにします。
\setmathfont[
range = { "002B,"2212,"003C,"003E,"003D,"007B,"007D,"007C,"0028,"0029 } ,
FakeBold = 2
]{Cambria Math}
ただし、これはあまりお勧めできません。結果は、適切にデザインされたフォントと美的に一致しないからです。
答え2
あなたの質問に対する究極の答えは、「利用可能なフォントの見た目に満足できない場合は、独自のフォントをデザインしてください!」です。しかし、フォントのデザインは難しくて退屈な作業であり、生活の他の義務を考えると、おそらく必要な時間は残されていないでしょう。
ショートカットがあります:異なるフォントの文字を混ぜたい場合は、仮想フォントそれを使用します。これを行う方法についてのヒントについては、次の質問を参照してください。仮想フォントを作成するには?