使用 tocloft 格式化新的定义列表

使用 tocloft 格式化新的定义列表

使用tocloftLaTeX 中的包,我创建了一个定义列表。根据包文档和一些在线示例,我得出了以下结论:

\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
  1. 在创建的“我的定义列表”中,对于所有定义,定义名称的第一个字母与定义编号的最后一位数字重叠。我该如何解决这个问题?

  2. 编号似乎不对。如果我尝试\newlistof[chapter]{definition}{def}{\listdefinitionname},5 个章节中的定义编号类似于 1.1.1.1、.. 3.3.3.8.. 等。我想从图列表(chapternumber.figurenumber)中获取编号,其中每个新章节的 figurenumber 从 1 开始。

  3. \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}

关于你的问题列表:

  1. 我插入了definition要输入的条目,figure而不是使用

    \addcontentsline{def}{figure}
      {\protect\numberline{\thechapter.\thedefinition}#1}\par%
    

    这样它们的格式就相似了,避免了任何重叠。如果您有更多的定义并且仍然重叠,则需要更改列的宽度。

  2. 我的编号有效。您还可以使用\arabic{chapter}.\thedefinition或 ,甚至\arabic{chapter}.\arabic{definition}可以删除附加到\thechapter或 的任何继承计数器\thedefinition

  3. 通过上面的(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}

相关内容