在定义某些内容时,这需要空参数意味着什么?

时间:2015-04-28 14:56:58

标签: latex

\newenvironment{nameOfEnvironment}[1][]%

有人可以解释空括号吗?

1 个答案:

答案 0 :(得分:0)

您应该考虑阅读Is there a comprehensive and complete LaTeX reference?,在那里您可以找到有关各种LaTeX2e来源的信息。

从技术上讲,\newenvironment{<cmd>}[<num>][<default>]{<beg-def>}{<end-def>}使用\newcommand作为基础,因此了解后者将有助于您了解前者。

根据您的具体情况,LaTeX2e for authors user guide提及以下\newcommand

  

......命令:

\newcommand{<cmd>}[<num>][<default>]{<definition>}
     

<cmd>定义为带有<num>个参数的命令,第一个参数是   可选,默认值为<default>

     

请注意,只能有一个可选参数,但与以前一样,可以有   最多有九个参数。

所以,

\newenvironment{nameOfEnvironment}[1][]%
  {<beg-def>}
  {<end-def>}

定义了一个带有单个参数的环境nameOfEnvironment(作为[1]的结果)。这个单个参数是一个可选参数(作为第二个[]的结果),如果未指定,则具有默认值。

您可以将其用作

\begin{nameOfEnvironment}
  <stuff>
\end{nameOfEnvironment}

\begin{nameOfEnvironment}[something]
  <stuff>
\end{nameOfEnvironment}

在前一种情况下,可选参数#1为空,而第二个参数的可选参数值为something

以下说明来自LaTeX: Structured documents for TeX (unofficial LaTeX reference manual)

  

13.5 \newenvironment&amp; \renewenvironment

     

提要:

\newenvironment[*]{env}[nargs][default]{begdef}{enddef}
\renewenvironment[*]{env}[nargs]{begdef}{enddef}
     

这些命令定义或重新定义环境env,即\begin{env} ... \end{env}

     
      
  • *
      * - 这些命令的形式需要参数(而不是内容   环境)不包含多段文字。

  •   
  • env
      环境的名称。对于\newenvironmentenv一定不能   现有环境,必须未定义命令\env。对于   \renewenvironmentenv必须是现有环境的名称。

  •   
  • nargs
      1到9之间的整数,表示新定义的参数个数   环境。默认值是无参数。

  •   
  • default
      如果指定了此参数,则第一个参数是可选的,default表示该参数的默认值。

  •   
  • begdef
      每次出现\begin{env}时文本都会扩展; #nbegdef形式的结构被n参数的文本替换。

  •   
  • enddef
      每次出现\end{env}时都会扩展文本。它可能不包含任何内容   参数参数。

  •