\item
我想修改环境中使用的参数{list}
。在我的 LaTeX 发行版中哪里可以找到原始定义以供复制和修改?
答案1
如果您不是 TeXpert ,不建议修改\item
(实际上是列表环境的定义)的定义。有许多长度参数可以由非经验用户自定义。它们列在下面。
下面是如何重置所有项目中段落之间的垂直间距的示例:
\begin{itemize}
\setlength{\parskip}{3pt plus 3pt minus 1pt}
\item
1st paragraph
2nd paragraph
...
\end{itemize}
请注意,垂直长度是可拉伸的;在这个例子中,\parskip
它通常是 3 点 (pt),但可以小到 2 pt,大到 6 pt(或者更大,我不确定)。如果
\setlength{\parskip}{3pt plus 3pt minus 1pt}
放在环境内部,它只对环境中的特定事件起作用。您可能还想将其放在外部:
\setlength{\parskip}{3pt plus 3pt minus 1pt}
...
\begin{itemize}
\item
1st paragraph
2nd paragraph
...
\end{itemize}
答案2
好吧,source2e.pdf 可能是此上下文中的规范参考。texdoc source2e
应该提供它(或者您可以在 CTAN 上找到它)。它全部位于第 56 节“列表和相关环境”中。不过,有几件事需要考虑:
您使用的包或类可能会进行一些重新定义,您必须考虑到这一点。
某些包可能已经提供了您想要的功能。例如,包
enumitem
提供了许多自定义列表及其参数的方法。
答案3
如果你不知道在哪里寻找定义,你可以使用texdef
。要将其与 LaTeX 定义一起使用,您必须使用选项调用它-t latex
或使用相应的别名latexdef
(如果您的系统上定义了别名)。
要检查定义,\item
您可以发出texdef -t latex \item
。要检查定义的位置,请添加选项-f
,
texdef -t latex -f item
在我的系统上它返回:
\item is defined by (La)TeX.
\item:
macro:->\@inmatherr \item \@ifnextchar [\@item {\@noitemargtrue \@item [\@itemlabel ]}
据说它是由 LaTeX 定义的,表明它是在 LaTeX 源中定义的,并且您可以通过发出来获取其文档texdoc source2e
。
如果您想要查看可用选项texdef
或了解更多信息,您可以通过 访问其文档texdoc texdef
。