You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LaTeX中创建自定义需求条目结构(替代glossaries)

实现自定义LaTeX需求条目结构的思路

核心方案:独立存储结构+计数器+自定义输出

不用依赖glossaries,借助etoolbox的宏存储/列表功能,配合计数器实现自动编号,完全复刻你要的\newrequirement定义+\printrequirements批量输出逻辑,和bibliography的条目管理逻辑一致。

1. 基础结构与计数器定义

先创建计数器实现自动编号,再用宏存储每个需求的字段,同时维护一个需求标签列表用于后续遍历:

\usepackage{etoolbox}

% 需求编号计数器
\newcounter{requirementcounter}
\setcounter{requirementcounter}{0}

% 存储所有需求标签的列表
\newcommand{\requirementslist}{}

% \newrequirement命令:参数依次为【标签、类型、优先级、描述、所属框架】
\newcommand{\newrequirement}[5]{%
  \stepcounter{requirementcounter}% 编号自增
  % 以标签为键,存储各字段内容
  \csdef{req@#1@num}{\therequirementcounter}
  \csdef{req@#1@type}{#2}
  \csdef{req@#1@priority}{#3}
  \csdef{req@#1@desc}{#4}
  \csdef{req@#1@frame}{#5}
  % 将标签加入列表,方便后续批量输出
  \listadd{\requirementslist}{#1}
}

2. 实现批量输出命令

遍历需求标签列表,逐个取出字段并按自定义格式输出:

\newcommand{\printrequirements}{%
  \section{软件需求列表}
  \begin{description}
    % 遍历所有需求标签,调用单条输出命令
    \forlistloop{\printsinglerequirement}{\requirementslist}
  \end{description}
}

% 单条需求的格式化输出
\newcommand{\printsinglerequirement}[1]{%
  \item[\textbf{REQ-\csuse{req@#1@num}}]
    \textbf{类型:}\csuse{req@#1@type} \\
    \textbf{优先级:}\csuse{req@#1@priority} \\
    \textbf{描述:}\csuse{req@#1@desc} \\
    \textbf{所属框架:}\csuse{req@#1@frame}
}

3. 实际使用示例

在文档中定义需求,最后调用输出命令即可:

% 定义需求条目
\newrequirement{user-login}{功能需求}{高}{用户需通过账号密码完成身份验证}{用户认证模块}
\newrequirement{session-timeout}{非功能需求}{中}{登录会话30分钟无操作自动失效}{安全框架}

% 输出所有需求
\printrequirements

进阶优化方向

  • 用xparse替代原生\newcommand,支持可选参数(比如让「所属框架」字段可选,默认值设为「无」):
\usepackage{xparse}
\NewDocumentCommand{\newrequirement}{mmmmo}{%
  \stepcounter{requirementcounter}
  \csdef{req@#1@num}{\therequirementcounter}
  \csdef{req@#1@type}{#2}
  \csdef{req@#1@priority}{#3}
  \csdef{req@#1@desc}{#4}
  \IfNoValueTF{#5}{%
    \csdef{req@#1@frame}{无}
  }{%
    \csdef{req@#1@frame}{#5}
  }
  \listadd{\requirementslist}{#1}
}
  • 按优先级分组输出:给不同优先级的需求创建独立列表,输出时按高→中→低的顺序遍历

内容的提问来源于stack exchange,提问作者Eduardo Rodrigues

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:35:40