创建分散项目/需求清单的概览

创建分散项目/需求清单的概览

我正在写一份文件,其中必须定义多项要求。这些要求分散在整个文档中,因为它们属于不同的部分并分别进行解释。

有一个所有这些要求都集中概览在一处,例如表格。不幸的是,我不知道如何做到这一点,所以我不必手动将需求文本写入表格中(如果我稍后更改其中一个单词,它也应该在概览中自动更改,类似于词汇表或目录)。

我已经制作了自己的计数器,因此我不必手动对所有内容进行编号,因为我以后可能会添加需求。但是,我以前也尝试过使用附加词汇表来解决这个问题,但这些包对我来说相当……难以处理,因此我使用这种方法失败了。

一个完美的解决方案是,如果我只需要写 \newreq{Requirement description},它就会生成一个自动编号的输出,如 R01 Requirement description - 此外,我还可以使用 \printreqoverview 之类的命令来打印表格。

我可以稍后修改格式或外观等细节,但我目前只能使用这种引用 - 而且它确实有帮助,因为我必须将每个描述写两次并且每次都检查拼写错误 - 引用会有所帮助。

抱歉,我想我不能很好地描述这个问题......

我添加了一个最小工作示例,它不包含任何引用,仅包含自动编号:

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{fmtcount}

\newcounter{rcount}
\setcounter{rcount}{0}
\newcommand{\newreq}{
    \stepcounter{rcount}
    \textbf{R\padzeroes[2]{\decimal{rcount}}}
}

\begin{document}

\section{First Chapter}

\lipsum[4]

\begin{enumerate}
    \item[\newreq] This is the first requirement.
    \item[\newreq] This is the second requirement.
\end{enumerate}

\lipsum[4]

\begin{enumerate}
    \item[\newreq] This is the third requirement.
\end{enumerate}

\lipsum[4]

\section{Overview Table}

\begin{tabular}{|l|l|}
    \hline
    \# & Requirement \\ \hline
    \hline
    R01 & Text of R01 \\ \hline
    R02 & Text of R02 \\ \hline
    R03 & Text of R03 \\ \hline
\end{tabular}

\end{document}

答案1

这是tocloft包。它允许自定义打印目录、图片列表和表格列表;还可以定义新的“列表...”。

\documentclass{article}
\usepackage{lipsum}
\usepackage{fmtcount}
\usepackage{tocloft}
\newlistof{requirement}{lor}{List of Requirements}

\renewcommand\therequirement{R\padzeroes[3]{\decimal{requirement}}}
\newcommand{\newreq}[1]{%
  \refstepcounter{requirement}%
  \par\noindent\textbf{\therequirement. }#1%
  \addcontentsline{lor}{requirement}{\protect\numberline{\therequirement} #1}%
}


\begin{document}

\section{First Chapter}

\lipsum

\newreq{This is the first requirement.}
\newreq{This is the second requirement.}


\lipsum

\newreq{This is the third requirement.}

\lipsum

\listofrequirement

\end{document}

该行\newlistof{requirement}{lor}{List of Requirements}基于计数器创建了一个新的“列表” requirement(我重命名了您的rcount;LaTeX 计数器与其他宏位于不同的命名空间中,因此名称中不必包含count)。该列表将生成在一个文件中,该文件的基本名称与当前作业名称相同,扩展名为.lor。最后一个参数是要显示的列表的标题。此命令创建宏\listofrequirement,您可以调用它来打印列表。

但是,每次创建需求时,编写列表都是逐步进行的。需求的文本需要作为 的参数\newreq。新\newreq命令首先打印需求标签,然后打印需求文本。(您可以自定义需求的格式。)该\addcontentsline命令向文件添加一行.lor。扩展后,该行将如下所示:

\contentsline {requirement}{\numberline {R\padzeroes [3]{\@decimal {1}}} This is the first requirement.}{2}

您可以将需求列表更改为表格形式,但您必须确保在文档开头和结尾处 \begin{tabular}将 写入文件。并且可以在这里使用。 但也许这样就足够了。.lor\end{tabular}\AtBeginDocument\AtEndDocument

相关内容