我想定义自己的环境,比如
\newenvironment{question}
{\begin{tiny}}
{\end{tiny}}
这可能没什么意义,但确实有效。我该如何对粗体字体做同样的事情?
答案1
您需要使用“开关”,通过\bfseries
在环境启动时发出来实现(比如说boldenv
):
\newenvironment{boldenv}
{\bfseries}% \begin{boldenv}
{}% \end{boldenv}
此开关的范围仅限于环境,因为\begin{boldenv}
...\end{boldenv}
自然形成了一个组。此外,斜体此环境中的文本将继承大胆的开关(例如,如果您使用\textit{<stuff>}
)。为了避免这种情况,您必须使用类似 的方法来恢复字体{\normalfont\itshape <stuff>}
。
答案2
没有环境tiny
。只有一个命令\tiny
。同样可以通过以下方式实现\bfseries
:\newenvironment{foo}{\bfseries}{}
我认为有必要提及一个鲜为人知的事实:不要使用字体命令作为环境。
解释:
让我从一个小例子和不需要的输出开始:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\begin{document}
\blindtext
\begin{quote}\tiny\blindtext\end{quote}
\blindtext
\begin{quote}\begin{tiny}\blindtext\end{tiny}\end{quote}
\end{document}
发生了什么
首先,您可以看到不同的行距。在第一个示例(正确的示例)中,\begin{quote}\tiny\blindtext\end{quote}
命令\par
以字体大小执行\tiny
。因此间距是正确的。在第二个示例中,\begin{quote}\begin{tiny}\blindtext\end{tiny}\end{quote}
内部环境进行本地切换到\tiny
,并且结尾\par
使用quote
默认字体大小。因此整个段落的间距是错误的。