定理標籤產生的空間 (XeTeX)

定理標籤產生的空間 (XeTeX)

有了這個thmtools包,結合前導碼中的\begin{foo}[name=bar,label=x]行,將其排版為 Foo xxx (bar),其中 xxx 是一個數字。 \newtheorem{foo}{Foo}(bar) 後面有一個額外的空格,大約 6pt。如我所見,要完全刪除它使用 thmbox 或 thmtools+thmbox 標記定理主體之前的額外空間,部分後面加%就足夠了label=x]。關鍵是,如果我\,在其後添加任意數量的 s,它們就會被完全忽略,而\hspaces\quads 和\qquads 則不會。嘗試排版:

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[a4paper]{report}
\usepackage[italian]{babel}
\usepackage{thmtools}
\newtheorem{foo}{Foo}

\begin{document}
\begin{foo}[name=bar,label=x]\hspace{5cm}
With the space.
\end{foo}
\begin{foo}[name=bar2,label=x2]
Without the space.
\end{foo}
\begin{foo}[name=bar3,label=x3]\,\,\,\,\,\,\,\,
With 8 \verb"\,"s.
\end{foo}
\end{document}

在我的電腦上, s\,不會產生任何空間,而 s\hspace會產生任何空間。為什麼會發生這種情況?

在標籤後面加上 % 似乎並不能消除空格。由於這已經產生了幾個太多的 \hboxes,我想知道如何刪除它。

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[a4paper]{report}
\usepackage[italian]{babel}
\usepackage{thmtools}
\newtheorem{foo}{Foo}

\begin{document}
\begin{foo}[name=bar,label=x]%
With the \verb"%".
\end{foo}
\begin{foo}[name=bar2,label=x2]
Without the \verb"%".
\end{foo}
\end{document}

上面的程式碼排版後

答案1

確實\,會產生空間(正如您在圖像中看到的那樣),但它是垂直的空間:

...\kern 1.70374
...\kern 1.70374
...\kern 1.70374
...\kern 1.70374
...\kern 1.70374
...\kern 1.70374
...\kern 1.70374
...\kern 1.70374
...\glue(\parskip) 0.0 plus 1.0
...\glue(\baselineskip) 2.0
...\hbox(7.5+2.5)x345.0, glue set 225.66599fil
....\hbox(7.5+2.5)x67.92326
.....\glue 0.0
.....\glue 0.0
.....\glue -5.0
.....\hbox(7.5+2.5)x67.92326
......\glue 5.0
......\OT1/cmr/bx/n/10 F
......\kern-0.95833
......\OT1/cmr/bx/n/10 o
......\kern0.31944
......\OT1/cmr/bx/n/10 o
......\glue 3.83331 plus 1.91666 minus 1.27777
......\OT1/cmr/bx/n/10 3

\hspace產生 a\hskip\,如果不在數學模式下產生一個緊排,它不會自動開始段落,因此在垂直模式下(如此)它會添加垂直空間。也許它應該被定義為\leavevmode

相關內容