在 tocloft 包中添加的列表时,短名称似乎不起作用

在 tocloft 包中添加的列表时,短名称似乎不起作用

我添加了一个新列表(需求),但短名称未出现在需求列表 (LOR) 中。相反,LOR 中只显示初始的“[”

设置代码是:

\usepackage{subfig}
\usepackage[titles,subfigure]{tocloft}% to define requirements list for TOC,F,T
\newcommand{\listrequirementsname}{LIST OF REQUIREMENTS}
\newlistof[subsubsection]{requirement}{rqt}{\listrequirementsname}
\newcommand{\requirement}[1]{%
\refstepcounter{requirement}
\par\noindent\textbf{Rqt \therequirement. #1}
\addcontentsline{rqt}{requirement}{\protect\numberline{\therequirement}#1}\par}

用法是:

\requirement[short name]{Interface 1 Connector hfjdkh jfdhf kjfd fjdjf jfd jfdj fjdfj fjda jfjdafih eiufhda fdaf fda oif}

LOR 中的输出是:

3.2.1.1.1 [. 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 8

而实际需求中的输出是:

Rqt 3.2.1.1.1. [
短名称]接口 1 连接器 hfjdkh jfdhf kjfd fjdjf jfd jfdj fjdfj fjda jfjdafih eiufhda fdaf fda oif

答案1

您当前定义的问题\requirement在于它只接受一个强制参数,该参数既用于文档,也用于新列表中的条目。

您需要定义\requirement一个可选参数(如果存在,将用于列表)和一个强制参数;沿着这些思路(我还增加了为新列表中的数字保留的空间):

\documentclass[titles,subfigure]{article}
\usepackage{tocloft}
\usepackage{subfig}
\usepackage{xifthen}

\newcommand{\listrequirementsname}{LIST OF REQUIREMENTS}
\newlistof[subsubsection]{requirement}{rqt}{\listrequirementsname}

\newcommand{\requirement}[2][]{%
\refstepcounter{requirement}
\par\noindent\textbf{Rqt \therequirement. #2}
\ifthenelse{\isempty{#1}{}}
  {\addcontentsline{rqt}{requirement}{\protect\numberline{\therequirement}#2}\par}
  {\addcontentsline{rqt}{requirement}{\protect\numberline{\therequirement}#1}\par}
}

\setlength\cftrequirementnumwidth{4em}

\begin{document}
\listofrequirement
\requirement[short name]{Interface 1 Connector}
\requirement{Interface 2 Connector}

\end{document}

在此处输入图片描述

相关内容