在整个文档中采用相同类型的元素样式

在整个文档中采用相同类型的元素样式

我是 Latex 的新手,想知道classHTML 中是否存在类似的东西。我最近一直在写一堆文档,我所有的\items 都需要斜体,是否有某种方法可以在文件开头指示如何设置样式\item而不必执行:

\item \texit{.........................} 
\item \texit{.........................} 
\item \texit{.........................} 
\item \texit{.........................} 
\item \texit{.........................} 
\item \texit{.........................} 

一遍又一遍地?

答案1

您可以直接重新定义 itemize 环境的行为,利用一对内\begin{itemize}调用宏的事实。\itemize\begingroup ... \endgroup

示例代码

\setlength\parindent{0ex}
\let\originalitemize\itemize

\def\itemize{\originalitemize\itshape}
Some text
\begin{itemize}
\item foo \emph{(bar)} \item bar
\end{itemize}
Some text
\def\itemize{\originalitemize\scshape}
\begin{itemize}
\item foo \emph{(bar)} \item bar
\end{itemize}
Some text

在上面的代码中,我们使用 来\let\originalitemize\itemize保存原始宏的含义\itemize,以便我们在自定义环境行为时使用原始含义itemize。此示例显示了两个具有不同字体的覆盖自定义。

结果

示例代码的结果

请注意,由于我们声明的字体\itemize包含在一\begingroup ... \endgroup对中,因此字体的更改不会超出环境范围。(这也顺便演示了如何获取非斜体文本块,或者更准确地说,如何在斜体和非斜体文本之间切换。)

答案2

enumerateNiel 的回答很适合你想要做的事情。我更笼统地思考这个问题:如何更改或的正文格式itemize环境主体的格式,无需改变商品标签

为了做到这一点,你必须在每个命令之后\item和下一个命令之前打开和关闭字体命令\item。问题是\item需要一个可选参数。因此,为了使其工作,修补辅助宏\@item

\documentclass{article}
\usepackage{etoolbox}
\usepackage{color}
\begin{document}

\setlength\parindent{0ex}

\makeatletter
\pretocmd{\@item}{\normalfont\normalcolor}
{\message{Patching of @item succeeded.}}
{\message{Patching of @item failed.}}
\apptocmd{\@item}{\scshape\color{red}}
{\message{Patching of @item succeeded.}}
{\message{Patching of @item failed.}}

\makeatother


\begin{itemize}
\item foo \emph{(bar)} \item bar
\end{itemize}
Some text

\begin{enumerate}
\item foo
\item bar
\end{enumerate}

\end{document}

所以当 TeX 遇到 时\@item,它会:

  1. 将字体和颜色切换回\normal
  2. 执行\@item通常会执行的操作,即设置标签和更改边距等。
  3. 将字体切换为 ,\scshape并将颜色切换为red

输出如下:

示例代码输出

答案3

关于什么\def\ititemize{\begin{itemize}\itshape}

相关内容