我是 Latex 的新手,想知道class
HTML 中是否存在类似的东西。我最近一直在写一堆文档,我所有的\item
s 都需要斜体,是否有某种方法可以在文件开头指示如何设置样式\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
enumerate
Niel 的回答很适合你想要做的事情。我更笼统地思考这个问题:如何更改或的正文格式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
,它会:
- 将字体和颜色切换回
\normal
- 执行
\@item
通常会执行的操作,即设置标签和更改边距等。 - 将字体切换为 ,
\scshape
并将颜色切换为red
。
输出如下:
答案3
关于什么\def\ititemize{\begin{itemize}\itshape}
?