使用 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
将会停止添加空格。