summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/refenums
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-12-18 01:34:38 +0000
committerKarl Berry <karl@freefriends.org>2013-12-18 01:34:38 +0000
commit7eb6505775706d8c579eeb8e8bcb039655101190 (patch)
tree7d3190692ddc6712ad71e00b9c693c19ee694848 /Master/texmf-dist/doc/latex/refenums
parent5837565307206d06f408fd7bc573853c5aef0133 (diff)
refenums
git-svn-id: svn://tug.org/texlive/trunk@32430 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/refenums')
-rw-r--r--Master/texmf-dist/doc/latex/refenums/LICENSE15
-rw-r--r--Master/texmf-dist/doc/latex/refenums/README.md91
-rw-r--r--Master/texmf-dist/doc/latex/refenums/demo.pdfbin0 -> 77576 bytes
-rw-r--r--Master/texmf-dist/doc/latex/refenums/demo.tex108
-rw-r--r--Master/texmf-dist/doc/latex/refenums/test/demo-sec-param.tex34
5 files changed, 248 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/refenums/LICENSE b/Master/texmf-dist/doc/latex/refenums/LICENSE
new file mode 100644
index 00000000000..2efdeab9555
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/refenums/LICENSE
@@ -0,0 +1,15 @@
+Copyright 2013 Oliver Kopp, Tobias Binz
+
+This work may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, version 1.3c of the license.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer and author of this work is Oliver Kopp.
+
+This work consists of the files refenums.sty, demo.tex, README, README.md, and test/demo-sec-param.tex.
+In case files are not listed here, but available at https://github.com/koppor/refenums, these additional files also form part of this work.
diff --git a/Master/texmf-dist/doc/latex/refenums/README.md b/Master/texmf-dist/doc/latex/refenums/README.md
new file mode 100644
index 00000000000..9ff61d70d5e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/refenums/README.md
@@ -0,0 +1,91 @@
+# ReferenceableEnumElement
+
+This package provides commands to define enumerable items with a number and a long name, which can be referenced referenced later with the name or just the short form.
+For instance, "Milestone M1: Specification created" can be defined and later on be referenced with `M1` or `M1 ("Specification created")`.
+The text in the references is derived from the definition and also rendered as hyperlink to the definition.
+Thus, a change of the definition also leads to a change of all references to the text.
+This ensures consistency in the text.
+
+## Usage
+
+```
+\usepackage{refenums}
+```
+
+### Define the "Referenceable Enum Environment"
+
+Decide for `<EnumId>`.
+E.g., `req`.
+
+#### Initialize
+`\setupRefEnums{<EnumId>}{<PrintName>}`
+
+In case `<PrintName>` is set to `ONLYSHORT`, only the short name is used.
+
+Optional parameter: Separator between `<EnumId>` and number.
+
+#### (Optional) Define shorthand macro to define the macros for referencing
+
+`\newcommand{\def<EnumId>}[2]{\defRefEnum{<EnumId>}{#1}{#2}}`
+
+
+### Usage in the text
+
+#### Define a single enum
+* `\defRefEnum{<EnumId>}{<FullName>}{<LabelId>}` (always supported)
+* `\def<EnumId>{<FullName>}{<LabelId>}` (when the shorthand command is defined)
+
+#### Define a single enum using the inline format
+`\defineReferenceableEnumElementInline{<EnumId>}{<FullName>}{<LabelId>}`.
+Using this, a enumeration similar to the ones of the `inparaenum` environment is possible.
+`inparaenum` is offered by the [paralist package].
+
+#### Referencing
+
+* `\refEnumFull{<EnumId>}{<LabelId>}` = `<EnumId>-<Counter> ("<FullName>")`, e.g. `R-1 ("Quality")`
+* `\refEnumFullP{<EnumId>}{<LabelId>}` is the long form for `\refEnumFull'.
+* `\refEnumFullT{<EnumId>}{<LabelId>}` = `<EnumId>-<Counter>: "<FullName>"`, e.g. `R-1: "Quality"`
+* `\refEnum{<EnumId>}{<LabelId>}` = `<EnumId>-<Counter>`, e.g. `R-1`
+* References to the label
+ * `\nameref{enum:<EnumId>:<LabelId>}` = `<FullName>`
+ * `\ref{enum:<EnumId>:<LabelId>}` = `<Counter>`, e.g. `1`
+
+
+## Example
+
+**Initialize**: `\setupRefEnums{R}{Requirement}`
+
+**Define a single enum**: `\defRefEnum{R}{Quality}{qual}`.
+When you want to put the element in a section, use the optional parameter:
+`\defRefEnum[section]{R}{Quality}{qual}`
+
+**Referencing**:
+
+* Reference only Name + Number: `\refEnum{R}{qual}`
+* Full reference with the print name in brackets: `\refEnumFull{R}{qual}`
+* Full reference with the print name appended after ":": `\refEnumFullT{R}{qual}`
+
+**See also** [demo.tex](demo.tex).
+
+
+## Tuning
+
+When defining a referenceable element, this element is enclosed using `\refenumenclosing` for normal enums and `\refenumenclosinginline` for inline enums.
+These commands can be redefined after package usage.
+
+## TODO
+
+* The decision to put the enum in a section should be taken at `\setupRefEnums` not at `\defRefEnum`.
+* Enable automatically generating `\def<EnumId>` at `\setupRefEnums` via a package parameter.
+
+
+## Source code
+
+The latest source code is available at https://github.com/koppor/refenums
+
+## Files
+
+* [refenums.sty](refenums.sty): the package
+* [demo.tex](demo.tex): small demonstration
+
+ [paralist]: http://mirror.ctan.org/tex-archive/macros/latex/contrib/paralist/
diff --git a/Master/texmf-dist/doc/latex/refenums/demo.pdf b/Master/texmf-dist/doc/latex/refenums/demo.pdf
new file mode 100644
index 00000000000..9f44720f707
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/refenums/demo.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/refenums/demo.tex b/Master/texmf-dist/doc/latex/refenums/demo.tex
new file mode 100644
index 00000000000..ca41e7382db
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/refenums/demo.tex
@@ -0,0 +1,108 @@
+\documentclass[parskip=full]{scrartcl}
+
+\usepackage[colorlinks]{hyperref}
+\usepackage{refenums}
+
+%Always add a dot behind the definition
+\renewcommand{\refenumenclosing}[1]{#1.}
+
+
+\begin{document}
+
+\title{Demonstation of the refenums package}
+\date{}
+\author{}
+\maketitle
+
+\vspace{-12ex}
+This documents demonstrates the usage and results of the \href{http://mirror.ctan.org/tex-archive/macros/latex/contrib/refenums/}{refenums} package.
+All content appearing in this work is fictitious.
+Any resemblance to real artefacts, items, or persons, living or dead, is purely coincidental.
+
+\Crefrange{sec:reqs}{sec:milestones} show defined referenceable enums.
+\Cref{sec:discussion} references the defined enums.
+
+\tableofcontents
+\clearpage
+
+%Setup ``requirements''
+\setupRefEnums{R}{Requirement}
+
+%Setup ``capabilities'', without any separator
+\setupRefEnums[]{C}{Capability}
+
+%Setup ``Notes'' showing the usage of defineReferenceableEnumElementInline
+\setupRefEnums{N}{Note}
+
+%Setup ``Steps'' not having a print form
+\setupRefEnums[ ]{Step}{ONLYSHORT}
+
+%Setup ``Issue'' not having a print form
+\setupRefEnums[ ]{Issue}{ONLYSHORT}
+
+%Setup ``Milestones'' where the print name and the short name is combined
+\setupRefEnums[COMBINED]{M}{Milestone}
+
+
+\section{Requirements}
+\label{sec:reqs}
+\defRefEnum{R}{Scalability}{sca}
+We see scalability as important requirement.
+
+\defRefEnum{R}{Portability}{port}
+We also see portability as important requirement.
+
+
+\section{Capabilities}
+\defRefEnum{C}{Maintainability}{maint}
+
+\section{Notes}
+\defRefEnumInline{N}{Blue}{blue} It should be a blue note, shouldn't it?
+\defRefEnumInline{N}{Red}{Red} There should also be a red note, shouldn't it?
+
+
+\section{Steps}
+\label{sec:steps}
+
+\defRefEnum[subsection]{Step}{Requirements Analysis}{rqa}
+\label{sec:rqa}
+The heading is defined using the macro.
+
+\defRefEnum[subsection]{Step}{Software Specification}{spec}
+The heading is defined using the macro.
+
+
+\section{Issues}
+\defRefEnum{Issue}{Fictional}{fi}
+
+\defRefEnum{Issue}{Unrealistic}{unr}
+
+
+\section{Milestones}
+\label{sec:milestones}
+\defRefEnum[subsection]{M}{Basic Model}{bm}
+
+
+\section{Discussion}
+\label{sec:discussion}
+In \cref{sec:reqs}, we discussed \refEnumFull{R}{sca} and \refEnumFull{R}{port}.
+
+We showed the capability \refEnumFull{C}{maint}.
+
+We also had a note \refEnumFull{N}{blue}.
+
+In \cref{sec:steps}, we started with \refEnumFull{Step}{rqa}.
+\LaTeX{} put that step into \cref{sec:rqa}.
+Afterwards, \refEnumFull{Step}{spec} has been described.
+
+Some issues such as \refEnumFull{Issue}{fi} were raised.
+
+First, the milestone \refEnumFull{M}{bm} has to be reached.
+
+Following properties are the most important ones:
+\begin{itemize}
+\item \refEnumFullT{R}{sca}
+\item \ldots
+\end{itemize}
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/refenums/test/demo-sec-param.tex b/Master/texmf-dist/doc/latex/refenums/test/demo-sec-param.tex
new file mode 100644
index 00000000000..ebb3b3d1150
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/refenums/test/demo-sec-param.tex
@@ -0,0 +1,34 @@
+\documentclass{article}
+
+%required by referenceableenumelement
+\usepackage{csquotes}
+\usepackage{ifthen}
+\usepackage{etoolbox}
+\usepackage{hyperref}
+\usepackage[capitalise,nameinlink]{cleveref}
+
+%Always add a dot behind the definition
+\newcommand{\thighlight}[1]{#1.}
+
+\input{../referenceableenumelement}
+
+\begin{document}
+
+%Setup ``Steps'' not having a print form
+\setupRefEnums[ ]{Step}{ONLYSHORT}
+
+\section{Steps}
+\label{sec:steps}
+
+\defRefEnum[subsection]{Step}{Requirements Analysis}{rqa}
+\label{sec:rqa}
+The heading is defined using the macro.
+
+%to show that the links are working: start a new page
+
+\section{Discussion}
+
+In \cref{sec:steps}, we started with \refEnumFull{Step}{rqa}.
+\LaTeX{} put that step into \cref{sec:rqa}.
+
+\end{document} \ No newline at end of file