GithubHelp home page GithubHelp logo

wbh-community / pandoc-wbh-template Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 6.0 1.86 MB

Pandoc Template für Prüfungsarbeiten an der WBH

License: MIT License

TeX 97.73% Makefile 2.27%
pandoc latex thesis studium hacktoberfest

pandoc-wbh-template's Introduction

Pandoc Vorlage für B-Prüfungen

Pandoc ist ein Programm mit dessen Hilfe man Dateien von einem Format in ein anderes überführen kann. dem man Markdowndateien (und andere Formate) in viele verschiedene Formate überführen kann. Hier findest du die Vorlage zur generierung einer PDF oder eines Latex-Files für B-Prüfungen an der WBH. Es integriert die Vorlage für B-Prüfungen in den Arbeitsablauf für Pandoc.

Vorraussetzuungen

Zur Nutzung dieses Templates werden folgende Tools vorrausgesetzt

  • Pandoc
  • Pandoc-Citeproc
  • Texlive
  • pdflatex

! WICHTIG ! Um einen reibungslosen Ablauf zu gewährleisten ist es notwendig immer die neusten Versionen zu verwenden. Auf Debian, Ubuntu und von dort abgeleiteten Distributionen sind die Texlive und Pandoc versionen stark veraltet und funktionieren daher nicht mit diesem Template.

Installation

Zur installation kannst du das entweder das Git Repository mithilfe von git clone ssh://[email protected]:2244/WBH/pandoc-b_pruefung.git clonen oder die Datei b-pruefung.tex herunterladen. Danach kopierst du die Datei in das Verzeichnis pandoc/data/templates.

Linux:
sudo cp b-pruefung.tex /usr/share/pandoc/data/templates/wbh.tex

Mac:

Windows:
C:\Users\Username\AppData\Roaming\pandoc\templates
Falls der Ordner noch nicht existiert einfach anlegen.

Verwendung

Um alle Felder der Vorlage aus zu füllen musst du die folgenden Zeilen an den Anfang deines Dokumentes einfügen und ausfüllen.

---
title:
date:
logo:
hochschule:
author:
student:
  firstname:
  lastname:
  email:
  strasse:
  ort:
  matrikelnr:
studium:
  studiengang:
  studiengangnr:
  fach:
  fachbereich:
aufgabe:
  typ:
  code:
arbeit:
  typ:
  code:
lang:
#assignment: 
#  file: '`Aufgabenstellung/Aufgabenstellung.pdf`{=latex}'     
#  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
...

Nun kannst du mit hilfe von pandoc -s --template=wbh.tex -o output.pdf input.md dein Markdown file in ein PDF mit der gegeben Vorlage umwandeln.

Alternativ kannst du das Makefile im Ordner Beispiel/ nutzen, dazu einfach "make" eingeben - vorrausgesetzt du hast make installiert bist im richtigen Pfad:

user@machine ~/Documents/pandoc-wbh-template/Beispiel:$ make

Make ist in der Regel Teil des Pakets build-essentials, welches du mit sudo apt-get install build-essential unter Ubuntu/Mint, yum install gcc gcc-c++ kernel-devel makeunter CentOS / RHEL, oder unter Arch mit sudo pacman -Sy base-devel installieren kannst.

Variablen

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
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
studium.studiengang Dein Studiengang ja
studium.studiengangnr Diese findest du unter "Main Studium" SG-Nr. ja
studium.fach In welchem Fach wird die Prüfung bearbeitet ja
studium.fachbereich Um welchen Fachbereich handelt es sich beim Studium ja
aufgabe Informationen zur Studienaufgabe die Bearbeitet wird ja
aufgabe.typ Um welchen Aufgabentyp handelt es sich (B-Aufgabe, Thesis) ja
aufgabe.code 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
titelseite.rand_oben Seitenrand Titelseite oben ja 20mm
titelseite.rand_unten Seitenrand Titelseite unten ja 20mm
titelseite.rand_rechts Seitenrand Titelseite rechts ja 20mm
titelseite.rand_links Seitenrand Titelseite links ja 20mm

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:

assignment: 
  file: '`Aufgabenstellung/Aufgabenstellung_1.pdf`{=latex}'     
  pages: '`1-2`{=latex}'  

Einzelne Seiten

Für einzelne Seiten kann man folgendes schreiben:

assignment: 
  file: '`Aufgabenstellung/Aufgabenstellung_1.pdf`{=latex}'     
  pages: '`-`{=latex}'  

Bereich (Range)

Eine Range kann durch {x-y} angegeben werden.

#assignment: 
#  file: '`Aufgabenstellung/Aufgabenstellung.pdf`{=latex}'     
#  pages: '`{1-2}`{=latex}'  

Dabei unbedingt die einfachen Anführungszeichen drin lassen. Eine Range kann leider nicht angegeben

Weitere Hinweise stehen in der Dokumentation 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 beides gesetzt sein, so wird gar nichts ausgegeben.

Abkürzungen / Acronyms

Beispiel für acronyms.yaml

acronym:
    longest: 3gpp
    list:
        -   id: 3gpp
            short: 3GPP
            long: 3rd Generation Partnership Project   
        -   id: bss
            short: BSS
            long: Base Station Subsystem    
        -   id: imsi
            short: IMSI
            shortplural: IMSIs
            long: International Mobile Subscriber Identity
            longplural: International Mobile Subscriber Identities                

