定理标签生成的空间(XeTeX)

定理标签生成的空间(XeTeX)

thmtools包装相结合,\begin{foo}[name=bar,label=x]与线\newtheorem{foo}{Foo},排版为 Foo xxx (bar),其中 xxx 是一个数字。 (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 不会产生任何空格,而\hspace会产生。为什么会这样?

在标签后添加 % 似乎无法消除空格。由于这会产生几个过多的 \hbox,我想知道如何将其删除。

%!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生成一个\hskip\,如果不在数学模式下,则会生成一个不会自动开始段落的字距,因此在垂直模式下(如这里)它会增加垂直空间。可能它应该被定义为\leavevmode

相关内容