You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

413 lines
15 KiB
TeX

% TeX für WBH B-Prüfungen
\documentclass[12pt,a4paper,bibliography=totocnumbered,listof=totocnumbered]{scrartcl}
% Support German annotation
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
% Symbols:
% Pandoc imports the extensive `amsmath` collection of symbols
% for typesetting ordinary math.
\usepackage{amsmath}
% if you use exotic symbols you need to import specific packages, eg. for
% electrical engineering diagrams, musical notation, exotic currency symbols,
% the unspeakable rites of freemasonry etc.
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{tabularx}
\usepackage{geometry}
\usepackage{setspace}
\usepackage[right]{eurosym}
\usepackage[printonlyused]{acronym}
\usepackage{subfig}
\usepackage{floatflt}
\usepackage[usenames,dvipsnames]{color}
\usepackage{colortbl}
\usepackage{paralist}
\usepackage{array}
\usepackage{titlesec}
\usepackage{parskip}
\usepackage[right]{eurosym}
%\usepackage{picins}
\usepackage[subfigure,titles]{tocloft}
\usepackage[pdfpagelabels=true]{hyperref}
\usepackage{helvet}
% This two Packages are needet for Pandoc Table support. Issue is opened: https://github.com/jgm/pandoc/issues/1023
\usepackage{longtable}
\usepackage{booktabs}
% blockquote
\definecolor{blockquote-border}{RGB}{221,221,221}
\definecolor{blockquote-text}{RGB}{119,119,119}
\usepackage{mdframed}
\newmdenv[rightline=false,bottomline=false,topline=false,linewidth=3pt,linecolor=blockquote-border,skipabove=\parskip]{customblockquote}
\renewenvironment{quote}{\begin{customblockquote}\list{}{\rightmargin=0em\leftmargin=0em}%
\item\relax\color{blockquote-text}\ignorespaces}{\unskip\unskip\endlist\end{customblockquote}}
% Syntax Highligting with colors
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\newenvironment{Shaded}{}{}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
\newcommand{\ImportTok}[1]{#1}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}}
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
\newcommand{\BuiltInTok}[1]{#1}
\newcommand{\ExtensionTok}[1]{#1}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
\newcommand{\RegionMarkerTok}[1]{#1}
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\NormalTok}[1]{#1}
\usepackage{listings}
\lstset{basicstyle=\footnotesize, captionpos=b, breaklines=true, showstringspaces=false, tabsize=2, frame=lines, numbers=left, numberstyle=\tiny, xleftmargin=2em, framexleftmargin=2em}
\makeatletter
\def\l@lstlisting#1#2{\@dottedtocline{1}{0em}{1em}{\hspace{1,5em} Lst. #1}{#2}}
\makeatother
\geometry{a4paper, top=27mm, left=20mm, right=40mm, bottom=35mm, headsep=10mm, footskip=12mm} % Vorgabe des 4cm Rand auf der rechten Seiten.
\hypersetup{unicode=false, pdftoolbar=true, pdfmenubar=true, pdffitwindow=false, pdfstartview={FitH},
pdftitle={Pandoc und Markdown für deine Texte: Freiwillige\_Arbeit - },
pdfauthor={Sebastian Preisner, Matrikelnummer: 900266},
pdfsubject={Studiengang: Technische Informatike},
pdfcreator={\LaTeX\ with package \flqq hyperref\frqq},
pdfproducer={pdfTeX \the\pdftexversion.\pdftexrevision},
pdfkeywords={B-Prüfung, 900266, Freiwillige\_Arbeit },
pdfnewwindow=true,
pdflang=de,
pdfdisplaydoctitle=true,
colorlinks=true,
linkcolor=black,
citecolor=gray,
filecolor=magenta,
urlcolor=black}
% \pdfinfo{/CreationDate (D:20170605133321)}
\renewcommand{\familydefault}{\sfdefault}
% Pandoc tightlisting
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\begin{document}
\titlespacing{\section}{0pt}{12pt plus 4pt minus 2pt}{-6pt plus 2pt minus 2pt}
% ----------------------------------------------------------------------------------------------------------
% Kopf und Fußzeile
% ----------------------------------------------------------------------------------------------------------
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\leftmark}{\rightmark}
\pagestyle{fancy}
\lhead{}
\chead{}
\rhead{\thesection\space\contentsname}
\lfoot{\tiny B-Prüfung des Studenten: Sebastian Preisner (Matrikelnr.: 900266) Studiengang: Technische Informatike - Prüfung: Freiwillige\_Arbeit }
\cfoot{}
\rfoot{\ \linebreak Seite \thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
% Vorspann
\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\theHsection}{\Roman{section}}
\pagenumbering{Roman}
% Pagebreak after each Section
\let\oldsection\section
\renewcommand\section{\clearpage\oldsection}
% ----------------------------------------------------------------------------------------------------------
% Titelseite
% ----------------------------------------------------------------------------------------------------------
\thispagestyle{empty}
\begin{center}
\vspace*{2cm}
\Large
\textbf{Studiengang:}\\
\textbf{Technische Informatike}\\
\vspace*{2cm}
\Huge
\textbf{}\\
\vspace*{0.5cm}
\textbf{Pandoc und Markdown für deine Texte} \\
\vspace*{0.3cm}
\large
Freiwillige\_Arbeit \\
\vspace*{1cm}
\textbf{Freizeitgestaltung}\\
\vspace*{2cm}
\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{Matrikelnummer:} & 900266 \\
\rule{0mm}{5ex}\textbf{Abgabedatum:} & 08.06.2017 \\
\end{tabular}
\end{center}
\pagebreak
% ----------------------------------------------------------------------------------------------------------
% Content
% ----------------------------------------------------------------------------------------------------------
{
\setcounter{tocdepth}{3}
% ----------------------------------------------------------------------------------------------------------
% Verzeichnisse
% ----------------------------------------------------------------------------------------------------------
% TODO Typ vor Nummer
\renewcommand{\cfttabpresnum}{Tab. }
\renewcommand{\cftfigpresnum}{Abb. }
\settowidth{\cfttabnumwidth}{Abb. 10\quad}
\settowidth{\cftfignumwidth}{Abb. 10\quad}
\titlespacing{\section}{0pt}{12pt plus 4pt minus 2pt}{2pt plus 2pt minus 2pt}
\singlespacing
\rhead{INHALTSVERZEICHNIS}
\renewcommand{\contentsname}{I Inhaltsverzeichnis}
\phantomsection
\addcontentsline{toc}{section}{\texorpdfstring{I \hspace{0.35em}Inhaltsverzeichnis}{Inhaltsverzeichnis}}
\addtocounter{section}{1}
\tableofcontents
\pagebreak
}
% ----------------------------------------------------------------------------------------------------------
% Inhalt
% ----------------------------------------------------------------------------------------------------------
% Abstände Überschrift
\titlespacing{\section}{0pt}{12pt plus 4pt minus 2pt}{-6pt plus 2pt minus 2pt}
\titlespacing{\subsection}{0pt}{12pt plus 4pt minus 2pt}{-6pt plus 2pt minus 2pt}
\titlespacing{\subsubsection}{0pt}{12pt plus 4pt minus 2pt}{-6pt plus 2pt minus 2pt}
% Kopfzeile
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\subsectionmark}[1]{}
\renewcommand{\subsubsectionmark}[1]{}
\lhead{Abschnitt \thesection}
\rhead{} %hier kann die rechte Seite der Kopfzeile editiert werden!
\onehalfspacing
\renewcommand{\thesection}{\arabic{section}}
\renewcommand{\theHsection}{\arabic{section}}
\setcounter{section}{0}
\pagenumbering{arabic}
\setcounter{page}{1}
\hypertarget{einfuxfchrung}{%
\section{Einführung}\label{einfuxfchrung}}
Im Folgenden möchte ich dir Pandoc und Markdown näher bringen und dir
zeigen wieso du in Zukunft nur noch so schreiben möchtest. Dabei werde
ich zunächst ein grobes Bild von Pandoc und Markdown zeichnen und dir im
weiteren Verlauf die Installation und den Einsatz näher bringen und zum
Schluss gehe ich nochmal speziell auf diese Vorlage für Pandoc ein.
\hypertarget{was-ist-markdown}{%
\subsection{Was ist Markdown?}\label{was-ist-markdown}}
Markdown ist eine Auszeichnungssprache und wurde maßgeblich von den
frühen Text-E-Mails beeinflusst. Zu Zeiten wo man noch keine E-Mails mit
Überschriften, kursiver und fettgedruckter Schrift usw. verfassen konnte
musste man sich anderweitig behelfen. Das Ziel von Markdown ist die
Lesbarkeit und einfache Schreibbarkeit von Texten. Das ermöglicht dem
Schreiber eine hohe Konzentration auf den Text und wenig ablenkung durch
Formatierungen verglichen WISIWYG (What you see is what you get)
Editoren wie Microsoft Word. Zur Veranschaulischung möchte ich dir hier
kruz ein paar Formatierungen im Dokument zeigen:
\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{# Überschrift 1. Grades}
\FunctionTok{## Überschrift 2. Grades}
\NormalTok{* }\FloatTok{Listenpunkt 1}
\FloatTok{* Listenpunkt 2}
\FloatTok{* Listenpunkt 3}
\NormalTok{Ich bin ein Text mit *kursiven* und **fetten** Elementen.}
\end{Highlighting}
\end{Shaded}
Anhand dieses Beispiels kann man sehen wie einfach das Schreiben von
Markdown ist. Nun wirst du dir sicherlich denken was dir diese
einfachheit bringt wenn dein Dokument aber aussieht wie E-Mails vor 10
Jahren. Die Antwort darauf ist, das sich in den ganzen Jahren viele
Parser für Markdown entwickelt haben welche die einfache Syntax nutzen
um perfekt Formatierte Texte zu erstellen. Eines dieser Tools und noch
dazu das wohl mächtigste, ist Pandoc.
\hypertarget{was-ist-pandoc}{%
\subsection{Was ist Pandoc?}\label{was-ist-pandoc}}
\href{http://pandoc.org/}{Pandoc} ist ein Übersetzer der eine Datei von
einem Markup in ein anderes übersetzt. Markup ist das englische Wort für
Auszeichnung und steht für eine maschinenlesbare Sprache für die
Gliederung und Formatierung von Texten und Daten. Der bekannteste
Vertreter ist sicherlich die Hypertext Markup Language (HTML), die
Kernsprache des World Wide Webs. Pandoc bassiert hierbei auf einer
erweiterten Variante der Auszeichnungssprache Markdown.
Im folgenden findest du einige input Formate die von Pandoc unterstützt
werden. Eine volle liste findest du auf der Webseite von
\href{http://pandoc.org/}{Pandoc}.
\begin{itemize}
\tightlist
\item
Markdown
\item
CommonMark
\item
LaTeX
\item
textil
\item
HTML
\item
EPUB
\item
LibreOffice/OpenOffice (odt)
\item
Microsoft Word DOCX (OOXML)
\item
Mediawiki
\item
DocBook
\end{itemize}
Alle diese Formate unterstützt Pandoc auch für den Export und
zusätzlich:
\begin{itemize}
\tightlist
\item
PDF via LaTeX
\item
Dokumentationsformate: DocBook, GNU TexInfo, Groff manpages
\item
HTML5, XHTML
\item
AsciiDoc
\end{itemize}
\hypertarget{wieso-sollte-ich-pandoc-einsetzen}{%
\subsection{Wieso sollte ich Pandoc
einsetzen?}\label{wieso-sollte-ich-pandoc-einsetzen}}
Hierfür gibt es viele gute Argumente. Zum einen kannst du deine
geschriebene Arbeit
\hypertarget{installation-und-einrichtung}{%
\section{Installation und
Einrichtung}\label{installation-und-einrichtung}}
In diesem Kapitel geht es um die Installation und die Einrichtung der
Tools. Da ich persönlich kein Windows besitze richtet sich die Anleitung
ausschließlich an Linux nutzer. Ich würde mich jedoch über ergänzende
Beiträge freuen.
\hypertarget{markdown}{%
\subsection{Markdown}\label{markdown}}
Da Markdown lediglich eine Auszeichnungssprache ist benötigst du
eigentlich nichts außer einen Texteditor. Diesen findet man unter allen
gängigen Betriebssystemen. Auch auf der Konsole oder in diversen
Webeditoren lässt sich Markdown schreiben (z.B. in einer E-Mail bei
einem Mailprovider). Du merkst, durch die Einfachheit ist dir bei der
Bearbeiten von Texten absolut keine grenze gesetzt und du wirst keine
Probleme haben das Dokument auf irgend einem deiner Endgeräte (z.B.
Computer, Laptop, Smartphone) zu öffnen und zu bearbeiten. Selbst auf
der Arbeit sollte es für dich möglich sein (sofern du die Datei auf den
Computer drauf und auch wieder herrunter bekommst, kläre dies bitte
vorher mit deinem Arbeitgeber) deine Arbeiten zu vervollständigen.
Als Hilfe gibt es jedoch eine lange Liste an Markdown Editoren die dir,
meist in einem Splitscreen, das Ergebnis direkt anzeigen. Den größten
mir bekannten Umfang bietet ganz klar Atom, dabei handelt es sich nicht
um einen reinen Markdown Editor sondern um eine Texteditor der mit
vielen zusätzlichen Plugins erweitert werden kann. Er ist OpenSource und
steht für alle Plattformen zur verfügung.
\hypertarget{pandoc}{%
\subsection{Pandoc}\label{pandoc}}
Pandoc findest du in den gängigen Linux Distributionen in deren
Repositories. Den Befehl zur Installtion für einige Distributionen
findest du in der folgenden Box. Um Dateien in ein PDF Übersetzen zu
können benötigt Pandoc noch LaTeX. Die LaTeX Umgebung ist sehr groß, wer
also auf Speicherplatz achten muss, dem empfehle ich sich mit den
benötigten Packeten auseinander zu setzen. Ansonsten ist eine volle
Installation von LaTeX der einfachste Weg.
\begin{Shaded}
\begin{Highlighting}[]
\CommentTok{# Ubuntu, Kubuntu, Mint}
\FunctionTok{sudo}\NormalTok{ apt-get install pandoc}
\CommentTok{# Fedora}
\ExtensionTok{yum}\NormalTok{ install pandoc}
\CommentTok{# Archlinux}
\ExtensionTok{pacman}\NormalTok{ -S pandoc}
\end{Highlighting}
\end{Shaded}
Eine grafische Oberfläche wirst du bei Pandoc nicht finden, das Programm
wird mit Hilfe von Befehlen auf der Konsole bedient. Da es sich um einen
Übersetzer handelt ist dies aber kein Problem denn alle Einstellungen
lassen sich Bequem in Textfom fomulieren. Wie das geht werde ich dir im
nächsten Kapitel zeigen. Zunächst kannst du jedoch mit dem Befehl
\texttt{pandoc\ -v} die installierte Version erfragen.
\end{document}