wortsammler 1.0.3 → 2.0.0.dev1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +45 -4
  3. data/.idea/.name +1 -0
  4. data/.idea/.rakeTasks +7 -0
  5. data/.idea/202_wortsammler-gem.iml +119 -0
  6. data/.idea/compiler.xml +22 -0
  7. data/.idea/encodings.xml +6 -0
  8. data/.idea/inspectionProfiles/profiles_settings.xml +7 -0
  9. data/.idea/misc.xml +4 -0
  10. data/.idea/modules.xml +9 -0
  11. data/.idea/vcs.xml +7 -0
  12. data/Gemfile +1 -0
  13. data/README.md +23 -28
  14. data/Rakefile +3 -3
  15. data/changelog.md +17 -1
  16. data/lib/wortsammler/class.proolib.rb +1108 -982
  17. data/lib/wortsammler/version.rb +1 -1
  18. data/lib/wortsammler.rb +61 -54
  19. data/resources/default.wortsammler.latex +3 -2
  20. data/resources/main.md +1 -1
  21. data/resources/pandocdefault.docx +0 -0
  22. data/resources/pandocdefault.epub +70 -0
  23. data/resources/pandocdefault.html +73 -0
  24. data/resources/pandocdefault.latex +403 -0
  25. data/resources/sample_the-sample-document.yaml +27 -1
  26. data/spec/TC_EXP_001.md +2 -1
  27. data/spec/Zupfnoter.jpg +0 -0
  28. data/spec/tc_exp_003_reference.txt +9 -8
  29. data/spec/test_beautify.md +0 -1
  30. data/spec/test_beautify_reference.md +6 -3
  31. data/spec/test_mkindex_reference.txt +9 -38
  32. data/spec/test_slides.md +38 -0
  33. data/spec/wortsammler_spec.rb +80 -50
  34. data/testproject.xx/30_Sources/001_Main/main.md +273 -0
  35. data/testproject.xx/30_Sources/900_snippets/snippets.xlsx +0 -0
  36. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.docx +0 -0
  37. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.html +145 -0
  38. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.latex +416 -0
  39. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.pdf +0 -0
  40. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.beamer.pdf +0 -0
  41. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.docx +0 -0
  42. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.html +145 -0
  43. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.latex +416 -0
  44. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.pdf +0 -0
  45. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.docx +0 -0
  46. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.html +145 -0
  47. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.latex +416 -0
  48. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.pdf +0 -0
  49. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_review.latex +582 -0
  50. data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_review.pdf +0 -0
  51. data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/RS_Main.traces.md +56 -0
  52. data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_Reqtrace.graphml +119 -0
  53. data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_Reqtrace.md +50 -0
  54. data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_ReqtraceCompare.txt +52 -0
  55. data/testproject.xx/30_Sources/ZSUPP_Manifests/sample_the-sample-document.yaml +79 -0
  56. data/testproject.xx/30_Sources/ZSUPP_Styles/default.wortsammler.latex +321 -0
  57. data/testproject.xx/30_Sources/ZSUPP_Styles/logo.jpg +0 -0
  58. data/testproject.xx/30_Sources/ZSUPP_Tools/rakefile.rb +5 -0
  59. data/testresults/wortsammler_testresults.html +173 -424
  60. data/testresults/wortsammler_testresults.log +24 -241
  61. data/uninstall-pandoc.pl +79 -0
  62. data/wortsammler.gemspec +2 -2
  63. metadata +51 -9
  64. data/wortsammler-gem.sublime-project +0 -8
