wortsammler 1.0.3 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +46 -4
  3. data/.gitpod.Dockerfile +32 -0
  4. data/.gitpod.yml +1 -0
  5. data/.idea/.name +1 -0
  6. data/.idea/.rakeTasks +7 -0
  7. data/.idea/202_wortsammler-gem.iml +119 -0
  8. data/.idea/compiler.xml +22 -0
  9. data/.idea/encodings.xml +6 -0
  10. data/.idea/inspectionProfiles/profiles_settings.xml +7 -0
  11. data/.idea/misc.xml +4 -0
  12. data/.idea/modules.xml +9 -0
  13. data/.idea/vcs.xml +7 -0
  14. data/Gemfile +1 -0
  15. data/README.md +25 -28
  16. data/Rakefile +3 -3
  17. data/changelog.md +17 -1
  18. data/lib/wortsammler.rb +61 -54
  19. data/lib/wortsammler/class.Traceable.md.rb +9 -7
  20. data/lib/wortsammler/class.Traceable.rb +74 -60
  21. data/lib/wortsammler/class.proolib.rb +1102 -982
  22. data/lib/wortsammler/mdTraceParser.treetop +2 -2
  23. data/lib/wortsammler/version.rb +1 -1
  24. data/resources/default.wortsammler.latex +4 -3
  25. data/resources/main.md +1 -1
  26. data/resources/pandocdefault.docx +0 -0
  27. data/resources/pandocdefault.epub +70 -0
  28. data/resources/pandocdefault.html +73 -0
  29. data/resources/pandocdefault.latex +403 -0
  30. data/resources/sample_the-sample-document.yaml +27 -1
  31. data/spec/TC_EXP_001.md +2 -1
  32. data/spec/Zupfnoter.jpg +0 -0
  33. data/spec/tc_exp_003_reference.txt +14 -29
  34. data/spec/test_beautify.md +13 -1
  35. data/spec/test_beautify_reference.md +17 -3
  36. data/spec/test_mkindex_reference.txt +9 -38
  37. data/spec/test_slides.md +38 -0
  38. data/spec/wortsammler_spec.rb +186 -150
  39. data/testproject.xx/30_Sources/001_Main/main.md +273 -0
  40. data/testproject.xx/30_Sources/900_snippets/snippets.xlsx +0 -0
  41. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.docx +0 -0
  42. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.html +145 -0
  43. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.latex +416 -0
  44. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.pdf +0 -0
  45. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.beamer.pdf +0 -0
  46. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.docx +0 -0
  47. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.html +145 -0
  48. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.latex +416 -0
  49. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.pdf +0 -0
  50. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.docx +0 -0
  51. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.html +145 -0
  52. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.latex +416 -0
  53. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.pdf +0 -0
  54. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_review.latex +582 -0
  55. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_review.pdf +0 -0
  56. data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/RS_Main.traces.md +56 -0
  57. data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_Reqtrace.graphml +119 -0
  58. data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_Reqtrace.md +50 -0
  59. data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_ReqtraceCompare.txt +52 -0
  60. data/testproject.xx/30_Sources/ZSUPP_Manifests/sample_the-sample-document.yaml +79 -0
  61. data/testproject.xx/30_Sources/ZSUPP_Styles/default.wortsammler.latex +321 -0
  62. data/testproject.xx/30_Sources/ZSUPP_Styles/logo.jpg +0 -0
  63. data/testproject.xx/30_Sources/ZSUPP_Tools/rakefile.rb +5 -0
  64. data/testresults/wortsammler_testresults.html +49 -466
  65. data/uninstall-pandoc.pl +79 -0
  66. data/wortsammler.gemspec +7 -4
  67. metadata +84 -14
  68. data/testresults/wortsammler_testresults.log +0 -325
  69. data/wortsammler-gem.sublime-project +0 -8
