フォントを少し暗くしたい

フォントを少し暗くしたい

私の説明が誤解を招く可能性があることがわかりましたので、質問を修正します。「dog」を通常のテキストより少しだけ暗くしたいのですが、「fox」ほど暗くしたくはありません。lualatex で fontspec を使用しています。

あるフォントのイタリック体を、少しだけ暗い別のフォントに合わせようとしています。FakeBold でそれを実現する方法はありますか? 下の例では、「dog」は「fox」と同じ暗さですが、少しだけ暗くしたいだけです。

(ここでは例として GentiumPlus を使用しています。実際のフォントではありません。)

\documentclass[12pt]{article}
\usepackage{fontspec}

\setmainfont{GentiumPlus}

\newfontfamily{\fbgentium}{GentiumPlus}[%
  ItalicFeatures={FakeBold=1.5},
  Scale = MatchLowercase]

% Want this to be just slightly dark
\newfontfamily{\ltgentium}{GentiumPlus}[%
  ItalicFeatures={FakeBold=1.05}, % specify a small amount here (tried 0.05)
  Scale = MatchLowercase]

\begin{document}
\itshape
The quick brown {\fbgentium fox}
jumps over the lazy {\ltgentium dog.}
\end{document}

答え1

私は、latex3/fontspec の GitHub ページに問題 #498 を提出しました。SE のこのスレッドにリンクされています。返信が来たら、ここにコメントします。その間、回避策 (lualatex で動作します):

ほとんどの場合、特に標準または標準に近いサイズのテキストの場合、太さの視覚的な外観は、水平ステムよりも垂直ステムに密接に関連しています。これは、ほとんどの文字の垂直ステムの方が太いためです。

fontspecの設定はうまくFakeStretch機能します。水平方向にスケールするだけなので、単純な線形変換であり、バグがほとんどありません。したがって、重みを少し変更する場合は、FakeStretch今のところ を使用し、 の解決を待ちますFakeBold

水平ステムの太さも変更する必要がある場合、 では実行できませんFakeStretch。ただし、必要な場合は、 を使用してフォントのサイズを大きくしScaleAgainFakeStretch値で補正することができます。

関連メモ:合成小文字大文字を作成するには、合成小文字大文字のないフォントに対してScaleAgainとの組み合わせを使用します。完璧ではありませんが、良いです。FakeStretch

答え2

embolden=decimal_numberTeX エンジン [XeTeX] と [luaotfload 付き LuaTeX] は両方とも、OpenType フォントのエンジン実装フォント機能をサポートしています。PDF 標準では、閉じた曲線の 2 つの基本的なペイント ルーチンが定義されています:fillおよびstrokefillルーチンは閉じた曲線の内側にのみインクを挿入し、stroke は曲線を線で描画します。線の幅は宣言する必要があります。フォントの文字のペイントは、fillデフォルトではルーチンによってのみ行われます。エンジン依存のフォント機能がembolden=decimal number設定されている場合は、使用されているフォントの文字は両方のルーチンによってペイントされます:fillプラスstrokeおよびルーチンの線幅strokeは に設定されますdecimal_number/100 em

たとえば、次のように使用してみてくださいxetex:

\font\fa=[lmroman10-regular]
\font\fb=[lmroman10-regular]:embolden=1.7

\fa Default: only fill is used.

\fb Special: fill plus stroke is used.

\bye

LaTeX fontspec パッケージは、その特定の構文を内部的にフォント機能FakeBold=decimal numberに変換しますembolden=decimal_number

塗りつぶしとストロークのルーチンがどのように機能するかをより明確にするために、次の画像を追加します。

塗りつぶしと線

関連情報