
有沒有辦法在句點上方直接排版右雙引號(如果引用以句點結尾)?不在左側(例如“.”),不在右側(例如“.”),而是在正上方。下面的照片就是一個例子樹、地圖和定理讓-呂克·杜蒙著。
答案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 自動字距調整
正如其他人所建議的,您可以使用巨集來執行此操作,但如果您想自動執行此操作,則似乎需要將此字距調整資訊包含在字體特定的字距調整表中。這可以透過以下方式完成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
這裡我用的是棧。 “L”代表stacktype
長,“S”代表短(預設)。如果為“L”,則堆疊“距離”是從基線到基線。透過設定為0pt
,表示兩個組件共享相同的基線(相反,短堆疊距離是「錨點」頂部與堆疊項目底部之間的垂直間隙)。定義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}
八個強制參數是:
- 堆疊距離
- 錨點項目
- 堆疊物品
- O(ver) 或 U(nder) 堆疊
- l(左) c(輸入) 或 r(右) 水平對齊
- T/F 表示「quietstack」(「T」表示已建立但未列印)
- T/F 表示「useanchorwidth」(「T」表示錨點寬度決定整個堆疊寬度)
- S(短)或 L(長)堆疊