有没有一种首选的方法来更改\baselinestretch
使用 TeX Live 2012 中包含的 xparse 包?(我相信这是 xparse 版本 3570,日期为 2012/04/23。)
如果我latex -output-format pdf document.tex
在 Mac OS X 10.7.4 上运行并根据该文档创建 PDF——
\documentclass{minimal}
\usepackage{xparse}
\RenewDocumentCommand \baselinestretch {} {1}
\begin{document}
hello, world
\end{document}
—pdfTeX 永远不会退出。中断 pdfTeX 会产生此输出,这在很大程度上让我无法理解—
! Interruption.
\size@update ...relax \baselineskip \f@linespread
\baselineskip \normalbasel...
l.4 \begin{document}
如果我替换\RenewDocumentCommand \baselinestretch {} {1}
为\renewcommand{\baselinestretch}{1}
以获得-
\documentclass{minimal}
\usepackage{xparse}
\renewcommand{\baselinestretch}{1}
\begin{document}
hello, world
\end{document}
—然后 pdfTeX 完成并生成 PDF。此外,\RenewDocumentCommand
在 xparse 版本 2219 (2011/04/08) 中使用似乎表现符合预期。
(我理解\baselinestretch
默认值为 1;为了简单起见,我在示例中使用 1。)
答案1
LaTeX2e 将宏\baselinestretch
用作变量,而不是“命令”。它用于需要 TeX 扩展的地方。函数xparse
(\RenewDocumentCommand
等等)出于好的理由产生不可扩展的命令,但这不适用于变量。目前,没有用于设置这些变量的原生 LaTeX3 接口(事实上,目前还不清楚应该如何以系统的方式处理这些变量)。因此,您应该在 LaTeX2e 中使用\newcommand
它来设置和类似的变量。\baselinestrech