总之

总之

一些 LaTeX 格式化命令(例如\textcolor{red}{...}\sout{...}或 )\textsf{...}在内部内容为单个段落时可以正常工作,但如果在参数中放置段落分隔符,则编译失败。

\textsf{This paragraph is in sans-serif.} % OK

\textsf{This one too.

So should this one be.} % Doesn't compile.

问题 1:为什么会这样?我觉得我还没有理解 LaTeX 内部如何处理这些命令。有没有一种通用的方法来构建一个适用于段落的命令,或者将一个不适用于段落的命令变成一个适用于段落的命令?

问题 2:我可以使用哪些命令(如果有)将以下更改应用于文本中包含多个段落的块?对于颜色,我知道我已经可以使用环境了color

  • 无衬线字体\textsf或等宽字体\texttt
  • 删除线和下划线\sout以及\ul(来自ulem

答案1

某些命令不允许新建段落: \textbf\textsf\texttt等。要达到您想要的效果,您需要使用不同的形式: \bfseries\sffamily\ttfamily\itshape。如果您加载xcolor包,那么您可以发出\color{<name_of_color>}

如果您不想影响整个文档的更改,则需要将这些命令嵌入某种分组中。这可以像 一样简单,{...}或者像 这样的环境\begin{minipage}{<width>}...\end{minipage}

以下是 MWE:

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\begin{document}

{\bfseries \lipsum[1-2] }

{\sffamily \lipsum[1-2] }

{\itshape  \lipsum[1-2] }

{\color{blue} \lipsum[1-2] }

\begin{itemize}\bfseries\itshape\color{orange}
\item A
\item B
\item C
\end{itemize}

\lipsum[1]

\end{document}

如果您不想费力地将内容嵌入另一个环境或括号中,则可以使用\normalfont来恢复设置。但是,这不适用于恢复颜色;为此,您必须发出\normalcolor\color{black}

\lipsum[1]

\color{green}\itshape
\lipsum[1]

\color{black}\normalfont
\lipsum[1]

以类似的方式,您可以通过发出\large\scriptsize等来更改字体大小,要撤消这些命令的效果(如果没有嵌入某种组中)请使用\normalsize

总之

每个字体更改命令都与一个可跨多个段落起作用的命令配对。

\textbf{...}    \bfseries
\textsf{...}    \sffamily
\textit{...}    \itshape
etc. 

这些命令都有很好的文档记录,所以你应该不难找到所有这些配对命令。不过,需要注意的是,不是使用\bf\it和诸如此类的命令。这些是 TeX 命令,很可能不会达到您想要的效果。LaTeX 命令\bfseries\itshape只会改变您想要的文本外观(系列类型、形状、系列)。除了 LaTeX 命令产生的更微妙的效果之外,根据您使用的字体是否提供支持,LaTeX 命令的效果是附加的。

如果第二列中的命令未嵌入某种组,而您想要恢复默认行为,则可以发出

\normalfont

您可以使用命令更改字体大小

\large
\small
\footnotesize

可以使用以下方法恢复默认大小

\normalsize

如果您已加载,则可以更改颜色属性xcolor。与\textxx{...}类型命令一样,也有一对:

\textcolor{<color>}{<text>}     \color{<color>}

可以通过发出

\normalcolor    

相关内容