在辅助文件中写入数学运算:下划线会发生什么?

在辅助文件中写入数学运算:下划线会发生什么?

使用 newfile 扩展,我正在将内容写入外部文件。

但是,当此内容在数学公式中包含下划线时,它会在外部文件中写入,并在下划线符号前有一个空格。例如:

\documentclass{article}

\usepackage{newfile}

\newoutputstream{testout}
\openoutputfile{testout.out}{testout}

\begin{document}
\begin{writeverbatim}{testout}
First test $\sum_{i=1}^n x_i$
\end{writeverbatim}

\addtostream{testout}{Second test, and underscore_test $\sum_{i=1}^n x_i$}

\closeoutputstream{testout}
\end{document}

生成以下 testout.out :

First test $\sum_{i=1}^n x_i$
Second test, and underscore_test $\sum _{i=1}^n x_i$

您可以注意到第二个公式中下划线前有一个空格,而第一个公式中并非如此。

对于我想要做的事情来说,这并不是什么大问题,但如果有人知道如何摆脱这些空间,那就太好了。

但我的问题主要是为什么這樣會发生嗎?

答案1

并不是在 之前写一个空格,而是_在 之后写一个空格\sum。这是 TeX 在编写命令名称时的一种原始行为,因此\sum x不会写成\sumx

如果您制作的\sum不是标记而是四个字符的序列,那么就不会添加这个空格,因此在写入字符之前更改\或使用的catcode\string\sum 将会停止添加空格。

相关内容