LuaLaTeX による自動カーニング

LuaLaTeX による自動カーニング

ピリオドの真上に右二重引用符をタイプセットする方法はありますか(引用符がピリオドで終わる場合)。左(たとえば、.)や右(たとえば、".)ではなく、真上にタイプセットします。下の写真は、木、地図、定理ジャン=リュック・ドゥモン著。

ピリオドのすぐ上にある右二重引用符。

答え1

1 つの方法は、引用符とピリオドの間に負の「カーニング」を追加することです。

\documentclass{article}
\begin{document}
Here is an unkerned quotation mark: ``\dots''.

Here is a kerned quotation mark: ``\dots''\kern-0.5em.
\end{document}

カーニングの例

TeX コマンドは、\kern-0.5em引用符とそれに続くピリオドの間に負のスペースを挿入します。正確な間隔については少し調整する必要がありますが、-0.5emフォント サイズに合わせて拡大縮小する などの測定方法を使用すると、かなりうまく機能するはずです。

LuaLaTeX による自動カーニング

他の人が提案しているように、マクロを使ってこれを行うことができますが、これを自動的に行う場合は、フォント固有のカーニングテーブルにこのカーニング情報を含める必要があるようです。これは次のように行うことができます。ルアラテックス次のように:

まずファイルを作成します:Palatino.fea

languagesystem DFLT dflt;
languagesystem latn dflt;
feature kern {
pos  \quotedblright \period -1000;
} kern;

ここで、次を使用してこのフォント情報を読み込みますfontspec:

\documentclass{article}
\usepackage{fontspec}
\setmainfont[FeatureFile=Palatino.fea]{Palatino}

\begin{document}
Here is an automatically kerned quotation mark: ``\dots''.

Here is a manually kerned quotation mark: ``\dots''\kern-0.5em.
\end{document}

これを今すぐコンパイルする必要がありlualatex、使用したいフォントごとにカスタム カーニング情報を追加する必要があることに注意してください。

LuaLaTeX による自動カーニング

答え2

私はこれを、マクロで囲まれた単なる\rlap-ed ピリオド (または、LaTeX の意味では)として設定します。\makebox[0pt][l]

ここに画像の説明を入力してください

\documentclass{article}
\newcommand{\qperiod}{\rlap{.}}
\begin{document}
Some text: ``\dots''.

Some text: ``\dots''

Some text: ``\dots\qperiod''
\end{document}

マクロラッピングにより、必要に応じてグローバルに変更を加えることができます。

答え3

ここではスタックを使用します。 は、stacktype長い場合は「L」、短い場合は「S」(デフォルト)です。 「L」の場合、スタックの「距離」はベースラインからベースラインまでです。 を に設定すると0pt、2 つのコンポーネントが同じベースラインを共有することになります(対照的に、短いスタック距離は、「アンカー」の上部とスタックされたアイテムの下部の間の垂直ギャップです)。 はstackalignment水平方向の配置を定義します(デフォルトは c=center)。ここでは、左揃えに設定しています。

\documentclass{article}
\usepackage{stackengine}
\renewcommand\stacktype{L}
\renewcommand\stackalignment{l}
\begin{document}
by ``\dots\stackon[0pt]{.}{''}
\end{document}  

ここに画像の説明を入力してください

stackengine8 つの必須引数を持つ汎用マクロを使用すると、すべてのパラメータ設定をバイパスして同じ結果を得ることができます。

by ``\dots\stackengine{0pt}{.}{''}{O}{l}{F}{F}{L}

必須の引数は 8 つあります。

  • 積み重ね距離
  • アンカーアイテム
  • 積み重ねられたアイテム
  • O(ver) または U(nder) スタック
  • 左(左)中央または右(右)水平配置
  • 「quietstack」の T/F (「T」は作成されたが印刷されていないことを意味します)
  • 「useanchorwidth」の T/F (「T」はアンカー幅によってスタック全体の幅が決まることを意味します)
  • S(short)またはL(long)スタック

関連情報