为什么在文档中声明命令会产生水平空间?

为什么在文档中声明命令会产生水平空间?

我真的很困惑为什么在第二行的第二个“测试”之前会出现一些额外的水平空间:

\documentclass[12pt]{article}
\usepackage[english]{babel}

\begin{document}

Test Test

Test \newcommand{\foo}{} Test

\end{document}

在此处输入图片描述

答案1

正如 Steven Segletes 所指出的那样,只有连续的空格才会被压缩成一个空格,因此\newcommand在文本中间加上一个空格,两边各有一个空格,将导致输出中的空间更宽。

如果您希望源文件的可读性,则可以避免使用 spacy 输出,但代价是源代码中会出现更多行:

Test
\newcommand{\foo}{}%
Test

相同的spacy结果通常是由于\index在源文件中为同一文本插入多个条目而导致的,可以用相同的方式解决:

some text
\index{index item}%
\index{item to be indexed}%
item to be indexed

我知道你可能还没有遇到这个问题,但尽早养成良好的习惯是个好主意。

相关内容