
ピリオドの真上に右二重引用符をタイプセットする方法はありますか(引用符がピリオドで終わる場合)。左(たとえば、.)や右(たとえば、".)ではなく、真上にタイプセットします。下の写真は、木、地図、定理ジャン=リュック・ドゥモン著。
答え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
、使用したいフォントごとにカスタム カーニング情報を追加する必要があることに注意してください。
答え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}
stackengine
8 つの必須引数を持つ汎用マクロを使用すると、すべてのパラメータ設定をバイパスして同じ結果を得ることができます。
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)スタック