使用tocloft
LaTeX 中的包,我创建了一个定义列表。根据包文档和一些在线示例,我得出了以下结论:
\newcommand{\listdefinitionname}{My list of definitions}
\newlistof{definition}{def}{\listdefinitionname}
\newcommand{\definition}[1]{%
\refstepcounter{definition}
\par\noindent\textbf{TheDefinition \thedefinition. #1}
\addcontentsline{def}{definition}
{\protect\numberline{\thechapter.\thedefinition}#1}\par}
...
\listofdefinition
在创建的“我的定义列表”中,对于所有定义,定义名称的第一个字母与定义编号的最后一位数字重叠。我该如何解决这个问题?
编号似乎不对。如果我尝试
\newlistof[chapter]{definition}{def}{\listdefinitionname}
,5 个章节中的定义编号类似于 1.1.1.1、.. 3.3.3.8.. 等。我想从图列表(chapternumber.figurenumber)中获取编号,其中每个新章节的 figurenumber 从 1 开始。\listoffigures
发布一个图表列表,左侧缩进约 1 厘米。\listofdefinition
条目从左边距开始。如何获取定义列表的图表列表格式?
答案1
就文档类而言,以下最小示例对我来说很有用book
:
\documentclass{book}
\usepackage{tocloft}% http://ctan.org/pkg/tocloft
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\newcommand{\listdefinitionname}{My list of definitions}
\newlistof{definition}{def}{\listdefinitionname}
\newcommand{\definition}[1]{%
\refstepcounter{definition}%
\par\noindent\textbf{The Definition~\thedefinition. #1}%
\addcontentsline{def}{figure}
{\protect\numberline{\thechapter.\thedefinition}#1}\par%
}
\makeatletter
\preto\chapter{\addtocontents{def}{\protect\addvspace{10\p@}}}%
\makeatother
\begin{document}
\listoffigures
\listofdefinition
\chapter{A chapter}
\begin{figure}\caption{Some figure}\end{figure}
\begin{figure}\caption{Some figure}\end{figure}
\definition{Some definition}
\begin{figure}\caption{Some figure}\end{figure}
\definition{Some definition}
\begin{figure}\caption{Some figure}\end{figure}
\definition{Some definition}
\chapter{A chapter}
\begin{figure}\caption{Some figure}\end{figure}
\begin{figure}\caption{Some figure}\end{figure}
\definition{Some definition}
\begin{figure}\caption{Some figure}\end{figure}
\definition{Some definition}
\begin{figure}\caption{Some figure}\end{figure}
\definition{Some definition}
\end{document}
关于你的问题列表:
我插入了
definition
要输入的条目,figure
而不是使用\addcontentsline{def}{figure} {\protect\numberline{\thechapter.\thedefinition}#1}\par%
这样它们的格式就相似了,避免了任何重叠。如果您有更多的定义并且仍然重叠,则需要更改列的宽度。
我的编号有效。您还可以使用
\arabic{chapter}.\thedefinition
或 ,甚至\arabic{chapter}.\arabic{definition}
可以删除附加到\thechapter
或 的任何继承计数器\thedefinition
。通过上面的(1.)解决。
我也用过etoolbox
包裹在章节分隔定义之间添加垂直空格,类似于 LoF 和 LoT。这是通过使用\preto\chapter{<stuff>}
添加<stuff>
前 \chapter
。这里的东西\addvspace{10\p@}
增加了一个最大限度( 10pt 10\p@
)垂直。
答案2
\documentclass[11pt]{report}
\usepackage{tocloft, xparse}
\newcommand{\listexamplename}{List of Equations}
\newlistof{example}{exp}{\listexamplename}
\newcommand{\example}[1]{%
\refstepcounter{example}%
\par\noindent\textbf{Equation \theexample. #1}
\addcontentsline{exp}{example}
{\protect\numberline{\thechapter.\theexample}#1}\par}
\DeclareDocumentEnvironment{examplee}{ m m }{%
\equation\label{#1}}{\endequation\example{#2}}
\begin{document}
\tableofcontents
\listofexample
\listoftables
\chapter{Introduction}
\begin{examplee}{eq:SOE}{Second Order Equation}
g(\pi_j)= \alpha_{jk} \alpha_{kg}\theta_g + \alpha_{jk}\xi_k + \beta_j
\end{examplee}
\end{document}