diff --git a/.gitignore b/.gitignore index 4b8577c..3a0db4e 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,8 @@ ## Generated if empty string is given at "Please type another file name for output:" .pdf +Beispiel/beispiel.tex +Beispiel/beispiel.pdf ## Bibliography auxiliary files (bibtex/biblatex/biber): *.bbl diff --git a/Aufgabenstellung.odt b/Aufgabenstellung.odt deleted file mode 100644 index e2dbc2b..0000000 Binary files a/Aufgabenstellung.odt and /dev/null differ diff --git a/Beispiel/Aufgabenstellung/Aufgabenstellung.odt b/Beispiel/Aufgabenstellung/Aufgabenstellung.odt new file mode 100644 index 0000000..b5ec2d7 Binary files /dev/null and b/Beispiel/Aufgabenstellung/Aufgabenstellung.odt differ diff --git a/Beispiel/Aufgabenstellung/Aufgabenstellung.pdf b/Beispiel/Aufgabenstellung/Aufgabenstellung.pdf index 3e5e93d..c2022bf 100644 Binary files a/Beispiel/Aufgabenstellung/Aufgabenstellung.pdf and b/Beispiel/Aufgabenstellung/Aufgabenstellung.pdf differ diff --git a/Beispiel/beispiel.md b/Beispiel/beispiel.md index 6d1ca00..390276a 100644 --- a/Beispiel/beispiel.md +++ b/Beispiel/beispiel.md @@ -4,9 +4,12 @@ logo: ../Bilder/logo.png title: Pandoc und Markdown für deine Texte author: Sebastian Preisner student: - name: Sebastian Preisner + firstname: Sebastian + lastname: Preisner email: wbh@calyrium.org matrikelnr: 900266 + strasse: Hilpertstr. 31 + ort: 64295 Darmstadt studium: studiengang: Technische Informatik studiengangnr: 1140 @@ -18,10 +21,12 @@ date: 08.06.2017 lang: de toc: \\ skipfirstpage: 1 # set any value, to skip the counting for Titlepage, so TOC will start with Page 1 -#assignment: -# file: '`Aufgabenstellung/Aufgabenstellung.pdf`{=latex}' -# pages: '`{1-2}`{=latex}' - +assignment: + file: '`Aufgabenstellung/Aufgabenstellung.pdf`{=latex}' + beforetitle: 1 + pages: '`2-`{=latex}' + fillform: 1 + multipage: 1 ... # Einführungauthor @@ -145,6 +150,14 @@ A & = B + C + D + E + F\\ A - F & = B + C + D + E \end{aligned}$$ +## Lösung doppelt unterstreichen + +Um die Lösung einer Gleichung hervorzuheben, kann der alias `\solution{x}` verwendet werden, der das Ergebnis einer Gleichung doppelt unterstreicht. + +$$ +A = B + C = 5 + 9 = \solution{14} +$$ + ## SI-Units diff --git a/README.md b/README.md index cfdb3d2..de4f32c 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,8 @@ logo: hochschule: author: student: - name: + firstname: + lastname: email: strasse: ort: @@ -57,9 +58,17 @@ arbeit: lang: #assignment: # file: '`Aufgabenstellung/Aufgabenstellung.pdf`{=latex}' -# pages: '`{1-2}`{=latex}' # Page 1 to 2 -# pages: '`-`{=latex}' # All pages -# pages: '`1,3`{=latex}' # Page 1 and 3 +# pages: '`-`{=latex}' # All pages +# pages: '`1,3`{=latex}' # Page 1 and 3 +# beforetitle: 1 +# multipage: 1 +# fillform: 1 +# Optionale Seitenrändereinstellungen +seite: + rand_oben: 20mm + rand_unten: 20mm + rand_links: 30mm + rand_rechts: 40mm ... ``` @@ -75,31 +84,39 @@ Make ist in der Regel Teil des Pakets `build-essentials`, welches du mit `sudo Im Folgenden sind die einzelnen Variablen und Schalter erläutert. Alle Optionalen Variablen werden nicht benötigt und können somit leer bleiben oder ganz weg gelassen werden. -| Variable | Beschreibung | Optional | default | -|:------------------ |:----------------------------------------------------- |:-------- |:------------- | -| title | Titel der Arbeit/B-Prüfung | nein | | -| author | Der Uhrheber der Arbeit, in der Regel dein Name | ja | | -| student | Informationen über dich | nein | | -| name | Dein Name, wird als Author verwendet | nein | | -| matrikelnr | Deine Matrikelnummer | ja | | -| email | Deine E-Mail Adresse | ja | | -| studium | Informationen zum Studiengang und dem Fach | ja | | -| studiengang | Dein Studiengang | ja | | -| studiengangnr | Diese findest du unter "Main Studium" SG-Nr. | ja | | -| fach | In welchem Fach wird die Prüfung bearbeitet | ja | | -| aufgabencode | Der Code befindet sich auf deiner B-Prüfung ganz oben | ja | | -| date | Datum der Abgabe | ja | today | -| lang | Sprache des Dokumentes "Ländercode" | ja | en | -| logo | Der Pfad zum Logo (Standard ./Bilder/logo.png) | ja | Pfad zum Bild | -| hochschule | Name der Hochschule | ja | | -| toc | Hinzufügen des Inhaltsverzeichnises | ja | false | -| abk | Abkürzungsverzeichnis | ja | false | -| lot | Verzeichnis der Tabellen | ja | false | -| lof | Liste der Figuren/Abbildungen | ja | false | -| skipfirstpage | Zählt die Titleseite nicht mit | ja | true | -| assignment.file | Pfad zur Aufgabenstellung | ja | string | -| assignment.pages | Seitenzahlen der Aufgabenstellung | ja | string | - +| Variable | Beschreibung | Optional | default | +|:---------------------- |:----------------------------------------------------- |:-------- |:------------- | +| title | Titel der Arbeit/B-Prüfung | nein | | +| author | Der Uhrheber der Arbeit, in der Regel dein Name | ja | | +| student | Informationen über dich | nein | | +| student.firstname | Vorname | nein | | +| student.lastname | Nachname | nein | | +| student.strasse | Strasse | nein | | +| student.ort | PLZ + Ort | nein | | +| matrikelnr | Deine Matrikelnummer | ja | | +| email | Deine E-Mail Adresse | ja | | +| studium | Informationen zum Studiengang und dem Fach | ja | | +| studiengang | Dein Studiengang | ja | | +| studiengangnr | Diese findest du unter "Main Studium" SG-Nr. | ja | | +| fach | In welchem Fach wird die Prüfung bearbeitet | ja | | +| aufgabencode | Der Code befindet sich auf deiner B-Prüfung ganz oben | ja | | +| date | Datum der Abgabe | ja | today | +| lang | Sprache des Dokumentes "Ländercode" | ja | de | +| logo | Der Pfad zum Logo (Standard ./Bilder/logo.png) | ja | Pfad zum Bild | +| toc | Hinzufügen des Inhaltsverzeichnises | ja | true / false | +| abk | Abkürzungsverzeichnis | ja | true /false | +| lot | Verzeichnis der Tabellen | ja | true / false | +| lof | Liste der Figuren/Abbildungen | ja | true / false | +| skipfirstpage | Zählt die Titleseite nicht mit | ja | true | +| assignment.file | Pfad zur Aufgabenstellung | ja | | +| assignment.pages | Seitenzahlen der Aufgabenstellung | ja | - | +| assignment.beforetitle | Seitenzahlen der Aufgabenstellung | ja | 1 | +| assignment.fillform | Füllt Name und Addresse auf der Aufgabenstellung aus | ja | 1 | +| assignment.multipage | Mehr als die erste Seite einbinden | ja | 1 | +| seite.rand_oben | Seitenrand oben | ja | 20mm | +| seite.rand_unten | Seitenrand unten | ja | 20mm | +| seite.rand_rechts | Seitenrand rechts | ja | 40mm | +| seite.rand_links | Seitenrand links | ja | 30mm | ### Aufgabenstellung mit einbinden @@ -107,7 +124,6 @@ Das Template erlaubt es, durch setzen der Variablen im Block `assignment`, die A Um dem Escaping von pandoc vorzubeugen müssen die Angaben im `assignment` Block in ` '`Wert`{=latex}' ` eingeschlossen werden. - **Seitenbereich** Für einzelne Seiten kann man folgendes schreiben: @@ -117,7 +133,6 @@ assignment: pages: '`1-2`{=latex}' ``` - **Einzelne Seiten** Für einzelne Seiten kann man folgendes schreiben: @@ -140,9 +155,22 @@ Dabei unbedingt die einfachen Anführungszeichen drin lassen. Eine Range kann le Weitere Hinweise stehen in der (Dokumentation)[https://texdoc.org/serve/pdfpages.pdf/0] des LaTeX packages `pdfpages` + + +**Vor oder Nach der Titelseite?** + +Die Variable `assignment.beforetitle` steuert, ob die Aufgabenstellung vor oder nach der Titelseite eingebunden wird. Die Seitenzahlen zählen in beiden Fällen nicht mit. + +### Ausfüllen des Adressteils der Aufgabenstellung + +Wenn `assignment.fillform` gesetzt ist, kann das Pandoc Template Name und Adresse des Studenten in den Kopfteil von A-/B- Aufgaben der WBH ausfüllen. Das Feature ist experimentell und wurde mit B-DSV und B-HFT getestet. Die Felder sind pixelbasiert platziert, es kann also bei Abweichungen in der Aufgabenstellung dazu kommen das die Koordinaten in `wbh.tex` angepasst werden müssen. + +Da zuerst die erste Seite des PDFs ausgefüllt wird, muss der Rest des Formulars separat eingebunden werden. Wenn die Aufgabenstellung mehr als eine Seite ist, daher muss für diesen Fall `assignment.multiplage` gesetzt sein. + ### Logo oder Name der Hochschule -Es wird entweder das Logo oder der Name der Hochschule auf dem Titelblatt ausgegeben, jedoch nicht beides. Sollte biedes gesetzt sein, so wird gar nichts ausgegeben. +Es wird entweder das Logo oder der Name der Hochschule auf dem Titelblatt ausgegeben, jedoch nicht beides. Sollte beides gesetzt sein, so wird gar nichts ausgegeben. + ## ToDo diff --git a/wbh.tex b/wbh.tex index 7274fd6..782dc8d 100644 --- a/wbh.tex +++ b/wbh.tex @@ -30,7 +30,7 @@ $endif$ %\usepackage[utf8]{inputenc} $endif$ - +\usepackage[usenames,dvipsnames]{color} \usepackage{amsmath} % For pandoc extensive `amsmath` collection of symbols for typesetting ordinary math \usepackage{amsfonts} % More symboles for exotic currency notation and engeneering diagrams \usepackage{amssymb} % More symboles for exotic currency notation and engeneering diagrams @@ -40,13 +40,12 @@ $if(lang)$ $endif$ \usepackage{fancyhdr} \usepackage{tabularx} -\usepackage[a4paper, top=27mm, left=20mm, right=40mm, bottom=35mm, headsep=10mm, footskip=12mm]{geometry} % Vorgabe 4cm Rand auf der rechten Seite. +\usepackage[a4paper, top=$if(seite.rand_oben)$$seite.rand_oben$$else$27mm$endif$, left=$if(seite.rand_links)$$seite.rand_links$$else$20mm$endif$, right=$if(seite.rand_rechts)$$seite.rand_rechts$$else$40mm$endif$, bottom=$if(seite.rand_unten)$$seite.rand_unten$$else$35mm$endif$, headsep=10mm, footskip=12mm]{geometry} % Vorgabe 4cm Rand auf der rechten Seite. \usepackage{setspace} \usepackage[right]{eurosym} \usepackage[printonlyused]{acronym} \usepackage{subfig} \usepackage{floatflt} -\usepackage[usenames,dvipsnames]{color} \usepackage{colortbl} \usepackage{paralist} \usepackage{array} @@ -57,6 +56,62 @@ $endif$ \usepackage{graphicx} \usepackage[export]{adjustbox} % also loads graphicx, to have max width for graphics \usepackage{pdfpages} +\usepackage{tikz} + + +% ---------------------------------------------------------------------------------------------------------- +% Firstname + Lastname +% ---------------------------------------------------------------------------------------------------------- + +$if(student.firstname)$ +% Firstname is set, assume name is Firstnaem + Lastname +\def \studentname{$student.firstname$ $student.lastname$} +$else$ +% Firstname is not set, studentname = name +\def \studentname{$student.name$} +$endif$ + +% ---------------------------------------------------------------------------------------------------------- +% Aufgabenstellung +% ---------------------------------------------------------------------------------------------------------- +% Debug: +% include: $assignment.include$ file: $assignment.file$ pages: $assignment.pages$ + +\def \assignment{ + +% Regular include for historic reasons +%------------------ +% include assignment is on +% \includepdf[pages=$assignment.pages$]{$assignment.file$} +% New include for historic reasons +%------------------ + +% check if assignment.file is set at all +$if(assignment.file)$ +% check if form shall be filled out +$if(assignment.fillform)$ +\includepdf[pagecommand={ % 23mm, 6mm +\begin{tikzpicture}[remember picture, overlay, x=1mm,y=1mm,% +mybox/.style={rectangle,minimum width=56mm, draw opacity=0.0, line width=0, minimum height=8mm, align=left,text width=56mm},% +info/.style={mybox,draw=black,align=left}] +\node at (34,-34) [info] {$student.firstname$}; +\node at (95,-34) [info] {$student.lastname$}; +\node at (34,-47) [info] {$student.strasse$}; +\node at (95,-47) [info] {$student.ort$}; +\node at (34,-59) [info] {$student.matrikelnr$}; +\node at (95,-59) [info] {$studium.studiengangnr$}; +\end{tikzpicture}}, pages=1]{$assignment.file$} +$if(assignment.multipage)$ % check if we need to include the rest of the document +\includepdf[pages=$assignment.pages$]{$assignment.file$} % Include rest of document +$endif$ +$else$ +\includepdf[pages=$assignment.pages$]{$assignment.file$} +$endif$ +$else$ +%include assignment was off +$endif$ +} + $if(tables)$ \usepackage{longtable,booktabs} % This two Packages are needet for Pandoc Table support. Issue is opened: https://github.com/jgm/pandoc/issues/1023 @@ -64,6 +119,10 @@ $endif$ \usepackage{multirow} +% Solution - for double underlined solutions in formulas/equations, uses \underline twice for double underline +\newcommand{\solution}[1]{\underline{\underline{#1}}} + + $if(graphics)$ \makeatletter \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} @@ -111,8 +170,8 @@ $endif$ pdfmenubar=true, pdffitwindow=false, pdfstartview={FitH}, - pdftitle={$if(title)$$title$$endif$$if(aufgabe.code)$: $aufgabe.code$$endif$$if(student.name)$ - $student.name$$endif$}, - pdfauthor={$if(student.name)$$student.name$$else$$author$$endif$$if(student.matrikelnr)$, Matrikelnummer: $student.matrikelnr$$endif$}, + pdftitle={$if(title)$$title$$endif$$if(aufgabe.code)$: $aufgabe.code$$endif$- \studentname}, + pdfauthor={$if(author)$$author$$else$\studentname$endif$$if(student.matrikelnr)$, Matrikelnummer: $student.matrikelnr$$endif$}, $if(studium.studiengang)$ pdfsubject={Studiengang: $studium.studiengang$}, $endif$ @@ -233,19 +292,15 @@ $endif$ \begin{document} -% ---------------------------------------------------------------------------------------------------------- -% Aufgabenstellung -% ---------------------------------------------------------------------------------------------------------- -% Debug: -% include: $assignment.include$ file: $assignment.file$ pages: $assignment.pages$ + +% +% Assignment +% ------------------- $if(assignment.file)$ - % include assignment is on -\includepdf[pages=$assignment.pages$]{$assignment.file$} -$else$ - %include assignment was off +$if(assignment.beforetitle)$ +\assignment +$endif$ $endif$ - - % ---------------------------------------------------------------------------------------------------------- % Kopf und Fußzeile @@ -256,7 +311,7 @@ $endif$ \lhead{} \chead{} \rhead{\thesection\space\contentsname} -\lfoot{\tiny $if(aufgabe.typ)$$aufgabe.typ$ des Studenten: $endif$$if(student.name)$$student.name$$endif$ $if(student.matrikelnr)$(Matrikelnr.: $student.matrikelnr$)$endif$ $if(studium.studiengang)$Studiengang: $studium.studiengang$$endif$ $if(aufgabe.code)$- Prüfung: $aufgabe.code$ $endif$} +\lfoot{\tiny $if(aufgabe.typ)$$aufgabe.typ$ des Studenten: $endif$$if(author)$$author$$else$\studentname$endif$$if(student.matrikelnr)$ (Matrikelnr.: $student.matrikelnr$)$endif$ $if(studium.studiengang)$Studiengang: $studium.studiengang$$endif$ $if(aufgabe.code)$- Prüfung: $aufgabe.code$ $endif$} \cfoot{} \rfoot{\ \linebreak Seite \thepage} \renewcommand{\headrulewidth}{0.4pt} @@ -282,7 +337,7 @@ $if(logo)$ $if(hochschule)$ $else$ \includegraphics[max width=\textwidth]{$log $if(studium.studiengang)$ \textbf{Studiengang:}\\ \textbf{$studium.studiengang$}\\ - \vspace*{2cm} + \vspace*{1cm} $endif$ \Huge $if(aufgabe.typ)$ @@ -297,18 +352,18 @@ $if(logo)$ $if(hochschule)$ $else$ \includegraphics[max width=\textwidth]{$log $if(aufgabe.code)$ $aufgabe.code$ \\ $endif$ - \vspace*{1cm} + \vspace*{0.5cm} $if(studium.fach)$ \textbf{$studium.fach$}\\ $endif$ - \vspace*{1cm} + \vspace*{0.5cm} \vfill \normalsize \newcolumntype{x}[1]{>{\raggedleft\arraybackslash\hspace{0pt}}p{#1}} \begin{tabular}{x{6cm}p{7.5cm}} - $if(student.name)$ - \rule{0mm}{5ex}\textbf{Student:} & $student.name$ + $if(student)$ + \rule{0mm}{5ex}\textbf{Student:} & \studentname $if(student.strasse)$ \newline $student.strasse$ $endif$ @@ -334,9 +389,21 @@ $if(logo)$ $if(hochschule)$ $else$ \includegraphics[max width=\textwidth]{$log \end{center} \pagebreak +% ---------------------------------------------------------------------------------------------------------- +% Assignment +% ---------------------------------------------------------------------------------------------------------- + +$if(assignment.file)$ +$if(assignment.beforetitle)$ +$else$ +\assignment +$endif$ +$endif$ + + $if(skipfirstpage)$ % Skip first page count, if skipfirstpage = 1 - \clearpage - \setcounter{page}{1} +\clearpage +\setcounter{page}{1} $endif$ $if(abstract)$ @@ -534,7 +601,7 @@ $if(insurance)$ \huge\textbf{Erklärung}\\ \end{center} \vspace{2em} -Ich, $student.name$, versichere durch meine Unterschrift, dass ich die vorliegende Arbeit selbstständig erstellt habe. Andere als die angegebenen Hilfsmittel habe ich nicht ver-wendet. +Ich, \studentname, versichere durch meine Unterschrift, dass ich die vorliegende Arbeit selbstständig erstellt habe. Andere als die angegebenen Hilfsmittel habe ich nicht ver-wendet. Soweit ich fremde Gedankengänge oder Texte verwendet habe, sind diese von mir als solche kenntlich gemacht und dem Urheber eindeutig zuordenbar. Dazu zählen sowohl wört-liche als auch nicht wörtliche Übernahmen. @@ -542,7 +609,7 @@ Soweit ich fremde Gedankengänge oder Texte verwendet habe, sind diese \begin{minipage}{\linewidth} \begin{tabular}{p{15em}p{15em}} Datum: & .......................................................\\ - & \centering ($student.name$)\\ + & \centering (\studentname)\\ \end{tabular} \end{minipage} $endif$