LaTeX 奇怪的新环境定义

LaTeX 奇怪的新环境定义

我正在制作 Beamer 演示文稿,我想更改单张幻灯片的边距大小。我在一些旧邮件列表中找到了解决方案,稍加修改后效果很好,但我不知道它是如何工作的=/

\newenvironment{codemargin}{%
  \begin{list}{}{%
        \setlength{\leftmargin}{-0.7cm}%
        \setlength{\rightmargin}{-0.7cm}%
      }%
  \item[]}{
  \end{list}
}

这会创建一个新的环境,我可以在想要具有较小边距的幻灯片上使用它。

现在回到正题 - \item[]}{ 是什么意思?我找不到任何其他使用类似语法的例子。

答案1

粗略的想法是,list环境(出于我不完全理解的原因)使各种格式更容易,例如您setlengths拥有的。我相信它也会抑制初始段落缩进。但是,就像itemizeenumeratedescription环境一样——它们都是包装器list——唯一允许的文本必须跟在 之后\item。并且由于\item可以接受可选参数(在描述列表中非常有用),因此提供了一个空参数,以便您可以编写

\begin{codemargin}
  [This text] demonstrates...
\end{codemargin}

否则,[This text]就会被命令吞噬\item

答案2

回答问题的另一部分,似乎你对括号的顺序感到困惑,请阅读:

\newenvironment{codemargin}
{% begin
     \begin{list}{
}{% do
     \setlength{\leftmargin}{-0.7cm}\setlength{\rightmargin}{-0.7cm}}%
     \item[]
}{% end
     \end{list}
}

相关内容