与thmtools
包装相结合,\begin{foo}[name=bar,label=x]
与线\newtheorem{foo}{Foo}
,排版为 Foo xxx (bar),其中 xxx 是一个数字。 (bar) 后面有一个额外的空格,大约 6pt。要完全删除它,正如我在使用 thmbox 或 thmtools+thmbox 在标记定理主体之前添加额外空格,在部分后面添加 % 就足够了label=x]
。关键是,如果我\,
在后面添加任意数量的 s,它们会被完全忽略,而\hspaces
、\quad
s 和\qquad
s 则不会。尝试排版:
%!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