我遇到了一个德文 LaTeX 页面并找到如下说明:
\Large{bit bigger}
{\Large a bit bigger}
\begin{Large} ... \end{Large}
这三个都是“正确的”,这是真的吗?我只记得第二个对于 1) 是正确的\Large
,其他的都不成立,也许我忘了 3)。有人能告诉我吗?
答案1
你确实说对了。该\Large
命令及其同类命令会更改其后所有内容的字体大小,直到组结束,就像 一样\color{red}
。这意味着\Large{bit bigger}
在某些情况下似乎会起作用,因为它被解析为两个东西:第一,命令\Large
,第二,组{bit bigger}
。差异——以及 #1 不正确的原因——很容易看出:比较
In this sentence, {\Large only some text is large} and the rest is normal.
和
In this sentence, \Large{too much text is large}, including this.
前者呈现为
然而,后者呈现为
这是\Large
及其朋友的一个有用属性;例如,为了获得更大字体大小的列表,可以简单地编写
\begin{itemize}
\Large
\item Alpha
\item Beta
\item Gamma
\end{itemize}
现在,至于第三种用法,即使未定义为环境,和\begin{Large}
也可以工作。要了解其工作原理,请考虑和命令。它所做的是扩展为一些样板(用于错误检查等),然后,然后。相反,除了样板之外,扩展为,然后。编写方式几乎与编写完全相同,但有一个重要区别:如果未定义,则为(不执行任何操作的命令)。这意味着当您编写时,这大致相当于。因此,即使未定义,环境也同样有效。请注意,使用开关作为环境的能力显然记录在Leslie Lamport的书中,尽管我自己从来没有机会阅读它;\end{Large}
\Large
\begin
\end
\begin
\begingroup
\csname#1\endcsname
\end
\csname end#1\endcsname
\endgroup
\csname foo\endcsname
\foo
\foo
\let
\relax
\begin{Large} Some text here \end{Large}
\begingroup\Large some text here \relax\endgroup
\endLarge
Philipp 的回答阐明了使用交换机作为环境的缺陷。
答案2
第一个是错误的。第二个是正确的。第三个版本可以工作,但有几个(可能的)问题:第一个右括号后的空格不会被忽略(与其他环境不同),并且如果内容包含整个段落,则段落结尾必须在环境内。
答案3
当您在文章类中指定字体大小参数时,标准类加载的文件\Large
中定义了所有类似的字体大小命令。它们定义如下:.clo
\newcommand\Large{\@setfontsize\Large\@xviipt{22}}
如您所见,该宏不带参数,因此正确的用法是将其用作开关或仅将其括在括号中。