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 65f52ab..215b9ab 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,13 @@ 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 diff --git a/Beispiel/beispiel.pdf b/Beispiel/beispiel.pdf index b921ff4..be92c6e 100644 Binary files a/Beispiel/beispiel.pdf and b/Beispiel/beispiel.pdf differ diff --git a/Beispiel/beispiel.tex b/Beispiel/beispiel.tex index 4ff340e..408ac8c 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 @@ -200,12 +239,12 @@ Informatik - Prüfung: Freiwillige\_Arbeit } % ---------------------------------------------------------------------------------------------------------- \thispagestyle{empty} \begin{center} - \Huge \textbf{Wilhelm-Büchner-Hochschule} \\ + \includegraphics[max width=\textwidth]{../Bilder/logo.png}\\ \vspace*{2cm} \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 df4c873..6658db5 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,8 @@ logo: hochschule: author: student: - name: + firstname: + lastname: email: strasse: ort: @@ -57,8 +58,11 @@ arbeit: #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 ... ``` @@ -74,30 +78,36 @@ 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 | ### Aufgabenstellung mit einbinden @@ -106,7 +116,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: @@ -116,7 +125,6 @@ assignment: pages: '`1-2`{=latex}' ``` - **Einzelne Seiten** Für einzelne Seiten kann man folgendes schreiben: @@ -139,9 +147,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 b690786..ac6f403 100644 --- a/wbh.tex +++ b/wbh.tex @@ -47,7 +47,6 @@ $endif$ \usepackage[printonlyused]{acronym} \usepackage{subfig} \usepackage{floatflt} -\usepackage[usenames,dvipsnames]{color} \usepackage{colortbl} \usepackage{paralist} \usepackage{array} @@ -58,6 +57,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 @@ -112,8 +167,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$ @@ -234,19 +289,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 @@ -257,7 +308,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} @@ -283,7 +334,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)$ @@ -298,18 +349,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$ @@ -335,9 +386,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)$ @@ -535,7 +598,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. @@ -543,7 +606,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$