-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwmversion.sty
More file actions
104 lines (89 loc) · 2.29 KB
/
wmversion.sty
File metadata and controls
104 lines (89 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{wmversion}[2015/01/14]
\RequirePackage{xparse}
\RequirePackage{xkeyval}
\RequirePackage{texsort}
\RequirePackage{xstring}
\RequirePackage{xcolor}
\RequirePackage{pgffor}
\RequirePackage{etoolbox}
\RequirePackage{wmtext}
\RequirePackage{etextools}
\RequirePackage{enumitem}
\RequirePackage{xifthen}
\RequirePackage{ifthenx}
\RequirePackage{hyperref}
\newboolean{final}
\setboolean{final}{false}
\DeclareOption{final}{
\setboolean{final}{true}
}
\DeclareOption*{
\StrLeft{\CurrentOption}{8}[\wmver@temp]
\ifthenelse{\isinteger{\wmver@temp}}{
\xdef\wmver@VersionDate{\wmver@temp}
}{}
}
\ProcessOptions\relax
\define@cmdkeys{wmver}{
color,
name
}
\def\wmver@VersionListUnsorted{}
\newlist{versions}{enumerate}{1}
\setlist[versions]{label={\textsuperscript{\arabic*}}, ref={\textsuperscript{\arabic*}}}
\newtest{\beforedate}[1]{
\isundefined{\wmver@VersionDate} \OR \cnttest{#1}{<=}{\wmver@VersionDate}
}
\DeclareDocumentCommand\DeclareVersion{m o}{
\define@key{wmver}{#1}[]{\setkeys{wmver}{#2}}
\xdef\wmver@VersionListUnsorted{\wmver@VersionListUnsorted,#1}
}
\DeclareDocumentCommand\PrintVersions{}{
\StrGobbleLeft{\wmver@VersionListUnsorted}{1}[\wmver@VersionListUnsorted]
\sortlist{\wmver@VersionListUnsorted}\to{wmver@VersionListSorted}\sep{,}
\section*{Versionen}
\begin{versions}
\foreach \@i in \wmver@VersionListSorted {
{
\ExpandNextTwo\setkeys{wmver}{\@i}
\ifthenelse{\boolean{final}}{}{\color{\cmdKV@wmver@color}}
\item \label{\@i}\cmdKV@wmver@name
}
}
\end{versions}
}
\DeclareDocumentCommand\added{o m+}{%
\ifthenelse{\beforedate{#1}}{%
\ifthenelse{\boolean{final}}{%
#2\ref{#1}%
}{%
\setkeys{wmver}{#1}%
\textcolor{\cmdKV@wmver@color}{#2\ref{#1}}%
}%
}{}%
}
\DeclareDocumentCommand\replaced{o m+ m+}{%
\ifthenelse{\beforedate{#1}}{%
\ifthenelse{\boolean{final}}{%
#3\ref{#1}%
}{%
\setkeys{wmver}{#1}%
\textst[\cmdKV@wmver@color]{#2} \textcolor{\cmdKV@wmver@color}{#3\ref{#1}}%
}%
}{#2}%
}
\DeclareDocumentCommand\deleted{s o m+}{%
\ifthenelse{\beforedate{#2}}{%
\IfBooleanTF{#1}{%
\replaced[#2]{#3}{\textellipsis}%
}{%
\ifthenelse{\boolean{final}}{%
\ref{#2}%
}{%
\setkeys{wmver}{#2}%
\textst[\cmdKV@wmver@color]{#3}\textcolor{\cmdKV@wmver@color}{\ref{#2}}%
}%
}%
}{#3}%
}