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 c6037cc..d31fe6d 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,16 +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}' - -# Optionale Seitenrändereinstellungen -seite: - rand_oben: 20mm - rand_unten: 20mm - rand_links: 30mm - rand_rechts: 40mm +assignment: + file: '`Aufgabenstellung/Aufgabenstellung.pdf`{=latex}' + beforetitle: 1 + pages: '`2-`{=latex}' + fillform: 1 + multipage: 1 ... # Einführungauthor diff --git a/Beispiel/beispiel.pdf b/Beispiel/beispiel.pdf deleted file mode 100644 index 30d6887..0000000 Binary files a/Beispiel/beispiel.pdf and /dev/null differ diff --git a/Beispiel/beispiel.tex b/Beispiel/beispiel.tex index 3ffc78a..0c813dd 100644 --- a/Beispiel/beispiel.tex +++ b/Beispiel/beispiel.tex @@ -23,7 +23,7 @@ %\usepackage[utf8]{inputenc} - +\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 @@ -36,7 +36,6 @@ \usepackage[printonlyused]{acronym} \usepackage{subfig} \usepackage{floatflt} -\usepackage[usenames,dvipsnames]{color} \usepackage{colortbl} \usepackage{paralist} \usepackage{array} @@ -47,6 +46,49 @@ \usepackage{graphicx} \usepackage[export]{adjustbox} % also loads graphicx, to have max width for graphics \usepackage{pdfpages} +\usepackage{tikz} + + +% ---------------------------------------------------------------------------------------------------------- +% Firstname + Lastname +% ---------------------------------------------------------------------------------------------------------- + +% Firstname is set, assume name is Firstnaem + Lastname +\def \studentname{Sebastian Preisner} + +% ---------------------------------------------------------------------------------------------------------- +% Aufgabenstellung +% ---------------------------------------------------------------------------------------------------------- +% Debug: +% include: file: Aufgabenstellung/Aufgabenstellung.pdf pages: 2- + +\def \assignment{ + +% Regular include for historic reasons +%------------------ +% include assignment is on +% \includepdf[pages=2-]{Aufgabenstellung/Aufgabenstellung.pdf} +% New include for historic reasons +%------------------ + +% check if assignment.file is set at all +% check if form shall be filled out +\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] {Sebastian}; +\node at (95,-34) [info] {Preisner}; +\node at (34,-47) [info] {Hilpertstr. 31}; +\node at (95,-47) [info] {64295 Darmstadt}; +\node at (34,-59) [info] {900266}; +\node at (95,-59) [info] {1140}; +\end{tikzpicture}}, pages=1]{Aufgabenstellung/Aufgabenstellung.pdf} + % check if we need to include the rest of the document +\includepdf[pages=2-]{Aufgabenstellung/Aufgabenstellung.pdf} % Include rest of document + +} + \usepackage{multirow} @@ -73,7 +115,7 @@ pdffitwindow=false, pdfstartview={FitH}, pdftitle={Pandoc und Markdown für deine -Texte: Freiwillige\_Arbeit - Sebastian Preisner}, +Texte: Freiwillige\_Arbeit- \studentname}, pdfauthor={Sebastian Preisner, Matrikelnummer: 900266}, pdfsubject={Studiengang: Technische Informatik}, pdfcreator={\LaTeX\ with package \flqq hyperref\frqq via pandoc}, @@ -160,14 +202,11 @@ Texte: Freiwillige\_Arbeit - Sebastian Preisner}, \begin{document} -% ---------------------------------------------------------------------------------------------------------- -% Aufgabenstellung -% ---------------------------------------------------------------------------------------------------------- -% Debug: -% include: file: pages: - %include assignment was off - +% +% Assignment +% ------------------- +\assignment % ---------------------------------------------------------------------------------------------------------- % Kopf und Fußzeile @@ -205,7 +244,7 @@ Informatik - Prüfung: Freiwillige\_Arbeit } \Large \textbf{Studiengang:}\\ \textbf{Technische Informatik}\\ - \vspace*{2cm} + \vspace*{1cm} \Huge \textbf{}\\ \vspace*{0.5cm} @@ -213,16 +252,18 @@ Informatik - Prüfung: Freiwillige\_Arbeit } \vspace*{0.3cm} \large Freiwillige\_Arbeit \\ - \vspace*{1cm} + \vspace*{0.5cm} \textbf{Freizeitgestaltung}\\ - \vspace*{1cm} + \vspace*{0.5cm} \vfill \normalsize \newcolumntype{x}[1]{>{\raggedleft\arraybackslash\hspace{0pt}}p{#1}} \begin{tabular}{x{6cm}p{7.5cm}} - \rule{0mm}{5ex}\textbf{Student:} & Sebastian Preisner - \newline wbh@calyrium.org + \rule{0mm}{5ex}\textbf{Student:} & \studentname + \newline Hilpertstr. 31 + \newline 64295 Darmstadt + \newline wbh@calyrium.org \\ \rule{0mm}{5ex}\textbf{Matrikelnummer:} & 900266 \\ \rule{0mm}{5ex}\textbf{Abgabedatum:} & 08.06.2017 \\ @@ -230,9 +271,15 @@ Informatik - Prüfung: Freiwillige\_Arbeit } \end{center} \pagebreak +% ---------------------------------------------------------------------------------------------------------- +% Assignment +% ---------------------------------------------------------------------------------------------------------- + + + % Skip first page count, if skipfirstpage = 1 - \clearpage - \setcounter{page}{1} +\clearpage +\setcounter{page}{1} diff --git a/README.md b/README.md index d237fe5..8f15ed1 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,8 @@ logo: hochschule: author: student: - name: + firstname: + lastname: email: strasse: ort: @@ -56,10 +57,11 @@ arbeit: code: #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 @@ -81,44 +83,46 @@ 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 | de | -| logo | Der Pfad zum Logo (Standard ./Bilder/logo.png) | ja | Pfad zum Bild | -| hochschule | Name der Hochschule | ja | | -| 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 | 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 Das Template erlaubt es, durch setzen der Variablen im Block `assignment`, die Aufgabenstellung mit einzubinden und vor das eigentliche PDF zu stellen. Das Inhaltsverzeichnis der Lösung bleibt dabei korrekt erhalten, anders als es teilweise passieren kann wenn man die PDFs nachträglich zusammengesetzt werden. 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: @@ -128,7 +132,6 @@ assignment: pages: '`1-2`{=latex}' ``` - **Einzelne Seiten** Für einzelne Seiten kann man folgendes schreiben: @@ -151,9 +154,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 c0ff835..fc44c06 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 @@ -43,7 +43,6 @@ $endif$ \usepackage[printonlyused]{acronym} \usepackage{subfig} \usepackage{floatflt} -\usepackage[usenames,dvipsnames]{color} \usepackage{colortbl} \usepackage{paralist} \usepackage{array} @@ -54,6 +53,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 @@ -108,8 +163,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$ @@ -230,19 +285,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 @@ -253,7 +304,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} @@ -279,7 +330,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)$ @@ -294,18 +345,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$ @@ -331,9 +382,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)$ @@ -531,7 +594,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. @@ -539,7 +602,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$