我创建了一个自定义环境,用于在beamer
演示文稿中显示代码示例(用于入门级 LaTeX 课程),但编译我的“旧”代码时突然出现错误。根据旧日志文件,版本为xparse 2011/10/09 v2900
。定义如下(为简洁起见,略作了清理):
\NewDocumentEnvironment{codeblock}{o}{
\IfNoValueTF{#1}
{\begin{exampleblock}{Code}}
{\begin{exampleblock}{Code: #1}}}
{\end{exampleblock}}
错误是
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! LaTeX error: "xparse/expandable-ending-optional"
!
! Argument specification for expandable command ends with optional argument.
!
! See the LaTeX3 documentation for further information.
!
! For immediate help type H <return>.
!...............................................
xparse 2012/08/29 v4160
在我最新的 TeX Live 2012 安装上使用时。调试此问题的第一步是创建 MWE,但这会导致一个完全不同的错误。代码
\documentclass{article}
\usepackage{xparse}
\NewDocumentEnvironment{xptest}{o}{\begin{center}
\IfNoValueTF{#1}{\textbf{Test}}{\textbf{Test: #1}}\par}
{\end{center}}
\begin{document}
\begin{xptest}[Arg]
World
\end{xptest}
\begin{xptest}
World
\end{xptest}
\end{document}
没有产生预期的结果(即两段居中的文本,第一行加粗),但是:
我已阅读我当前安装的 版本的文档xparse
,但其中未提及有关终止可选参数的任何限制。这是一种倒退还是预期但尚未记录的行为?