aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-09-18 15:06:45 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-09-18 15:06:45 +0200
commitabab5051391b7f8a212539400433eb1db0bb4f06 (patch)
tree0fa5c98676f2d2ddc95a739cb7f9dd198b452f8c
parent0027f5df316892f121bb9f4b5b6b641646273ff0 (diff)
abbreviate requirement field labels after first occurrence on every page
-rw-r--r--glossary.bib13
-rw-r--r--requirements.tex21
-rwxr-xr-xscripts/reqs2tex.py11
3 files changed, 42 insertions, 3 deletions
diff --git a/glossary.bib b/glossary.bib
index 437db86..8bf48ac 100644
--- a/glossary.bib
+++ b/glossary.bib
@@ -33,3 +33,16 @@
long = {Application Programming Interface},
}
+@acronym{reqlabel-priority,
+ short = {pri},
+ long = {priority},
+}
+@acronym{reqlabel-description,
+ short = {req},
+ long = {requirement},
+}
+@acronym{reqlabel-done,
+ short = {DoD},
+ long = {definition of done},
+}
+
diff --git a/requirements.tex b/requirements.tex
index cbaba81..78496e8 100644
--- a/requirements.tex
+++ b/requirements.tex
@@ -8,6 +8,27 @@
\makeatother
\setcounter{secnumdepth}{1}
+\usepackage{bophook}
+\makeatletter
+\def\reqlabel#1{\csuse{reqlabel@#1}}
+\def\reqlabelreset{%
+ \global\def\reqlabel@priority{%
+ \Glsdesc{reqlabel-priority}%
+ \global\def\reqlabel@priority{\Glstext{reqlabel-priority}}%
+ }%
+ \global\def\reqlabel@description{%
+ \Glsdesc{reqlabel-description}%
+ \global\def\reqlabel@description{\Glstext{reqlabel-description}}%
+ }%
+ \global\def\reqlabel@done{%
+ \Glsdesc{reqlabel-done}%
+ \global\def\reqlabel@done{\Glstext{reqlabel-done}}%
+ }%
+}
+% Abbreviate requirement field labels after first occurrence on every page
+\AtBeginPage{\reqlabelreset}
+\makeatother
+
\title{Requirements}
\begin{document}
diff --git a/scripts/reqs2tex.py b/scripts/reqs2tex.py
index ff9f3bb..e5f063d 100755
--- a/scripts/reqs2tex.py
+++ b/scripts/reqs2tex.py
@@ -132,9 +132,14 @@ def fmt_tex(data):
tex.cmd('label', ['requirement'], label2ref(item[KEY.LABEL])),
tex.cmd('parbox', tex.cmd('linewidth'),
tex.env('description', tex.join(
- tex.cmd('item', ['Priority']) + item[KEY.PRIORITY].title(),
- tex.cmd('item', ['Requirement']) + item[KEY.DESCRIPTION],
- (tex.cmd('item', ['Definition of done']) + item[KEY.DONE] if item[KEY.DONE] is not None else ""),
+ tex.cmd('item', [tex.cmd('reqlabel', 'priority')]),
+ item[KEY.PRIORITY].title(),
+ tex.cmd('item', [tex.cmd('reqlabel', 'description')]),
+ item[KEY.DESCRIPTION],
+ *([
+ tex.cmd('item', [tex.cmd('reqlabel', 'done')]),
+ item[KEY.DONE]
+ ] if item[KEY.DONE] is not None else []),
)),
)
)