Die acronyms.yaml wird Pandoc mittels des Commandline Switches --metadata-file=acronyms.yaml bekannt gemacht. Im Beispiel Makefile ist ein Beispiel Target wbh_acronyms welches die Verwendung zeigt.

Verwendung im Markdown dann mit

\acl{3gpp}  %% Lang
\acs{3gpp}  %% Kurz
\acp{imsi}  %% Lang Plural 
\acsp{3gpp} %% Kurz Plural

Bei den Pluralen ist zu beachten, dass wenn kein Plural definiert ist (siehe acronyms.yaml Beispiel), dass einfach ein "s" angehangen wird.

Für mehr Info über Acronyme, siehe Dokumentation LaTeX acronym Package

ToDo

  • Codeblock mit Linenumbers
  • Installationsanleitung
  • metadata.yaml
  • defaults.yaml

pandoc-wbh-template's People

Contributors

aslmx avatar kreativmonkey avatar ruedigerblock avatar shyning avatar waldemarcoding avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pandoc-wbh-template's Issues

Titlepage are not Centered

Die Titelseite ist nicht ganz Zentriert, dies liegt vermutlich am eingestellten Rand. Evtl. könnte man den für die Titelseite "normal" einstellen?

Titlepage Logo max size

The size of the logo for the front page should have a minimum and maximum size to give the recipient the best look of the front page.

PDF issues

  • Übersicht der Kapitel im PDF viewer wird nicht angezeigt
  • Seiten mit römischen Ziffern werden als Seitenanzahl eingeblendet, evtl. lässt sich das beheben (wie in einigen Studienheften!)

Beispiel aus meinem Viewer:

grafik

Die aufgerufene Seite ist 39, im PDF ist es das Blatt 45 von 72.

Betreuer fehlt!

Es fehlt noch eine möglichkeit einen oder mehrere Betreuer hinzuzufügen.

Link Quotes

Zumindest bei meinem Zitationsstiel werden die Zitate nicht mit dem Literaturverzeichnis verlinkt.

Include task sheet PDF

Um ein PDF mit angehängtem oder vorangestellten (müsste man klären) Aufgabenblatt zu erhalten wäre es cool eine Variable zu integrieren die das ermöglicht. Wie das geht steht hier: https://stackoverflow.com/a/2739710

Variable könnte alse sowas wie "task-sheet" oder "include-tasks" heißen.

pandoc autogenerated header

reminder: wbh.tex braucht folgenden code

% --------------------------------------------------------------
% Include pandoc autogenerated headers
% --------------------------------------------------------------
$for(header-includes)$
$header-includes$
$endfor$


% --------------------------------------------------------------
% begin document
% --------------------------------------------------------------
\begin{document}

damit on the fly von filtern (z.b. pandoc-crossref) header eingefügt werden können.

Install instruction improvement

Erweiterung der Installationsanleitung für Windows und Mac. Evtl. auch mit einem kleinen Installationsskript dore der Anleitung zum einfachen Updaten...

Code cleanup

The code needs to be cleaned up and better documented.

Silbentrennung

Es gibt in Wissenschaftlichen Texten oft eine Mischung aus verschiedenen Sprachen und neuen Wortschöpfungen. Diese können von Latex nicht immer korrekt getrennt werden. Hierzu müssen die Worttrennungen zu beginn bekannt gegeben werden um Fehler im Dokument zu vermeiden.

\hyphenation{Bea-con Blue-tooth Untrennbar}

wäre solch eine bekanntgabe. Hierzu sollten wir uns noch überlegen wie man das umsetzen kann, evtl. wie mit den Acronymen?

language support for siunitx

The language support for siunitx package actually not supported! That is necessary to get the right markup for the units

Engish 2.45 GHz
Deutsch 2,45 GHz

Adding Highlight for Math solution

Es sieht eigentlich immer ganz nett aus bei einer langen Rechnung das Ergebniss und Zwischenergebnis zu unterstreichen. Hierfür könnten wir noch ein Kommando erzeugen welches man mit diesem Template nutzen kann.

Sperrvermerk

Es fehlt noch die Option den sperrvermerk mit ein zu binden. Der exakte Wortlaut ist im Leitfaden zu finden.

Einhaltung der Leitlinie

Format

  • Format DIN A4
  • Einseitiges Bedrucken (nicht unsere Baustelle)
  • #38
  • #39
  • rechter Rand 4cm (Korrekturrand)
  • #28
  • #27
  • Titelseite nicht nummeriert
  • Inhaltsverzeichnisse, Tabellen- Abkürzungs- und Abbildungsverzeichnisse müssen römisch nummeriert sein
  • Textteil muss arabisch, fortlaufend Nummeriert sein
  • Inhaltsverzeichnis vor dem Text
  • #29
  • #41

Titelseite

  • #30
  • Prüfender Hochschuhllehrer (Betreuer)
  • Das Fach
  • Titel
  • Fachbereich
  • Addresse der Hochschule
  • Betreuer (Array)

Balzert Vorgaben

  • Nach der DIN 1421 sollen in Inhaltsverzeichnissen (Überschrift: »Inhalt«) alle Abschnitts- bzw. Kapitelnummern an derselben Fluchtlinie beginnen.
  • Inhaltsübersicht und Inhaltsverzeichnis selbst werden nicht aufgelistet (Balzert S. 113 Kapitel 8.9 Inhaltsübersicht und Inhaltsverzeichnis)
  • [ ]

pandoc-fignos packages

Reminder

\usepackage{hyperref} % for pandoc-fignos
\usepackage{cleveref} % for pandoc-fignos

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.