@@ -0,0 +1,273 @@
1
+ ---
2
+ author:
3
+ - Bernhard Weichel
4
+ - and others
5
+ date: '2013/05'
6
+ title: Wortsammler sample document
7
+ ...
8
+
9
+ # Introduction
10
+
11
+ This is a sample document for Wortsammler
12
+
13
+ # Anforderung an Dokumentenaufbereiter
14
+
15
+ - [RS_Comp_003] **Steuerung Dokumentenzusammenstellung**
16
+ {Dokumentenzusammenstellungen soll über ein
17
+ manifest ->[RS_Comp_007] gesteuert werden.
18
+
19
+ - Die Manifeste sollen als Laufzeitparameter übergeben werden
20
+ - Das Manifest enthält auch die Ausgabedatei
21
+
22
+ }(RS_DM_014, RS_DM_010, RS_DM_005)
23
+
24
+ - [RS_Comp_004] **Prozessierung Einzeldokument** {Soll Dokumente
25
+ verschiedenen Umfangs erzeugen können:
26
+
27
+ - einzelnes Files
28
+ - zu Prüfzwecken
29
+
30
+ Steuerung soll über Konfiguration (Manifest)
31
+ erfolgen ->[RS_Comp_007].
32
+
33
+ }()
34
+
35
+ - [RS_Comp_005] **Erstellung Loseblattsammlung** {Soll Dokumente
36
+ verschiedenen Umfangs erzeugen können:
37
+
38
+ - kann aus dem Manifest errechnet werden ->[RS_Comp_007]
39
+
40
+ }()
41
+
42
+ - [RS_Comp_006] **Inkrementelle Verarbeitung** {Soll nur auf
43
+ geänderte Dokumente reagieren können:
44
+
45
+ - ähnlich wie make/rake
46
+
47
+ }()
48
+
49
+ - [RS_Comp_007] **Anforderungen an Manifest** {Folgende
50
+ Anforderungen gelten für das Manifest
51
+ - einfach bearbeiten - nur liste der Files
52
+ - Markdown-lite
53
+ - Yaml
54
+
55
+ Inhalte im Manifest sind
56
+
57
+ - Name der Konfiguration
58
+ - Ausgabeverzeichnis
59
+ - Ausgabeformat
60
+ - Name des generierten Dokumentes
61
+ - Formate in denen das Dokument generiert wird. Werte hierfür
62
+ ergeben sich aus den Anforderungen an die Aufbereitet
63
+ - zu verarbeitende Eingabedateien. Diese werden in der Reihenfolge
64
+ verarbeitet wie sie aufgeführt sind.
65
+ - Optionen für die jeweiligen Formate.
66
+ - zu bearbeitende Zielgruppen ->[RS_Comp_008]
67
+
68
+ <!-- -->
69
+ Beispiel für ein manifest
70
+
71
+ -
72
+ :name: komplett
73
+ :outdir: ../ZGEN_Documents
74
+ :outname: RS_Requirements-Ngopm
75
+ :format:
76
+ - pdf
77
+ - html
78
+ - rtf
79
+ - docx
80
+ - latex
81
+
82
+ :lang: german
83
+
84
+ :vars:
85
+ :lang: german
86
+
87
+ :editions:
88
+ :intern:
89
+ :title: Interne Ausgabe
90
+ :filepart: _intern
91
+ :extern:
92
+ :title: Externe Ausgabe
93
+ :filepart: _extern
94
+ :mieter:
95
+ :title: Ausgabe für Mieter
96
+ :filepart: _mieter
97
+ :ea:
98
+ :title: Ausgabe für ehrenamtliche Mitarbeiter
99
+ :filepart: _ma-ehrenamtlich
100
+ :ha:
101
+ :title: Ausgabe für hauptamtliche Mitarbeiter
102
+ :filepart: _ma-hauptamtlich
103
+ :1:
104
+ :title: Ausgabe für erste hauptamtliche Mitarbeiter
105
+ :filepart: _ma-hauptamtlich-1
106
+
107
+ :input:
108
+ - ../RS_Process/RS_Process.md
109
+ - ../RS_Tooling/RS_Tooling.md
110
+ - ../RS_Tooling/RS_MarkdownCleaner.md
111
+ - ../RS_Tooling/RS_MarkdownEditor.md
112
+ - ../RS_Tooling/RS_DocumentComposer.md
113
+ - ../TPL_DirectoryStructure/TPL_DirectoryStructure.md
114
+ - ../TR_Installation/TR_Installation.md
115
+ - ../TR_Installation/TR_Proo-Handbuch.md
116
+ - ../ZGEN_RequirementsTracing/ZGEN_Reqtrace.md
117
+
118
+ :snippets:
119
+ - ../TS_Markdown/TS_Snippets.yaml
120
+ - ../TS_Markdown/TS_MoreSnippets.yaml
121
+
122
+ }(RS_Comp_003)
123
+
124
+ ## Zielgruppenspezifische Ausgaben
125
+
126
+ Dieser Abschnitt behandelt speziell die Anforderungen an flexible
127
+ Dokumentenausgabe
128
+
129
+ - [RS_Comp_001] **Flexibler Dokumentumfang** {Soll Dokumente
130
+ verschiedenen Umfangs erzeugen können:
131
+
132
+ - einzelnes Files
133
+ - Zusammengestelltes Dokument
134
+
135
+ }(RS_Comp_003)
136
+
137
+ - [RS_Comp_002] **Flexible Dokumentendarstellung** {Sollte Dokumente
138
+ in verschiedener Darstellung erzeugen können:
139
+ - Seitenlayout
140
+ - Detaillierungsgrad (z.B. RequirementsMarken ausblenden) }
141
+ (RS_Comp_003)
142
+ - [RS_Comp_008] **Zielgruppenspezifische Ausgaben (Editionen)** { Es
143
+ soll möglich sein Zielgruppenspezifische Ausgaben zu erstellen.
144
+
145
+ - Dabei wird die Zielgruppe durch eine spezifische Zeichenkette
146
+ umgeschaltet (Durchstreichung), die auch in standard Markdown
147
+ Programmen eine sinnvolle Ausgabe liefert:
148
+
149
+ `~~ED intern extern~~` ab hier gilt: Text erscheint in Ausgabe
150
+ `intern` als auch in `extern`
151
+
152
+ Es handelt sich also um ein durchgestrichenes Muster als
153
+ regulärer Ausdruck
154
+
155
+ ~~ED((\s* \S+)*)~~
156
+
157
+ - Die Umschaltung wirkt ab einschliesslich der Zeile, die die
158
+ Umschaltung enthält, bis zum Aufruf einer neuen Umschaltung.
159
+
160
+ - Die möglichen Zielgruppen werden im Manifest
161
+ festgelegt ->[RS_Comp_007] daselbst Eintrag `:editions:`
162
+
163
+ - Eine vorgegebene Zielgruppe `all` erzeugt keine spezifische
164
+ Ausgabe. Sie kennzeichnet vielmehr Inhalte, die in **allen**
165
+ Ausgaben gleichermassen enthalten sind.
166
+
167
+ - Bei einer Aufteilung auf mehrere Dateien wird empfohlen am Ende
168
+ einer jeden Datei auf `all` zu schalten. Dadurch wird das System
169
+ einfache wartbar.
170
+
171
+ }(RS_Comp_003)
172
+
173
+ Alternativen für die Umschaltung sind:
174
+
175
+ \marginpar{intern}
176
+
177
+ - ~~ED intern extern~~ und so geht es weiter
178
+
179
+ - ^ZG intern extern^ und nun kommt der text der nur extern ist
180
+
181
+ \marginpar{extern}
182
+
183
+ - ~ZG intern extern~ und hier ist der text der nur intern ist
184
+
185
+ - <!-- ZG intern extern -->
186
+ und nun geht es weiter
187
+
188
+ \marginpar{intern}
189
+
190
+ - und nun geht es intern weiter Gelaber und weiter
191
+ - [RS_Comp_009] **Gesamtausgabe mit allen Texten zur Prüfung**
192
+ {Sollte Dokumente Eine Gesamtausgabe mit allen Texten zur
193
+ Überprüfung soll erstellt werden. In diesem Fall werden die Ausgaben
194
+ am Rand notiert. }(RS_Comp_003)
195
+
196
+ - [RS_Comp_010] **Erstellung aller Ausgaben mit einem Befehl** {Es
197
+ sollen immer alle Ausgaben gleichermassen generiert werden. Dabei
198
+ gilt:
199
+
200
+ - Der Dateiname für die generierten Dokumente bildet sich nach
201
+
202
+ `{:outname:}_{:edition:.:filepart:}.{format}`
203
+
204
+ - In der Kopfzeile des Dokumentes wird `:edition:.:title:`
205
+ eingefügt, so dass die Ausgabe auf jeder Seite identifiziert
206
+ werden kann.
207
+
208
+ Ohne Angabe einer Zielgruppe bzw. mit der Angabe `all` soll
209
+ wortsammler alle Ausgaben erstellen.
210
+
211
+ Die Angabe einer einzelnen Zielgruppe erstellt dann auch nur die
212
+ gewählte Ausgabe.
213
+
214
+ }(RS_Comp_003)
215
+
216
+ ## Processing TODO - open issues
217
+
218
+ Paragraphs like starting with
219
+
220
+ TODO: #13 do something are used to manage the open issues
221
+
222
+ ## Processing the traceables
223
+
224
+ ## Including Files
225
+
226
+ - [RS_Comp_011] **including Plain pdf-Pages**{ PDF pages can be
227
+ included by
228
+
229
+ `~~PDF "lib/01234_particularPdf.pdf" "Das ist der Eintrag im Inhaltsverzeichnis" 1 2-4~~`
230
+
231
+ It is done in a markdown verbatim section. By this, Pandoc does not
232
+ add linebreaks in the command such that it can be processed with
233
+ regular expressions.
234
+
235
+ }(RS_Comp_003)
236
+
237
+ - [RS_Comp_014] **Including markdown files** {
238
+
239
+ `~~MD "lib/01234/xxxx/yyyy.md"~~`
240
+
241
+ will be replaced by the content of the argument. It should even work
242
+ inline.
243
+
244
+ }(RS_Comp_003)
245
+
246
+ ## Handling Text Snippets
247
+
248
+ - [RS_Comp_012] **Including text Snippets**{ Text Snippts can be
249
+ included by
250
+
251
+ `~~SN {symbol}~~`
252
+
253
+ The snippets are taken from one of the snippet databases declared in
254
+ the manifest ->[RS_Comp_007] according to the format
255
+ in ->[RS_Comp_013]. }()
256
+
257
+ - [RS_Conp_013] **Defining text Snippets** {
258
+
259
+ Text snippets are defined as a yaml file in the following format:
260
+
261
+ :Snippet1: Das ist Snippet 1
262
+
263
+ :Snippet2: |- Das ist snippet 2. Es enthält sogar eine Liste
264
+
265
+ * Das ist item 1 in Snippet 2
266
+
267
+ * Das ist item 2 in Snippet 2
268
+
269
+ }(RS_Comp_003)
270
+
271
+ ### this should not show up in toc
272
+
273
+ This chapter should not show up in the toc
@@ -0,0 +1,145 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="german" xml:lang="german">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <meta http-equiv="Content-Style-Type" content="text/css" />
6
+ <meta name="generator" content="pandoc" />
7
+ <meta name="author" content="Bernhard Weichel" />
8
+ <meta name="author" content="and others" />
9
+ <title>Wortsammler sample document</title>
10
+ <style type="text/css">code{white-space: pre;}</style>
11
+ </head>
12
+ <body>
13
+ <div id="header">
14
+ <h1 class="title">Main requirements (compact)</h1>
15
+ <h2 class="author">Bernhard Weichel</h2>
16
+ <h2 class="author">and others</h2>
17
+ <h3 class="date">2013/05</h3>
18
+ </div>
19
+ <div id="TOC">
20
+ <ul>
21
+ <li><a href="#introduction"><span class="toc-section-number">1</span> Introduction</a></li>
22
+ <li><a href="#anforderung-an-dokumentenaufbereiter"><span class="toc-section-number">2</span> Anforderung an Dokumentenaufbereiter</a><ul>
23
+ <li><a href="#zielgruppenspezifische-ausgaben"><span class="toc-section-number">2.1</span> Zielgruppenspezifische Ausgaben</a></li>
24
+ </ul></li>
25
+ </ul>
26
+ </div>
27
+ <h1 id="introduction"><span class="header-section-number">1</span> Introduction</h1>
28
+ <p>This is a sample document for Wortsammler</p>
29
+ <h1 id="anforderung-an-dokumentenaufbereiter"><span class="header-section-number">2</span> Anforderung an Dokumentenaufbereiter</h1>
30
+ <ul>
31
+ <li><p><a id="RS-Comp-003">[RS_Comp_003]</a> <strong>Steuerung Dokumentenzusammenstellung</strong> {Dokumentenzusammenstellungen soll &#252;ber ein manifest [<a href="#RS-Comp-007">RS_Comp_007</a>] gesteuert werden.</p>
32
+ <ul>
33
+ <li>Die Manifeste sollen als Laufzeitparameter &#252;bergeben werden</li>
34
+ <li>Das Manifest enth&#228;lt auch die Ausgabedatei</li>
35
+ </ul>
36
+ <p>}(<a href="#RS-DM-014">RS_DM_014</a>, <a href="#RS-DM-010">RS_DM_010</a>, <a href="#RS-DM-005">RS_DM_005</a>)</p></li>
37
+ <li><p><a id="RS-Comp-004">[RS_Comp_004]</a> <strong>Prozessierung Einzeldokument</strong> {Soll Dokumente verschiedenen Umfangs erzeugen k&#246;nnen:</p>
38
+ <ul>
39
+ <li>einzelnes Files</li>
40
+ <li>zu Pr&#252;fzwecken</li>
41
+ </ul>
42
+ <p>Steuerung soll &#252;ber Konfiguration (Manifest) erfolgen [<a href="#RS-Comp-007">RS_Comp_007</a>].</p>
43
+ <p>}()</p></li>
44
+ <li><p><a id="RS-Comp-005">[RS_Comp_005]</a> <strong>Erstellung Loseblattsammlung</strong> {Soll Dokumente verschiedenen Umfangs erzeugen k&#246;nnen:</p>
45
+ <ul>
46
+ <li>kann aus dem Manifest errechnet werden [<a href="#RS-Comp-007">RS_Comp_007</a>]</li>
47
+ </ul>
48
+ <p>}()</p></li>
49
+ <li><p><a id="RS-Comp-006">[RS_Comp_006]</a> <strong>Inkrementelle Verarbeitung</strong> {Soll nur auf ge&#228;nderte Dokumente reagieren k&#246;nnen:</p>
50
+ <ul>
51
+ <li>&#228;hnlich wie make/rake</li>
52
+ </ul>
53
+ <p>}()</p></li>
54
+ <li><a id="RS-Comp-007">[RS_Comp_007]</a> <strong>Anforderungen an Manifest</strong> {Folgende Anforderungen gelten f&#252;r das Manifest
55
+ <ul>
56
+ <li>einfach bearbeiten - nur liste der Files</li>
57
+ <li>Markdown-lite</li>
58
+ <li>Yaml</li>
59
+ </ul>
60
+ <p>Inhalte im Manifest sind</p>
61
+ <ul>
62
+ <li>Name der Konfiguration</li>
63
+ <li>Ausgabeverzeichnis</li>
64
+ <li>Ausgabeformat</li>
65
+ <li>Name des generierten Dokumentes</li>
66
+ <li>Formate in denen das Dokument generiert wird. Werte hierf&#252;r ergeben sich aus den Anforderungen an die Aufbereitet</li>
67
+ <li>zu verarbeitende Eingabedateien. Diese werden in der Reihenfolge verarbeitet wie sie aufgef&#252;hrt sind.</li>
68
+ <li>Optionen f&#252;r die jeweiligen Formate.</li>
69
+ <li>zu bearbeitende Zielgruppen [<a href="#RS-Comp-008">RS_Comp_008</a>]</li>
70
+ </ul>
71
+ <!-- -->
72
+ <p>Beispiel f&#252;r ein manifest</p>
73
+ <pre><code> -
74
+ :name: komplett
75
+ :outdir: ../ZGEN_Documents
76
+ :outname: RS_Requirements-Ngopm
77
+ :format:
78
+ - pdf
79
+ - html
80
+ - rtf
81
+ - docx
82
+ - latex
83
+
84
+ :lang: german
85
+
86
+ :vars:
87
+ :lang: german
88
+
89
+ :editions:
90
+ :intern:
91
+ :title: Interne Ausgabe
92
+ :filepart: _intern
93
+ :extern:
94
+ :title: Externe Ausgabe
95
+ :filepart: _extern
96
+ :mieter:
97
+ :title: Ausgabe f&#252;r Mieter
98
+ :filepart: _mieter
99
+ :ea:
100
+ :title: Ausgabe f&#252;r ehrenamtliche Mitarbeiter
101
+ :filepart: _ma-ehrenamtlich
102
+ :ha:
103
+ :title: Ausgabe f&#252;r hauptamtliche Mitarbeiter
104
+ :filepart: _ma-hauptamtlich
105
+ :1:
106
+ :title: Ausgabe f&#252;r erste hauptamtliche Mitarbeiter
107
+ :filepart: _ma-hauptamtlich-1
108
+
109
+ :input:
110
+ - ../RS_Process/RS_Process.md
111
+ - ../RS_Tooling/RS_Tooling.md
112
+ - ../RS_Tooling/RS_MarkdownCleaner.md
113
+ - ../RS_Tooling/RS_MarkdownEditor.md
114
+ - ../RS_Tooling/RS_DocumentComposer.md
115
+ - ../TPL_DirectoryStructure/TPL_DirectoryStructure.md
116
+ - ../TR_Installation/TR_Installation.md
117
+ - ../TR_Installation/TR_Proo-Handbuch.md
118
+ - ../ZGEN_RequirementsTracing/ZGEN_Reqtrace.md
119
+
120
+ :snippets:
121
+ - ../TS_Markdown/TS_Snippets.yaml
122
+ - ../TS_Markdown/TS_MoreSnippets.yaml</code></pre>
123
+ <p>}(<a href="#RS-Comp-003">RS_Comp_003</a>)</p></li>
124
+ </ul>
125
+ <h2 id="zielgruppenspezifische-ausgaben"><span class="header-section-number">2.1</span> Zielgruppenspezifische Ausgaben</h2>
126
+ <p>Dieser Abschnitt behandelt speziell die Anforderungen an flexible Dokumentenausgabe</p>
127
+ <ul>
128
+ <li><p><a id="RS-Comp-001">[RS_Comp_001]</a> <strong>Flexibler Dokumentumfang</strong> {Soll Dokumente verschiedenen Umfangs erzeugen k&#246;nnen:</p>
129
+ <ul>
130
+ <li>einzelnes Files</li>
131
+ <li>Zusammengestelltes Dokument</li>
132
+ </ul>
133
+ <p>}(<a href="#RS-Comp-003">RS_Comp_003</a>)</p></li>
134
+ <li><a id="RS-Comp-002">[RS_Comp_002]</a> <strong>Flexible Dokumentendarstellung</strong> {Sollte Dokumente in verschiedener Darstellung erzeugen k&#246;nnen:
135
+ <ul>
136
+ <li>Seitenlayout</li>
137
+ <li>Detaillierungsgrad (z.B. RequirementsMarken ausblenden) } (RS_Comp_003)</li>
138
+ </ul></li>
139
+ <li><p><a id="RS-Comp-008">[RS_Comp_008]</a> <strong>Zielgruppenspezifische Ausgaben (Editionen)</strong> { Es soll m&#246;glich sein Zielgruppenspezifische Ausgaben zu erstellen.</p>
140
+ <ul>
141
+ <li>Dabei wird die Zielgruppe durch eine spezifische Zeichenkette umgeschaltet (Durchstreichung), die auch in standard Markdown Programmen eine sinnvolle Ausgabe liefert:</li>
142
+ </ul></li>
143
+ </ul>
144
+ </body>
145
+ </html>
@@ -0,0 +1,416 @@
1
+ \documentclass[twoside,a4paper,12pt,german,]{article}
2
+ \usepackage[T1]{fontenc}
3
+ \usepackage{lmodern}
4
+ \usepackage{amssymb,amsmath}
5
+ \usepackage{ifxetex,ifluatex}
6
+ \usepackage{fixltx2e} % provides \textsubscript
7
+ % use microtype if available
8
+ \IfFileExists{microtype.sty}{\usepackage{microtype}}{}
9
+ \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
10
+ \usepackage[utf8]{inputenc}
11
+ \else % if luatex or xelatex
12
+ \usepackage{fontspec}
13
+ \ifxetex
14
+ \usepackage{xltxtra,xunicode}
15
+ \fi
16
+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
17
+ \newcommand{\euro}{€}
18
+ \setmainfont{Calibri}
19
+ \setsansfont{Calibri}
20
+ \fi
21
+ \usepackage[a4paper]{geometry}
22
+ \usepackage{longtable}
23
+ \usepackage{float} % provides the H option for float placement
24
+ \usepackage{graphicx}
25
+ % We will generate all images so they have a width \maxwidth. This means
26
+ % that they will get their normal width if they fit onto the page, but
27
+ % are scaled down if they would overflow the margins.
28
+ \makeatletter
29
+ \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth
30
+ \else\Gin@nat@width\fi}
31
+ \makeatother
32
+ \let\Oldincludegraphics\includegraphics
33
+ \makeatletter
34
+ \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth
35
+ \else\Gin@nat@width\fi}
36
+ \makeatother
37
+ \let\Oldincludegraphics\includegraphics
38
+ %\renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}}
39
+ % Determine if the image is too wide for the page.
40
+ %
41
+ {%
42
+ \catcode`\@=11\relax%
43
+ \gdef\includegraphics{\@ifnextchar[{\Oldincludegraphics}{\Oldincludegraphics[width=\maxwidth]}}%
44
+ }%
45
+ %
46
+
47
+ \ifxetex
48
+ \usepackage[setpagesize=false, % page size defined by xetex
49
+ unicode=false, % unicode breaks when used with xetex
50
+ bookmarksdepth=3, %
51
+ xetex]{hyperref}
52
+ \else
53
+ \usepackage[unicode=true]{hyperref}
54
+ \fi
55
+ \hypersetup{breaklinks=true,
56
+ bookmarks=true,
57
+ pdfauthor={Bernhard Weichel; and others},
58
+ pdftitle={Wortsammler sample document},
59
+ colorlinks=true,
60
+ urlcolor=blue,
61
+ linkcolor=magenta,
62
+ pdfborder={0 0 0}}
63
+ \urlstyle{same} % don't use monospace font for urls
64
+ \setlength{\parindent}{0pt}
65
+ \setlength{\parskip}{6pt plus 2pt minus 1pt}
66
+ \setlength{\emergencystretch}{3em} % prevent overfull lines
67
+ \setcounter{secnumdepth}{5}
68
+ \ifxetex
69
+ \usepackage{polyglossia}
70
+ \setmainlanguage{german}
71
+ \else
72
+ \usepackage[german]{babel}
73
+ \fi
74
+
75
+ \title{Main requirements (compact)}
76
+ \author{Bernhard Weichel \and and others}
77
+ \date{2013/05}
78
+
79
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
80
+ %
81
+ % Wortsammler specific settings
82
+ %
83
+ %list environment by reinhard Jahraus
84
+ {\catcode`\@=11\relax%
85
+ \gdef\itemize{%
86
+ \ifnum \@itemdepth >\thr@@\@toodeep\else
87
+ \advance\@itemdepth\@ne
88
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
89
+ \expandafter
90
+ \list
91
+ \csname\@itemitem\endcsname
92
+ {\def\makelabel##1{\hss\llap{##1}}%
93
+ \addtolength{\leftmargin}{-10pt}% 29.37pt
94
+ \addtolength{\rightmargin}{0.0pt}% 0.0pt
95
+ \addtolength{\labelsep}{0pt}% 23.50pt
96
+ \addtolength{\itemsep}{-3.0pt}% 5.0pt
97
+ \addtolength{\parsep}{-1pt}% 5.0pt
98
+ \addtolength{\topsep}{-5pt}% 10.0pt
99
+ \addtolength{\partopsep}{0pt}% 3.0pt
100
+ }%
101
+ \fi}
102
+ }%
103
+
104
+ %
105
+ % improve nesting of lists
106
+ % %http://stackoverflow.com/questions/1935952/maximum-nesting-level-of-lists-in-latex
107
+ %
108
+ \usepackage{enumitem}
109
+ \setlistdepth{9}
110
+ \setlist[itemize,1]{label=$\bullet$}
111
+ \setlist[itemize,2]{label=$\bullet$}
112
+ \setlist[itemize,3]{label=$\bullet$}
113
+ \setlist[itemize,4]{label=$\bullet$}
114
+ \setlist[itemize,5]{label=$\bullet$}
115
+ \setlist[itemize,6]{label=$\bullet$}
116
+ \setlist[itemize,7]{label=$\bullet$}
117
+ \setlist[itemize,8]{label=$\bullet$}
118
+ \setlist[itemize,9]{label=$\bullet$}
119
+ \renewlist{itemize}{itemize}{9}
120
+ %
121
+ % multicol
122
+ %
123
+ \usepackage{multicol}
124
+ \newcommand{\wsbegintwocol}{\begin{multicols}{2}}
125
+ \newcommand{\wsendtwocol}{\end{multicols}}
126
+
127
+ %
128
+ % embed an image in the text
129
+ %
130
+ % usage: \wsembedimage{file}{r|l}{width}{height}
131
+ \usepackage{wrapfig}
132
+ \usepackage{needspace}
133
+ \newcommand{\wsembedimage}[4]{\needspace{#4}\begin{wrapfigure}{#2}{#3}\centering%
134
+ \vspace{-5mm}\includegraphics{#1}\vspace{-1cm}\end{wrapfigure}}
135
+ %
136
+ % adjust page layout
137
+ %
138
+ \setlength{\oddsidemargin}{-0.5cm}
139
+ \setlength{\evensidemargin}{-0.5cm}
140
+ \setlength{\textwidth}{17cm}
141
+ \setlength{\topmargin}{-2.0cm}
142
+ \setlength{\headheight}{1cm}
143
+ \setlength{\headsep}{1.5cm}
144
+ \setlength{\textheight}{25cm}
145
+ \setlength{\footskip}{1cm}
146
+
147
+ % adjust the toc layout
148
+ \makeatletter
149
+ % \renewcommand*\l@section{\@dottedtocline{2}{1.8em}{4em}}
150
+ \renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{4em}}
151
+ \renewcommand*\l@subsubsection{\@dottedtocline{2}{5.5em}{4em}}
152
+ \makeatother
153
+
154
+ \usepackage{pdfpages}
155
+ \usepackage{bookmark}
156
+ \usepackage{fancyhdr}
157
+ \pagestyle{fancy}
158
+ \chead{\begin{center}\textbf{Main requirements (compact)} \end{center}}
159
+ \lhead{\includegraphics{../ZSUPP_Styles/logo.jpg}}
160
+ \rhead{\leftmark}
161
+ \lfoot{Bernhard Weichel}
162
+ \rfoot{\today~2013/05}
163
+ \renewcommand{\footrulewidth}{0.4pt}
164
+ %
165
+ \renewcommand{\familydefault}{\sfdefault}
166
+ %
167
+ % Marginpars shall always be right
168
+ \makeatletter
169
+ \def\marginparright{\@mparswitchfalse}
170
+ \def\marginparoutside{\@mparswitchtrue}
171
+ \makeatother
172
+ \marginparright
173
+ %
174
+ %
175
+ \raggedbottom
176
+ %
177
+
178
+
179
+ \usepackage{makeidx}
180
+ \makeindex
181
+
182
+ %
183
+ %\renewcommand{Befehl der Gliederungsebene z.B. \chapter}{\@startsection{Name z.B. chapter}{Ebene z.B. 0}{Einrückung z.B. 0pt}{Abstand zum vorigen Text z.B. 3.5ex plus 1ex minus 0pt\relax}{Abstand zum nachfolgenden Text z.B. 2.5ex plus 0.5ex minus 0pt\relax}{Schrift z.B. \normalfont\Large\bfseries}}
184
+ %
185
+ % \makeatletter%
186
+ % \renewcommand{\chapter}{\@startsection{chapter}{0}{0pt}{3.5ex plus 1ex minus 0pt\relax}{2.5ex plus 0.5ex minus 0pt\relax}{\normalfont\Large\bfseries}}%
187
+ % \makeatother%
188
+ %
189
+ %
190
+ % Wortsammler extensions end here
191
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
192
+ \begin{document}
193
+ \maketitle
194
+
195
+ \clearpage
196
+
197
+ {
198
+ \hypersetup{linkcolor=black}
199
+ \setcounter{tocdepth}{1}
200
+ \tableofcontents
201
+ \newpage
202
+ }
203
+
204
+ \section{Introduction}\label{introduction}
205
+
206
+ This is a sample document for Wortsammler
207
+
208
+ \section{Anforderung an
209
+ Dokumentenaufbereiter}\label{anforderung-an-dokumentenaufbereiter}
210
+
211
+ \begin{itemize}
212
+ \item
213
+ {[}RS\_Comp\_003{]} \textbf{\hypertarget{RS-Comp-003}{}Steuerung
214
+ Dokumentenzusammenstellung} \{Dokumentenzusammenstellungen soll über
215
+ ein manifest {[}\hyperlink{RS-Comp-007}{RS\_Comp\_007}{]} gesteuert
216
+ werden.
217
+
218
+ \begin{itemize}
219
+ \itemsep1pt\parskip0pt\parsep0pt
220
+ \item
221
+ Die Manifeste sollen als Laufzeitparameter übergeben werden
222
+ \item
223
+ Das Manifest enthält auch die Ausgabedatei
224
+ \end{itemize}
225
+
226
+ \}(\hyperlink{RS-DM-014}{RS\_DM\_014},
227
+ \hyperlink{RS-DM-010}{RS\_DM\_010},
228
+ \hyperlink{RS-DM-005}{RS\_DM\_005})
229
+ \item
230
+ {[}RS\_Comp\_004{]} \textbf{\hypertarget{RS-Comp-004}{}Prozessierung
231
+ Einzeldokument} \{Soll Dokumente verschiedenen Umfangs erzeugen
232
+ können:
233
+
234
+ \begin{itemize}
235
+ \itemsep1pt\parskip0pt\parsep0pt
236
+ \item
237
+ einzelnes Files
238
+ \item
239
+ zu Prüfzwecken
240
+ \end{itemize}
241
+
242
+ Steuerung soll über Konfiguration (Manifest) erfolgen
243
+ {[}\hyperlink{RS-Comp-007}{RS\_Comp\_007}{]}.
244
+
245
+ \}()
246
+ \item
247
+ {[}RS\_Comp\_005{]} \textbf{\hypertarget{RS-Comp-005}{}Erstellung
248
+ Loseblattsammlung} \{Soll Dokumente verschiedenen Umfangs erzeugen
249
+ können:
250
+
251
+ \begin{itemize}
252
+ \itemsep1pt\parskip0pt\parsep0pt
253
+ \item
254
+ kann aus dem Manifest errechnet werden
255
+ {[}\hyperlink{RS-Comp-007}{RS\_Comp\_007}{]}
256
+ \end{itemize}
257
+
258
+ \}()
259
+ \item
260
+ {[}RS\_Comp\_006{]} \textbf{\hypertarget{RS-Comp-006}{}Inkrementelle
261
+ Verarbeitung} \{Soll nur auf geänderte Dokumente reagieren können:
262
+
263
+ \begin{itemize}
264
+ \itemsep1pt\parskip0pt\parsep0pt
265
+ \item
266
+ ähnlich wie make/rake
267
+ \end{itemize}
268
+
269
+ \}()
270
+ \item
271
+ {[}RS\_Comp\_007{]} \textbf{\hypertarget{RS-Comp-007}{}Anforderungen
272
+ an Manifest} \{Folgende Anforderungen gelten für das Manifest
273
+
274
+ \begin{itemize}
275
+ \itemsep1pt\parskip0pt\parsep0pt
276
+ \item
277
+ einfach bearbeiten - nur liste der Files
278
+ \item
279
+ Markdown-lite
280
+ \item
281
+ Yaml
282
+ \end{itemize}
283
+
284
+ Inhalte im Manifest sind
285
+
286
+ \begin{itemize}
287
+ \itemsep1pt\parskip0pt\parsep0pt
288
+ \item
289
+ Name der Konfiguration
290
+ \item
291
+ Ausgabeverzeichnis
292
+ \item
293
+ Ausgabeformat
294
+ \item
295
+ Name des generierten Dokumentes
296
+ \item
297
+ Formate in denen das Dokument generiert wird. Werte hierfür ergeben
298
+ sich aus den Anforderungen an die Aufbereitet
299
+ \item
300
+ zu verarbeitende Eingabedateien. Diese werden in der Reihenfolge
301
+ verarbeitet wie sie aufgeführt sind.
302
+ \item
303
+ Optionen für die jeweiligen Formate.
304
+ \item
305
+ zu bearbeitende Zielgruppen
306
+ {[}\hyperlink{RS-Comp-008}{RS\_Comp\_008}{]}
307
+ \end{itemize}
308
+
309
+ Beispiel für ein manifest
310
+
311
+ \begin{verbatim}
312
+ -
313
+ :name: komplett
314
+ :outdir: ../ZGEN_Documents
315
+ :outname: RS_Requirements-Ngopm
316
+ :format:
317
+ - pdf
318
+ - html
319
+ - rtf
320
+ - docx
321
+ - latex
322
+
323
+ :lang: german
324
+
325
+ :vars:
326
+ :lang: german
327
+
328
+ :editions:
329
+ :intern:
330
+ :title: Interne Ausgabe
331
+ :filepart: _intern
332
+ :extern:
333
+ :title: Externe Ausgabe
334
+ :filepart: _extern
335
+ :mieter:
336
+ :title: Ausgabe für Mieter
337
+ :filepart: _mieter
338
+ :ea:
339
+ :title: Ausgabe für ehrenamtliche Mitarbeiter
340
+ :filepart: _ma-ehrenamtlich
341
+ :ha:
342
+ :title: Ausgabe für hauptamtliche Mitarbeiter
343
+ :filepart: _ma-hauptamtlich
344
+ :1:
345
+ :title: Ausgabe für erste hauptamtliche Mitarbeiter
346
+ :filepart: _ma-hauptamtlich-1
347
+
348
+ :input:
349
+ - ../RS_Process/RS_Process.md
350
+ - ../RS_Tooling/RS_Tooling.md
351
+ - ../RS_Tooling/RS_MarkdownCleaner.md
352
+ - ../RS_Tooling/RS_MarkdownEditor.md
353
+ - ../RS_Tooling/RS_DocumentComposer.md
354
+ - ../TPL_DirectoryStructure/TPL_DirectoryStructure.md
355
+ - ../TR_Installation/TR_Installation.md
356
+ - ../TR_Installation/TR_Proo-Handbuch.md
357
+ - ../ZGEN_RequirementsTracing/ZGEN_Reqtrace.md
358
+
359
+ :snippets:
360
+ - ../TS_Markdown/TS_Snippets.yaml
361
+ - ../TS_Markdown/TS_MoreSnippets.yaml
362
+ \end{verbatim}
363
+
364
+ \}(\hyperlink{RS-Comp-003}{RS\_Comp\_003})
365
+ \end{itemize}
366
+
367
+ \subsection{Zielgruppenspezifische
368
+ Ausgaben}\label{zielgruppenspezifische-ausgaben}
369
+
370
+ Dieser Abschnitt behandelt speziell die Anforderungen an flexible
371
+ Dokumentenausgabe
372
+
373
+ \begin{itemize}
374
+ \item
375
+ {[}RS\_Comp\_001{]} \textbf{\hypertarget{RS-Comp-001}{}Flexibler
376
+ Dokumentumfang} \{Soll Dokumente verschiedenen Umfangs erzeugen
377
+ können:
378
+
379
+ \begin{itemize}
380
+ \itemsep1pt\parskip0pt\parsep0pt
381
+ \item
382
+ einzelnes Files
383
+ \item
384
+ Zusammengestelltes Dokument
385
+ \end{itemize}
386
+
387
+ \}(\hyperlink{RS-Comp-003}{RS\_Comp\_003})
388
+ \item
389
+ {[}RS\_Comp\_002{]} \textbf{\hypertarget{RS-Comp-002}{}Flexible
390
+ Dokumentendarstellung} \{Sollte Dokumente in verschiedener Darstellung
391
+ erzeugen können:
392
+
393
+ \begin{itemize}
394
+ \itemsep1pt\parskip0pt\parsep0pt
395
+ \item
396
+ Seitenlayout
397
+ \item
398
+ Detaillierungsgrad (z.B. RequirementsMarken ausblenden) \}
399
+ (RS\_Comp\_003)
400
+ \end{itemize}
401
+ \item
402
+ {[}RS\_Comp\_008{]}
403
+ \textbf{\hypertarget{RS-Comp-008}{}Zielgruppenspezifische Ausgaben
404
+ (Editionen)} \{ Es soll möglich sein Zielgruppenspezifische Ausgaben
405
+ zu erstellen.
406
+
407
+ \begin{itemize}
408
+ \itemsep1pt\parskip0pt\parsep0pt
409
+ \item
410
+ Dabei wird die Zielgruppe durch eine spezifische Zeichenkette
411
+ umgeschaltet (Durchstreichung), die auch in standard Markdown
412
+ Programmen eine sinnvolle Ausgabe liefert:
413
+ \end{itemize}
414
+ \end{itemize}
415
+
416
+ \end{document}