@@ -0,0 +1,119 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xmlns:yed="http://www.yworks.com/xml/yed/3" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd">
3
+ <!--Created by yFiles for Java 2.9-->
4
+ <key for="graphml" id="d0" yfiles.type="resources"/>
5
+ <key for="port" id="d1" yfiles.type="portgraphics"/>
6
+ <key for="port" id="d2" yfiles.type="portgeometry"/>
7
+ <key for="port" id="d3" yfiles.type="portuserdata"/>
8
+ <key attr.name="url" attr.type="string" for="node" id="d4"/>
9
+ <key attr.name="description" attr.type="string" for="node" id="d5"/>
10
+ <key for="node" id="d6" yfiles.type="nodegraphics"/>
11
+ <key attr.name="Beschreibung" attr.type="string" for="graph" id="d7"/>
12
+ <key attr.name="url" attr.type="string" for="edge" id="d8"/>
13
+ <key attr.name="description" attr.type="string" for="edge" id="d9"/>
14
+ <key for="edge" id="d10" yfiles.type="edgegraphics"/>
15
+ <graph edgedefault="directed" id="G">
16
+ <node id="RS_Comp_001">
17
+ <data key="d6">
18
+ <y:ShapeNode>
19
+ <y:NodeLabel>[RS_Comp_001] Flexibler Dokumentumfang</y:NodeLabel>
20
+ </y:ShapeNode>
21
+ </data>
22
+ </node>
23
+ <edge source="RS_Comp_001" target="RS_Comp_003" id="RS_Comp_003_RS_Comp_001"/>
24
+ <node id="RS_Comp_003">
25
+ <data key="d6">
26
+ <y:ShapeNode>
27
+ <y:NodeLabel>[RS_Comp_003] Steuerung Dokumentenzusammenstellung</y:NodeLabel>
28
+ </y:ShapeNode>
29
+ </data>
30
+ </node>
31
+ <edge source="RS_Comp_003" target="RS_DM_014" id="RS_DM_014_RS_Comp_003"/>
32
+ <edge source="RS_Comp_003" target="RS_DM_010" id="RS_DM_010_RS_Comp_003"/>
33
+ <edge source="RS_Comp_003" target="RS_DM_005" id="RS_DM_005_RS_Comp_003"/>
34
+ <node id="RS_Comp_004">
35
+ <data key="d6">
36
+ <y:ShapeNode>
37
+ <y:NodeLabel>[RS_Comp_004] Prozessierung Einzeldokument</y:NodeLabel>
38
+ </y:ShapeNode>
39
+ </data>
40
+ </node>
41
+ <node id="RS_Comp_005">
42
+ <data key="d6">
43
+ <y:ShapeNode>
44
+ <y:NodeLabel>[RS_Comp_005] Erstellung Loseblattsammlung</y:NodeLabel>
45
+ </y:ShapeNode>
46
+ </data>
47
+ </node>
48
+ <node id="RS_Comp_006">
49
+ <data key="d6">
50
+ <y:ShapeNode>
51
+ <y:NodeLabel>[RS_Comp_006] Inkrementelle Verarbeitung</y:NodeLabel>
52
+ </y:ShapeNode>
53
+ </data>
54
+ </node>
55
+ <node id="RS_Comp_007">
56
+ <data key="d6">
57
+ <y:ShapeNode>
58
+ <y:NodeLabel>[RS_Comp_007] Anforderungen an Manifest</y:NodeLabel>
59
+ </y:ShapeNode>
60
+ </data>
61
+ </node>
62
+ <edge source="RS_Comp_007" target="RS_Comp_003" id="RS_Comp_003_RS_Comp_007"/>
63
+ <node id="RS_Comp_008">
64
+ <data key="d6">
65
+ <y:ShapeNode>
66
+ <y:NodeLabel>[RS_Comp_008] Zielgruppenspezifische Ausgaben (Editionen)</y:NodeLabel>
67
+ </y:ShapeNode>
68
+ </data>
69
+ </node>
70
+ <edge source="RS_Comp_008" target="RS_Comp_003" id="RS_Comp_003_RS_Comp_008"/>
71
+ <node id="RS_Comp_009">
72
+ <data key="d6">
73
+ <y:ShapeNode>
74
+ <y:NodeLabel>[RS_Comp_009] Gesamtausgabe mit allen Texten zur Prüfung</y:NodeLabel>
75
+ </y:ShapeNode>
76
+ </data>
77
+ </node>
78
+ <edge source="RS_Comp_009" target="RS_Comp_003" id="RS_Comp_003_RS_Comp_009"/>
79
+ <node id="RS_Comp_010">
80
+ <data key="d6">
81
+ <y:ShapeNode>
82
+ <y:NodeLabel>[RS_Comp_010] Erstellung aller Ausgaben mit einem Befehl</y:NodeLabel>
83
+ </y:ShapeNode>
84
+ </data>
85
+ </node>
86
+ <edge source="RS_Comp_010" target="RS_Comp_003" id="RS_Comp_003_RS_Comp_010"/>
87
+ <node id="RS_Comp_011">
88
+ <data key="d6">
89
+ <y:ShapeNode>
90
+ <y:NodeLabel>[RS_Comp_011] including Plain pdf-Pages</y:NodeLabel>
91
+ </y:ShapeNode>
92
+ </data>
93
+ </node>
94
+ <edge source="RS_Comp_011" target="RS_Comp_003" id="RS_Comp_003_RS_Comp_011"/>
95
+ <node id="RS_Comp_012">
96
+ <data key="d6">
97
+ <y:ShapeNode>
98
+ <y:NodeLabel>[RS_Comp_012] Including text Snippets</y:NodeLabel>
99
+ </y:ShapeNode>
100
+ </data>
101
+ </node>
102
+ <node id="RS_Comp_014">
103
+ <data key="d6">
104
+ <y:ShapeNode>
105
+ <y:NodeLabel>[RS_Comp_014] Including markdown files</y:NodeLabel>
106
+ </y:ShapeNode>
107
+ </data>
108
+ </node>
109
+ <edge source="RS_Comp_014" target="RS_Comp_003" id="RS_Comp_003_RS_Comp_014"/>
110
+ <node id="RS_Conp_013">
111
+ <data key="d6">
112
+ <y:ShapeNode>
113
+ <y:NodeLabel>[RS_Conp_013] Defining text Snippets</y:NodeLabel>
114
+ </y:ShapeNode>
115
+ </data>
116
+ </node>
117
+ <edge source="RS_Conp_013" target="RS_Comp_003" id="RS_Comp_003_RS_Conp_013"/>
118
+ </graph>
119
+ </graphml>
@@ -0,0 +1,50 @@
1
+
2
+ \clearpage
3
+
4
+ # Requirements Tracing
5
+
6
+ - ->[RS_Comp_001] <!-- --> <a id="RT-RS-Comp-001"/>**Flexibler Dokumentumfang** (<a href="#RT-RS-Comp-003">[RS_Comp_003]</a>)
7
+
8
+
9
+ - ->[RS_Comp_003] <!-- --> <a id="RT-RS-Comp-003"/>**Steuerung Dokumentenzusammenstellung** (<a href="#RT-RS-DM-014">[RS_DM_014]</a>, <a href="#RT-RS-DM-010">[RS_DM_010]</a>, <a href="#RT-RS-DM-005">[RS_DM_005]</a>)
10
+
11
+ - <a href="#RT-RS-Comp-001">[RS_Comp_001]</a> Flexibler Dokumentumfang
12
+ - <a href="#RT-RS-Comp-007">[RS_Comp_007]</a> Anforderungen an Manifest
13
+ - <a href="#RT-RS-Comp-008">[RS_Comp_008]</a> Zielgruppenspezifische Ausgaben (Editionen)
14
+ - <a href="#RT-RS-Comp-009">[RS_Comp_009]</a> Gesamtausgabe mit allen Texten zur Prüfung
15
+ - <a href="#RT-RS-Comp-010">[RS_Comp_010]</a> Erstellung aller Ausgaben mit einem Befehl
16
+ - <a href="#RT-RS-Comp-011">[RS_Comp_011]</a> including Plain pdf-Pages
17
+ - <a href="#RT-RS-Comp-014">[RS_Comp_014]</a> Including markdown files
18
+ - <a href="#RT-RS-Conp-013">[RS_Conp_013]</a> Defining text Snippets
19
+
20
+ - ->[RS_Comp_004] <!-- --> <a id="RT-RS-Comp-004"/>**Prozessierung Einzeldokument** ()
21
+
22
+
23
+ - ->[RS_Comp_005] <!-- --> <a id="RT-RS-Comp-005"/>**Erstellung Loseblattsammlung** ()
24
+
25
+
26
+ - ->[RS_Comp_006] <!-- --> <a id="RT-RS-Comp-006"/>**Inkrementelle Verarbeitung** ()
27
+
28
+
29
+ - ->[RS_Comp_007] <!-- --> <a id="RT-RS-Comp-007"/>**Anforderungen an Manifest** (<a href="#RT-RS-Comp-003">[RS_Comp_003]</a>)
30
+
31
+
32
+ - ->[RS_Comp_008] <!-- --> <a id="RT-RS-Comp-008"/>**Zielgruppenspezifische Ausgaben (Editionen)** (<a href="#RT-RS-Comp-003">[RS_Comp_003]</a>)
33
+
34
+
35
+ - ->[RS_Comp_009] <!-- --> <a id="RT-RS-Comp-009"/>**Gesamtausgabe mit allen Texten zur Prüfung** (<a href="#RT-RS-Comp-003">[RS_Comp_003]</a>)
36
+
37
+
38
+ - ->[RS_Comp_010] <!-- --> <a id="RT-RS-Comp-010"/>**Erstellung aller Ausgaben mit einem Befehl** (<a href="#RT-RS-Comp-003">[RS_Comp_003]</a>)
39
+
40
+
41
+ - ->[RS_Comp_011] <!-- --> <a id="RT-RS-Comp-011"/>**including Plain pdf-Pages** (<a href="#RT-RS-Comp-003">[RS_Comp_003]</a>)
42
+
43
+
44
+ - ->[RS_Comp_012] <!-- --> <a id="RT-RS-Comp-012"/>**Including text Snippets** ()
45
+
46
+
47
+ - ->[RS_Comp_014] <!-- --> <a id="RT-RS-Comp-014"/>**Including markdown files** (<a href="#RT-RS-Comp-003">[RS_Comp_003]</a>)
48
+
49
+
50
+ - ->[RS_Conp_013] <!-- --> <a id="RT-RS-Conp-013"/>**Defining text Snippets** (<a href="#RT-RS-Comp-003">[RS_Comp_003]</a>)
@@ -0,0 +1,52 @@
1
+
2
+
3
+ [RS_Comp_001]
4
+ [RS_Comp_001] **Flexibler Dokumentumfang** {Soll Dokumente verschiedenen Umfangs erzeugen können: - einzelnes Files - Zusammengestelltes Dokument }(RS_Comp_003)
5
+
6
+
7
+ [RS_Comp_003]
8
+ [RS_Comp_003] **Steuerung Dokumentenzusammenstellung** {Dokumentenzusammenstellungen soll über ein manifest ->[RS_Comp_007] gesteuert werden. - Die Manifeste sollen als Laufzeitparameter übergeben werden - Das Manifest enthält auch die Ausgabedatei }(RS_DM_014, RS_DM_010, RS_DM_005)
9
+
10
+
11
+ [RS_Comp_004]
12
+ [RS_Comp_004] **Prozessierung Einzeldokument** {Soll Dokumente verschiedenen Umfangs erzeugen können: - einzelnes Files - zu Prüfzwecken Steuerung soll über Konfiguration (Manifest) erfolgen ->[RS_Comp_007]. }()
13
+
14
+
15
+ [RS_Comp_005]
16
+ [RS_Comp_005] **Erstellung Loseblattsammlung** {Soll Dokumente verschiedenen Umfangs erzeugen können: - kann aus dem Manifest errechnet werden ->[RS_Comp_007] }()
17
+
18
+
19
+ [RS_Comp_006]
20
+ [RS_Comp_006] **Inkrementelle Verarbeitung** {Soll nur auf geänderte Dokumente reagieren können: - ähnlich wie make/rake }()
21
+
22
+
23
+ [RS_Comp_007]
24
+ [RS_Comp_007] **Anforderungen an Manifest** {Folgende Anforderungen gelten für das Manifest - einfach bearbeiten - nur liste der Files - Markdown-lite - Yaml Inhalte im Manifest sind - Name der Konfiguration - Ausgabeverzeichnis - Ausgabeformat - Name des generierten Dokumentes - Formate in denen das Dokument generiert wird. Werte hierfür ergeben sich aus den Anforderungen an die Aufbereitet - zu verarbeitende Eingabedateien. Diese werden in der Reihenfolge verarbeitet wie sie aufgeführt sind. - Optionen für die jeweiligen Formate. - zu bearbeitende Zielgruppen ->[RS_Comp_008] <!-- --> Beispiel für ein manifest - :name: komplett :outdir: ../ZGEN_Documents :outname: RS_Requirements-Ngopm :format: - pdf - html - rtf - docx - latex :lang: german :vars: :lang: german :editions: :intern: :title: Interne Ausgabe :filepart: _intern :extern: :title: Externe Ausgabe :filepart: _extern :mieter: :title: Ausgabe für Mieter :filepart: _mieter :ea: :title: Ausgabe für ehrenamtliche Mitarbeiter :filepart: _ma-ehrenamtlich :ha: :title: Ausgabe für hauptamtliche Mitarbeiter :filepart: _ma-hauptamtlich :1: :title: Ausgabe für erste hauptamtliche Mitarbeiter :filepart: _ma-hauptamtlich-1 :input: - ../RS_Process/RS_Process.md - ../RS_Tooling/RS_Tooling.md - ../RS_Tooling/RS_MarkdownCleaner.md - ../RS_Tooling/RS_MarkdownEditor.md - ../RS_Tooling/RS_DocumentComposer.md - ../TPL_DirectoryStructure/TPL_DirectoryStructure.md - ../TR_Installation/TR_Installation.md - ../TR_Installation/TR_Proo-Handbuch.md - ../ZGEN_RequirementsTracing/ZGEN_Reqtrace.md :snippets: - ../TS_Markdown/TS_Snippets.yaml - ../TS_Markdown/TS_MoreSnippets.yaml }(RS_Comp_003)
25
+
26
+
27
+ [RS_Comp_008]
28
+ [RS_Comp_008] **Zielgruppenspezifische Ausgaben (Editionen)** { Es soll möglich sein Zielgruppenspezifische Ausgaben zu erstellen. - Dabei wird die Zielgruppe durch eine spezifische Zeichenkette umgeschaltet (Durchstreichung), die auch in standard Markdown Programmen eine sinnvolle Ausgabe liefert: `~~ED intern extern~~` ab hier gilt: Text erscheint in Ausgabe `intern` als auch in `extern` Es handelt sich also um ein durchgestrichenes Muster als regulärer Ausdruck ~~ED((\s* \S+)*)~~ - Die Umschaltung wirkt ab einschliesslich der Zeile, die die Umschaltung enthält, bis zum Aufruf einer neuen Umschaltung. - Die möglichen Zielgruppen werden im Manifest festgelegt ->[RS_Comp_007] daselbst Eintrag `:editions:` - Eine vorgegebene Zielgruppe `all` erzeugt keine spezifische Ausgabe. Sie kennzeichnet vielmehr Inhalte, die in **allen** Ausgaben gleichermassen enthalten sind. - Bei einer Aufteilung auf mehrere Dateien wird empfohlen am Ende einer jeden Datei auf `all` zu schalten. Dadurch wird das System einfache wartbar. }(RS_Comp_003)
29
+
30
+
31
+ [RS_Comp_009]
32
+ [RS_Comp_009] **Gesamtausgabe mit allen Texten zur Prüfung** {Sollte Dokumente Eine Gesamtausgabe mit allen Texten zur Überprüfung soll erstellt werden. In diesem Fall werden die Ausgaben am Rand notiert. }(RS_Comp_003)
33
+
34
+
35
+ [RS_Comp_010]
36
+ [RS_Comp_010] **Erstellung aller Ausgaben mit einem Befehl** {Es sollen immer alle Ausgaben gleichermassen generiert werden. Dabei gilt: - Der Dateiname für die generierten Dokumente bildet sich nach `{:outname:}_{:edition:.:filepart:}.{format}` - In der Kopfzeile des Dokumentes wird `:edition:.:title:` eingefügt, so dass die Ausgabe auf jeder Seite identifiziert werden kann. Ohne Angabe einer Zielgruppe bzw. mit der Angabe `all` soll wortsammler alle Ausgaben erstellen. Die Angabe einer einzelnen Zielgruppe erstellt dann auch nur die gewählte Ausgabe. }(RS_Comp_003)
37
+
38
+
39
+ [RS_Comp_011]
40
+ [RS_Comp_011] **including Plain pdf-Pages**{ PDF pages can be included by `~~PDF "lib/01234_particularPdf.pdf" "Das ist der Eintrag im Inhaltsverzeichnis" 1 2-4~~` It is done in a markdown verbatim section. By this, Pandoc does not add linebreaks in the command such that it can be processed with regular expressions. }(RS_Comp_003)
41
+
42
+
43
+ [RS_Comp_012]
44
+ [RS_Comp_012] **Including text Snippets**{ Text Snippts can be included by `~~SN {symbol}~~` The snippets are taken from one of the snippet databases declared in the manifest ->[RS_Comp_007] according to the format in ->[RS_Comp_013]. }()
45
+
46
+
47
+ [RS_Comp_014]
48
+ [RS_Comp_014] **Including markdown files** { `~~MD "lib/01234/xxxx/yyyy.md"~~` will be replaced by the content of the argument. It should even work inline. }(RS_Comp_003)
49
+
50
+
51
+ [RS_Conp_013]
52
+ [RS_Conp_013] **Defining text Snippets** { Text snippets are defined as a yaml file in the following format: :Snippet1: Das ist Snippet 1 :Snippet2: |- Das ist snippet 2. Es enthält sogar eine Liste * Das ist item 1 in Snippet 2 * Das ist item 2 in Snippet 2 }(RS_Comp_003)
@@ -0,0 +1,79 @@
1
+ -
2
+ :name: komplett
3
+ :outdir: ../ZGEN_Documents
4
+ :outname: RS_Main
5
+ :format:
6
+ - latex
7
+ - docx
8
+ - html
9
+ - pdf
10
+ - beamer
11
+ - slidy
12
+
13
+ :vars:
14
+ :lang: german
15
+ :fontsize: 12pt
16
+ :mainfont: Calibri
17
+ :sansfont: Calibri
18
+ :geometry: a4paper
19
+ :logofile: ../ZSUPP_Styles/logo.jpg
20
+
21
+ :stylefiles:
22
+ :latex: ../ZSUPP_Styles/default.wortsammler.latex
23
+ :docx: ../ZSUPP_Styles/default.wortsammler.docx
24
+ :html: ../ZSUPP_Styles/default.wortsammler.css
25
+
26
+ :input:
27
+ - ../001_main/main.md
28
+
29
+ :downstream_tracefile: ../ZGEN_RequirementsTracing/RS_Main.traces.md
30
+
31
+ :reqtracefile_base: ../ZGEN_RequirementsTracing/ZGEN_Reqtrace
32
+
33
+ :traceSortOrder:
34
+ - RS_MG
35
+ - RS_TEC
36
+
37
+
38
+ :editions:
39
+
40
+ :review:
41
+ :title: Main requirements (review)
42
+ :filepart: review
43
+ :debug: true
44
+ :format:
45
+ - latex
46
+ - docx
47
+ - html
48
+ - pdf
49
+
50
+ :compact:
51
+ :title: Main requirements (compact)
52
+ :filepart: compact
53
+ :format:
54
+ - latex
55
+ - docx
56
+ - html
57
+ - pdf
58
+
59
+
60
+ :extended:
61
+ :title: Main requirements (extended)
62
+ :filepart: mieter
63
+ :format:
64
+ - latex
65
+ - docx
66
+ - html
67
+ - pdf
68
+
69
+
70
+ :folien:
71
+ :title: Beamer
72
+ :filepart: folien
73
+ :format:
74
+ - beamer
75
+ - slidy
76
+
77
+ :snippets:
78
+ - ../900_snippets/snippets.xlsx
79
+
@@ -0,0 +1,321 @@
1
+ \documentclass[twoside,a4paper,$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$]{$documentclass$}
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
+ $if(euro)$
12
+ \usepackage{eurosym}
13
+ $endif$
14
+ \else % if luatex or xelatex
15
+ \usepackage{fontspec}
16
+ \ifxetex
17
+ \usepackage{xltxtra,xunicode}
18
+ \fi
19
+ \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
20
+ \newcommand{\euro}{€}
21
+ $if(mainfont)$
22
+ \setmainfont{$mainfont$}
23
+ $endif$
24
+ $if(sansfont)$
25
+ \setsansfont{$sansfont$}
26
+ $endif$
27
+ $if(monofont)$
28
+ \setmonofont{$monofont$}
29
+ $endif$
30
+ $if(mathfont)$
31
+ \setmathfont{$mathfont$}
32
+ $endif$
33
+ \fi
34
+ $if(geometry)$
35
+ \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
36
+ $endif$
37
+ $if(natbib)$
38
+ \usepackage{natbib}
39
+ \bibliographystyle{plainnat}
40
+ $endif$
41
+ $if(biblatex)$
42
+ \usepackage{biblatex}
43
+ $if(biblio-files)$
44
+ \bibliography{$biblio-files$}
45
+ $endif$
46
+ $endif$
47
+ $if(listings)$
48
+ \usepackage{listings}
49
+ $endif$
50
+ $if(lhs)$
51
+ \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
52
+ $endif$
53
+ $if(highlighting-macros)$
54
+ $highlighting-macros$
55
+ $endif$
56
+ $if(verbatim-in-note)$
57
+ \usepackage{fancyvrb}
58
+ $endif$
59
+ $if(fancy-enums)$
60
+ % Redefine labelwidth for lists; otherwise, the enumerate package will cause
61
+ % markers to extend beyond the left margin.
62
+ \makeatletter\AtBeginDocument{%
63
+ \renewcommand{\@listi}
64
+ {\setlength{\labelwidth}{4em}}
65
+ }\makeatother
66
+ \usepackage{enumerate}
67
+ $endif$
68
+ \usepackage{longtable}
69
+ \usepackage{float} % provides the H option for float placement
70
+ \usepackage{graphicx}
71
+ % We will generate all images so they have a width \maxwidth. This means
72
+ % that they will get their normal width if they fit onto the page, but
73
+ % are scaled down if they would overflow the margins.
74
+ \makeatletter
75
+ \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth
76
+ \else\Gin@nat@width\fi}
77
+ \makeatother
78
+ \let\Oldincludegraphics\includegraphics
79
+ \makeatletter
80
+ \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth
81
+ \else\Gin@nat@width\fi}
82
+ \makeatother
83
+ \let\Oldincludegraphics\includegraphics
84
+ %\renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=\maxwidth]{#1}}
85
+ % Determine if the image is too wide for the page.
86
+ %
87
+ {%
88
+ \catcode`\@=11\relax%
89
+ \gdef\includegraphics{\@ifnextchar[{\Oldincludegraphics}{\Oldincludegraphics[width=\maxwidth]}}%
90
+ }%
91
+ %
92
+
93
+ \ifxetex
94
+ \usepackage[setpagesize=false, % page size defined by xetex
95
+ unicode=false, % unicode breaks when used with xetex
96
+ bookmarksdepth=3, %
97
+ xetex]{hyperref}
98
+ \else
99
+ \usepackage[unicode=true]{hyperref}
100
+ \fi
101
+ \hypersetup{breaklinks=true,
102
+ bookmarks=true,
103
+ pdfauthor={$author-meta$},
104
+ pdftitle={$title-meta$},
105
+ colorlinks=true,
106
+ urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$,
107
+ linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$,
108
+ pdfborder={0 0 0}}
109
+ \urlstyle{same} % don't use monospace font for urls
110
+ $if(links-as-notes)$
111
+ % Make links footnotes instead of hotlinks:
112
+ \renewcommand{\href}[2]{#2\footnote{\url{#1}}}
113
+ $endif$
114
+ $if(strikeout)$
115
+ \usepackage[normalem]{ulem}
116
+ % avoid problems with \sout in headers with hyperref:
117
+ \pdfstringdefDisableCommands{\renewcommand{\sout}{}}
118
+ $endif$
119
+ \setlength{\parindent}{0pt}
120
+ \setlength{\parskip}{6pt plus 2pt minus 1pt}
121
+ \setlength{\emergencystretch}{3em} % prevent overfull lines
122
+ $if(numbersections)$
123
+ \setcounter{secnumdepth}{5}
124
+ $else$
125
+ \setcounter{secnumdepth}{0}
126
+ $endif$
127
+ $if(verbatim-in-note)$
128
+ \VerbatimFootnotes % allows verbatim text in footnotes
129
+ $endif$
130
+ $if(lang)$
131
+ \ifxetex
132
+ \usepackage{polyglossia}
133
+ \setmainlanguage{$mainlang$}
134
+ \else
135
+ \usepackage[$lang$]{babel}
136
+ \fi
137
+ $endif$
138
+ $for(header-includes)$
139
+ $header-includes$
140
+ $endfor$
141
+
142
+ $if(title)$
143
+ \title{$title$}
144
+ $endif$
145
+ \author{$for(author)$$author$$sep$ \and $endfor$}
146
+ \date{$date$}
147
+
148
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
149
+ %
150
+ % Wortsammler specific settings
151
+ %
152
+ %list environment by reinhard Jahraus
153
+ {\catcode`\@=11\relax%
154
+ \gdef\itemize{%
155
+ \ifnum \@itemdepth >\thr@@\@toodeep\else
156
+ \advance\@itemdepth\@ne
157
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
158
+ \expandafter
159
+ \list
160
+ \csname\@itemitem\endcsname
161
+ {\def\makelabel##1{\hss\llap{##1}}%
162
+ \addtolength{\leftmargin}{-10pt}% 29.37pt
163
+ \addtolength{\rightmargin}{0.0pt}% 0.0pt
164
+ \addtolength{\labelsep}{0pt}% 23.50pt
165
+ \addtolength{\itemsep}{-3.0pt}% 5.0pt
166
+ \addtolength{\parsep}{-1pt}% 5.0pt
167
+ \addtolength{\topsep}{-5pt}% 10.0pt
168
+ \addtolength{\partopsep}{0pt}% 3.0pt
169
+ }%
170
+ \fi}
171
+ }%
172
+
173
+ %
174
+ % improve nesting of lists
175
+ % %http://stackoverflow.com/questions/1935952/maximum-nesting-level-of-lists-in-latex
176
+ %
177
+ \usepackage{enumitem}
178
+ \setlistdepth{9}
179
+ \setlist[itemize,1]{label=$$\bullet$$}
180
+ \setlist[itemize,2]{label=$$\bullet$$}
181
+ \setlist[itemize,3]{label=$$\bullet$$}
182
+ \setlist[itemize,4]{label=$$\bullet$$}
183
+ \setlist[itemize,5]{label=$$\bullet$$}
184
+ \setlist[itemize,6]{label=$$\bullet$$}
185
+ \setlist[itemize,7]{label=$$\bullet$$}
186
+ \setlist[itemize,8]{label=$$\bullet$$}
187
+ \setlist[itemize,9]{label=$$\bullet$$}
188
+ \renewlist{itemize}{itemize}{9}
189
+ %
190
+ % multicol
191
+ %
192
+ \usepackage{multicol}
193
+ $if(linenumbers)$
194
+ \newcommand{\wsbegintwocol}{}
195
+ \newcommand{\wsendtwocol}{}
196
+ $else$
197
+ \newcommand{\wsbegintwocol}{\begin{multicols}{2}}
198
+ \newcommand{\wsendtwocol}{\end{multicols}}
199
+ $endif$
200
+
201
+ %
202
+ % embed an image in the text
203
+ %
204
+ % usage: \wsembedimage{file}{r|l}{width}{height}
205
+ \usepackage{wrapfig}
206
+ \usepackage{needspace}
207
+ \newcommand{\wsembedimage}[4]{\needspace{#4}\begin{wrapfigure}{#2}{#3}\centering%
208
+ \vspace{-5mm}\includegraphics{#1}\vspace{-1cm}\end{wrapfigure}}
209
+ %
210
+ % adjust page layout
211
+ %
212
+ \setlength{\oddsidemargin}{-0.5cm}
213
+ \setlength{\evensidemargin}{-0.5cm}
214
+ \setlength{\textwidth}{17cm}
215
+ \setlength{\topmargin}{-2.0cm}
216
+ \setlength{\headheight}{1cm}
217
+ \setlength{\headsep}{1.5cm}
218
+ \setlength{\textheight}{25cm}
219
+ \setlength{\footskip}{1cm}
220
+
221
+ % adjust the toc layout
222
+ \makeatletter
223
+ % \renewcommand*\l@section{\@dottedtocline{2}{1.8em}{4em}}
224
+ \renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{4em}}
225
+ \renewcommand*\l@subsubsection{\@dottedtocline{2}{5.5em}{4em}}
226
+ \makeatother
227
+
228
+ \usepackage{pdfpages}
229
+ \usepackage{bookmark}
230
+ \usepackage{fancyhdr}
231
+ \pagestyle{fancy}
232
+ \chead{\begin{center}\textbf{$title$} $edition$\end{center}}
233
+ $if(logofile)$
234
+ \lhead{\includegraphics{$logofile$}}
235
+ $endif$
236
+ \rhead{\leftmark}
237
+ \lfoot{$author$}
238
+ \rfoot{\today~$date$}
239
+ \renewcommand{\footrulewidth}{0.4pt}
240
+ %
241
+ \renewcommand{\familydefault}{\sfdefault}
242
+ %
243
+ % Marginpars shall always be right
244
+ \makeatletter
245
+ \def\marginparright{\@mparswitchfalse}
246
+ \def\marginparoutside{\@mparswitchtrue}
247
+ \makeatother
248
+ \marginparright
249
+ %
250
+ %
251
+ \raggedbottom
252
+ %
253
+
254
+ $if(linenumbers)$
255
+ \usepackage[pagewise]{lineno}
256
+ \setlength\linenumbersep{1mm}
257
+ \modulolinenumbers[5]
258
+ $endif$
259
+
260
+ \usepackage{makeidx}
261
+ \makeindex
262
+
263
+ %
264
+ %\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}}
265
+ %
266
+ % \makeatletter%
267
+ % \renewcommand{\chapter}{\@startsection{chapter}{0}{0pt}{3.5ex plus 1ex minus 0pt\relax}{2.5ex plus 0.5ex minus 0pt\relax}{\normalfont\Large\bfseries}}%
268
+ % \makeatother%
269
+ %
270
+ %
271
+ % Wortsammler extensions end here
272
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
273
+ \begin{document}
274
+ $if(title)$
275
+ \maketitle
276
+ $endif$
277
+
278
+ $for(include-before)$
279
+ $include-before$
280
+
281
+ $endfor$
282
+ $if(title)$
283
+ \clearpage
284
+ $endif$
285
+
286
+ $if(toc)$
287
+ {
288
+ \hypersetup{linkcolor=black}
289
+ \setcounter{tocdepth}{1}
290
+ \tableofcontents
291
+ \newpage
292
+ }
293
+ $endif$
294
+ $if(linenumbers)$
295
+ \linenumbers
296
+ $endif$
297
+
298
+ $body$
299
+
300
+ $if(natbib)$
301
+ $if(biblio-files)$
302
+ $if(biblio-title)$
303
+ $if(book-class)$
304
+ \renewcommand\bibname{$biblio-title$}
305
+ $else$
306
+ \renewcommand\refname{$biblio-title$}
307
+ $endif$
308
+ $endif$
309
+ \bibliography{$biblio-files$}
310
+
311
+ $endif$
312
+ $endif$
313
+ $if(biblatex)$
314
+ \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
315
+
316
+ $endif$
317
+ $for(include-after)$
318
+ $include-after$
319
+
320
+ $endfor$
321
+ \end{document}
@@ -0,0 +1,5 @@
1
+
2
+ require 'wortsammler/rake_helper'
3
+
4
+
5
+