-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathZiele-md.tex
1385 lines (1092 loc) · 47.2 KB
/
Ziele-md.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
\documentclass[11pt,ngerman,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
% use microtype if available
\IfFileExists{microtype.sty}{\usepackage{microtype}}{}
\ifxetex
\usepackage{fontspec,xltxtra,xunicode}
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\newcommand{\euro}{€}
\usepackage{polyglossia} % -ak-
\setmainlanguage{german} % -ak-
\else
\ifluatex
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\usepackage[ngerman]{babel} % -ak-
\newcommand{\euro}{€}
\else
\usepackage[utf8]{inputenc}
\usepackage[TS1,T1]{fontenc} % -ak- T1 für \textdblquotedown
% \usepackage{lmodern} % -ak-
\usepackage[ngerman]{babel} % -ak-
\usepackage{eurosym}
\fi
\fi
\usepackage[margin=1in]{geometry}
\usepackage{biblatex}
\bibliography{Ziele-md}
\usepackage{xcolor}
\usepackage{listings}
\lstdefinestyle{DTKlstBase}{%
basicstyle=\small\ttfamily,
basewidth=0.55em,
keepspaces,
identifierstyle=\color{black},
keywordstyle=\color{black},
stringstyle=\itshape\color{black},
commentstyle=\itshape\color{black},
columns=fullflexible,
tabsize=2,
frame=single,
extendedchars=true,
showspaces=false,
showstringspaces=false,
breaklines=true,
breakindent=0.5em,
backgroundcolor=\color{black!5},
breakautoindent=true,
captionpos=t,
aboveskip=\medskipamount,
belowskip=\medskipamount,
xrightmargin=\fboxsep,
emphstyle=\DTK@lst@colorbox{lightgray},
prebreak=,
postbreak=\mbox{\ensuremath{\hookrightarrow}},
literate={ä}{{\"a}}1
{ö}{{\"o}}1
{ü}{{\"u}}1
{Ä}{{\"A}}1
{Ö}{{\"O}}1
{Ü}{{\"U}}1
{ß}{\ss}1
{”}{''}1
{“}{\grqq}1
{„}{\glqq}1
}
\lstdefinestyle{DTKlstNoNumber}{%
style=DTKlstBase,
numbers=none,
xleftmargin=\fboxsep,
}
\let\verbatim=\relax
\lstnewenvironment{verbatim}
{\lstset{language={},style=DTKlstNoNumber}}
{}
\ifxetex
\usepackage[setpagesize=false, % page size defined by xetex
unicode=false, % unicode breaks when used with xetex
xetex]{hyperref}
\else
\usepackage[unicode=true]{hyperref}
\fi
\hypersetup{breaklinks=true,
bookmarks=true,
pdfauthor={Axel Kielhorn},
pdftitle={Viele Ziele Veröffentlichung},
colorlinks=true,
urlcolor=blue,
linkcolor=magenta,
pdfborder={0 0 0}}
\urlstyle{same} % don't use monospace font for urls
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\setlength{\emergencystretch}{1em} % prevent overfull lines
\setcounter{secnumdepth}{0}
\title{Viele Ziele Veröffentlichung}
\author{Axel Kielhorn}
\date{2014-02-08}
\usepackage{csquotes}
\begin{document}
\maketitle
\section{Anmerkung}\label{anmerkung}
Dieser Artikel wurde ursprünglich für die dante Vereinszeitschrift
\enquote{Die TeXnische Komödie} 3/2011 in LaTeX geschrieben. Eine
englische Übersetzung erschien im \enquote{TUGboat} Volume 32 (2011),
No. 3.
Mit dem Erscheinen von pandoc 1.9 wurde er nach \texttt{markdown}
konvertiert. Durch eine angepasste \texttt{template} Datei wird das
Aussehen des Originalartikels nachgebildet.
Die aktuelle Version beschreibt pandoc 1.12.
\section{Ein Weg führt zu einem
Ziel}\label{ein-weg-fuxfchrt-zu-einem-ziel}
Bisher war das Ziel meiner Veröffentlichungen immer Papier: DIN~A4,
DIN~A5 oder auch mal 9~cm $\times$ 12~cm. Auf dem Weg dahin entstand
immer eine PDF-Datei, daher lag es nahe, diese am Bildschirm zu lesen,
was zumindest bei DIN~A5 bequem möglich ist.
Doch dann kamen die Mobilgeräte. Einige davon können auch PDF anzeigen
und mit etwas Aufwand kann man den Text so formatieren, das er auf
\emph{einem} Mobilgerät mit wenig scrollen lesbar ist.
Günstiger wäre natürlich ein Format, bei dem der Leser die Textgröße
bestimmen kann und das Gerät den Text passend zur Anzeigengröße
umbricht. Ein solches Format ist z. B. ePUB. Im Prinzip ist das nichts
anderes als ein ZIP-Archiv mit einer definierten Struktur und ein paar
XML-Dateien, die den eigentlichen Text enthalten. Das Aussehen kann
durch eine css-Datei gesteuert werden.
\section{Eine Umleitung}\label{eine-umleitung}
Zum Glück gibt es ein Programm, das LaTeX~lesen und ePUB schreiben kann:
pandoc\autocite{pandoc}\footnote{pandoc ist unter GPL lizensiert.}. Wenn
die LaTeX-Datei nicht zu kompliziert ist, kann pandoc sie verstehen und
konvertieren. Aber was ist zu kompliziert? Am einfachsten konvertiert
man ein Dokument von LaTeX~nach LaTeX~und sieht was übrig bleibt.
\begin{verbatim}
pandoc -f latex -t latex --template=./default-de.latex
-o quelle-pd.tex quelle.tex
\end{verbatim}
Dieser Befehl benutzt eine an die deutsche Sprache angepasste Version
der Standardvorlage \texttt{default.latex} um eine neue LaTeX-Datei zu
erstellen.\footnote{Das Begleitmaterial zu diesem Artikel befindet sich
auf
\url{https://github.com/AKielhorn/Markdown-Intro/blob/master/Ziele.zip}}
\subsection{Die Steine auf dem Weg}\label{die-steine-auf-dem-weg}
Pandoc arbeitet mit UTF-8 Dateien. Latin-1 Texte lassen sich leicht
konvertieren, Umlaute gemäß \texttt{german.sty} gehen jedoch verloren.
Auch TeX-Akzente \texttt{\textbackslash{}\^{}o} oder
Einbuchstabenbefehle \texttt{\textbackslash{}o} führen manchmal zu
Problemen. Das lässt sich aber mit ein paar Zeilen \texttt{sed} beheben
(siehe Abschnitt Reisevorbereitung).
Einfache Auszeichnungsbefehle für \textbf{fett} und \emph{kursiv} werden
unterstützt, doch schon beim geschachteltem
\texttt{\textbackslash{}emph} ist Schluss.
\section{Ein neuer Anfang}\label{ein-neuer-anfang}
Steht die LaTeX-Datei wirklich am Anfang? Oder sollten wir nicht lieber
LaTeX~als \emph{ein} Backend verstehen und die LaTeX-Datei somit nur als
ein Zwischenprodukt?
\section{Eine ungewöhnliche Richtung: Markdown statt
markup}\label{eine-ungewuxf6hnliche-richtung-markdown-statt-markup}
Markdown ist eine von John Gruber\autocite{gruber} entwickelte
Auszeichnungssprache, die so aussieht, als ob sie keine Auszeichnungen
enthält:
\begin{quote}
A Markdown-formatted document should be publishable as-is, as plain
text, without looking like it's been marked up with tags or formatting
instructions.
\end{quote}
Der Anfang dieses Artikels sieht in Markdown so aus:
\begin{verbatim}
# Ein Weg führt zu einem Ziel
Bisher war das Ziel meiner Veröffentlichungen immer Papier: DIN
A4, DIN A5 oder auch mal 9 cm $\times$ 12 cm. Auf dem Weg dahin
entstand immer eine PDF-Datei, daher lag es nahe, diese am
Bildschirm zu lesen, was zumindest bei DIN A5 bequem möglich
ist.
Doch dann kamen die Mobilgeräte. Einige davon können auch PDF
anzeigen und mit etwas Aufwand kann man den Text so formatieren,
das er auf *einem* Mobilgerät mit wenig scrollen lesbar ist.
\end{verbatim}
Dieser Text wurde mit dem Befehl
\begin{verbatim}
pandoc -f latex -t markdown -o Ziele.md Ziele.tex
\end{verbatim}
direkt aus der LaTeX-Datei erzeugt.
Markdown ist eine sehr eingeschränkte Sprache, die Manpage, die den
Sprachumfang beschreibt ist nur 16 Seiten lang. Im Vergleich dazu ist
l2kurz dreimal so lang und kratzt gerade mal an der Oberfläche von
LaTeX.
Bei der Konvertierung von LaTeX~zu Markdown sollte man beachten, das
pandoc kein TeX~versteht. Es nutzt Reguläre Ausdrücke um LaTeX~zu
interpretieren. Das hat zur Folge, das bei einigen Befehlen zusätzliche
Leerzeilen erforderlich sind, damit pandoc die Befehle von normalem Text
unterscheiden kann.
\section{Auf neuem Weg zum alten Ziel: PDF aus Markdown über
LaTeX}\label{auf-neuem-weg-zum-alten-ziel-pdf-aus-markdown-uxfcber-latex}
\begin{verbatim}
pandoc -f markdown -t latex --template=./default-de.latex
-o quelle.tex quelle.md
\end{verbatim}
\subsection{Die \texttt{default-de.latex}
Dateien}\label{die-default-de.latex-dateien}
Die mitgelieferte \texttt{default.latex} Datei ist eine Minimalversion.
Für deutsche Texte empfiehlt sich die erweiterte
\texttt{defaut-de.latex} Datei, die im
Begleitmaterial~\autocite{Ziele-git} zu finden ist. Die Änderungen zur
Originalversion sind durch ein \texttt{-ak-} gekennzeichnet.
Seit Version 1.9 liefert Pandoc eine universelle Template-Datei mit.
Diese kann durch zuweisen einer Variablem auf die gewünschte Sprache
eingestellt werden. Das Argument ist hier eine von \texttt{babel}
unterstützte Sprache.
\begin{verbatim}
pandoc -f markdown -t latex -V lang=ngerman -s
-o quelle.tex quelle.md
\end{verbatim}
In diesem Fall muss pandoc mit der Option \texttt{-s} (standalone)
mitgeteilt werden, das ein vollständiges Dokument erstellt werden soll.
Leider fehlt in der offiziellen \texttt{default.latex} Datei die Zeile
\begin{verbatim}
\usepackage[T1]{fontenc}
\end{verbatim}
daher ist \texttt{default-de.latex} immer noch erforderlich.
Die \texttt{T1} Zeichensatzkodierung ist notwendig, da \texttt{OT1} die
Anführungszeichen unten nicht enthält. Französische Anführungszeichen,
«Das sind diese» funktionieren zwar ohne \texttt{fontenc}, das Ergebnis
sieht aber furchtbar aus.
Mit Version 1.9.4 wurde die template Datei erweitert und enthält nun die
Zeilen
\begin{verbatim}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\end{verbatim}
Damit ist die Datei \texttt{default-de.latex} nicht mehr erforderlich,
alle Einstellungen können über Variablen vorgenommen werden.
Anführungszeichen führen noch zu einem weiteren Problem. Als TeX noch
auf eine 7-Bit Eingabekodierung beschränkt war, wurden einige Zeichen
über Ligaturen eingegeben. Dazu zählten auch die englischen
Anführungszeichen \texttt{``} und \texttt{''}. Aus
Kompatibilitätsgründen gibt Pandoc die Anführungszeichen immer noch so
aus. In deutschen Texten werden die \texttt{``} Zeichen als
\emph{schließende} Anführungszeichen verwendet. Endet nun ein Zitat mit
einem \texttt{!} oder einem \texttt{?}, so greift ein anderer
Ligaturmechanismus, der die Kombination \texttt{! `} in ein \texttt{¡}
und \texttt{? `} in ein \texttt{¿} umwandelt. Dies lässt sich umgehen,
indem man bei der Eingabe \texttt{"} benutzt. Wenn im LaTeX template das
Paket \texttt{csquotes} benutzt wird, werden die geraden
Anführungsstriche in \texttt{\textbackslash{}enquote} Befehle
übsersetzt. In Verbindung mit der Option \texttt{german} werden daraus
dann die richtigen Anführungsstriche. Bei anderen Formaten muss man
damit leben, das hier englische Anführungsstriche verwendet werden.
Alternativ kann man natürlich die LaTeX Datei mit \texttt{sed}
bearbeiten und die Zeichen nach Unicode konvertieren.
Bei der Verwendung von französischen Anführungszeichen gibt es keine
Probleme.
Seit pandoc 1.9.3 gibt es einen neuen Schalter
\texttt{-{}-no-tex-ligatures} mit dem die Übersetzung von
Unicode-Zeichen in TeX-Ligaturen abgeschaltet werden kann. \texttt{„}
und \texttt{“} werden dann unverändert in den TeX Text übernommen.
Gleichzeitig wird die Übersetzung von \texttt{-{}-} in \texttt{–} und
\texttt{-{}-{}-} in \texttt{—} abgeschaltet. Diese Zeichen müssen dann
durch TeX konvertiert werden. Bei \texttt{pdflatex} ist das
standardmäßig der Fall, bei \texttt{XeTeX} und \texttt{LuaTeX} muss die
\texttt{fontspec} Option \texttt{Ligatures=TeX} gesetzt werden.
Dieser Schalter schaltet auch die Option \texttt{-{}-smart} ab.
Schreibmaschinenanführungszeichen \texttt{"} werden dann nicht mehr in
typographische Anführungszeichen konvertiert. Möchte man diese Funktion
erhalten, so ist die Option \texttt{-{}-smart} (Kurzform \texttt{-S})
zusätzlich anzugeben.
Eine einfache Möglichkeit, die komfortable Eingabe von \texttt{"} zu
nutzen und gleichzeitig richtige Anführungszeichen im Zieldokument zu
erhalten ist:
\begin{verbatim}
pandoc --smart file.md -t markdown
| sed -f smart2de
| pandoc -f markdown -o file.epub
\end{verbatim}
Die Datei \texttt{smart2de} enthält die folgenden Befehle:
\begin{verbatim}
s/“/„/g
s/”/“/g
\end{verbatim}
Natürlich kann man alternativ auch \texttt{»} und \texttt{«} als
Ersetzungstext benutzen
\subsection{Abkürzung}\label{abkuxfcrzung}
Der schnellste Weg aus einer Markdown-Datei ein PDF zu erstellen ist:
\begin{verbatim}
pandoc --template=./default-de.latex -o quelle.pdf quelle.md
\end{verbatim}
Am Zielformat \texttt{pdf} erkennt pandoc, das es die PDF-Datei direkt
erzeugen soll. Im Hintergrund wird natürlich LaTeX aufgerufen, es
bleiben jedoch keine temporären Dateien zurück. Wird eine
Inhaltsverzeichnis gewünscht, ist ein zweiter LaTeX-Lauf erforderlich.
Pandoc erkennt das am Befehl \texttt{\textbackslash{}tableofcontents}.
Mit den Schaltern \texttt{-{}-xetex} bzw. \texttt{-{}-luatex} kann man
von pdfTeX~ auf XeLaTeX oder LuaLaTeX umschalten. Im
\texttt{default.latex} wird mit Hilfe von \texttt{ifxetex} und
\texttt{ifluatex} ermittelt, welches TeX verwendet wird.
Auf diesem Weg kann man natürlich kein BibTeX/Biber verwenden. Zum
Erstellen des Literaturverzeichnisses muss man auf die pandoc internen
Funktionen zurückgreifen.
Bei älteren pandoc Versionen übernimmt das mitgelieferte Programm
\texttt{markdown2pdf} die Konvertierung nach PDF.
\begin{verbatim}
markdown2pdf --template=./default-de.latex quelle.md
\end{verbatim}
\subsection{Nacharbeit}\label{nacharbeit}
Die automatisch erstellte LaTeX-Datei ist fast so gut wie eine von einem
Anfänger manuell erstellte. Natürlich wird man auch hier mit Trennhilfen
und ähnlichem die overfull und underfull hboxes beseitigen müssen.
\section{Der Weg zu einem neuen Ziel:
ePUB}\label{der-weg-zu-einem-neuen-ziel-epub}
Der ursprüngliche Wunsch war es, eine ePUB Datei zu erstellen. Dies
geschieht mit dem Befehl:
\begin{verbatim}
pandoc -f markdown -t epub --epub-cover-image=cover-image.gif -s
-o Ziele.epub Ziele.md
\end{verbatim}
Der Text wird anhand der Gliederungsbefehle in verschiedene Dateien
aufgeteilt, das erleichtert die Nachbehandlung, z. B. mit
Sigil~\autocite{sigil}.
Seit Version 1.8.1.2 kann ein Titelbild mit der Option
\texttt{-{}-epub-cover-image} eingebunden werden.
Damit ein eBook-Reader den Text richtig umbrechen und bei Bedarf trennen
kann, ist es erforderlich ihm die Dokumentsprache mitzuteilen. Pandoc
wertet die Umgebungsvariable \texttt{\$LANG} aus und setzt die Sprache
entsprechend. Auf einem deutschen Rechner hat diese Variable
normalerweise den Wert \texttt{de\_DE}, in Österreich den Wert
\texttt{de\_AT}.
Möchte man einen Text in einer anderen Sprache schreiben, so kann man
diesen Wert durch zuweisen einer Variablen ändern.
\begin{verbatim}
pandoc -f markdown -t epub -s -V lang=en_US
-o Ziele.epub Ziele.md
\end{verbatim}
führt zu einem Text in amerikanischem English.
Auf einigen ebook Readern kann es zu Darstellungsproblemen kommen, da
die installierten Zeichensätze nur einen kleinen Teil des Unicode
Zeichenvorrats enthalten. Feste Abstände, wie sie z. B. im
Mathematiksatz verwendet werden, erscheine dann als Fragezeichen. Oft
fehlt auch der Pfeil mit Haken, der als Zurück-Symbol in Fußnoten
verwendet wird.
Bei den meisten Geräten lassen sich eigene Zeichensätze installieren.
Gute Erfahrungen habe ich mit GNU Freefont
(\url{http://savannah.gnu.org/projects/freefont/}) und DejaVu
(\url{http://dejavu-fonts.org/wiki/index.php}) gemacht.
\subsection{Ein Lagerfeuer}\label{ein-lagerfeuer}
Es gibt zwei Wege, um aus ePUB Dateien Dokumente für den
Kindle\footnote{Kindle ist wahrscheinlich ein eingetragenes Warenzeichen
von Amazon, auch wenn ich auf den ersten Blick keinen entsprechenden
Hinweis auf der Webseite gefunden habe.} zu erstellen:
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\item
Der offizielle Amazon Weg führt über das Programm \texttt{kindlegen},
das von der Amazon Webseite heruntergeladen werden kann. Ab pandoc
Version 1.9 kann \texttt{kindlegen} die von pandoc erzeugten Dateien
direkt in das \texttt{mobi}-Format übersetzen.
\texttt{Kindlegen} mag es nicht, wenn als Sprache \texttt{de\_DE}
angegeben ist. Soll ein ePUB später mit \texttt{kindlegen}
weiterverarbeitet werden, so ist als Sprache \texttt{de} für deutsch,
ohne die Landesangabe \texttt{DE} oder \texttt{AT} zu wählen.
Schweitzer Deutsch \texttt{de\_CH} ist jedoch in Ordnung, es wird
wahrscheinlich wegen des fehlenden \texttt{ß} anders behandelt. Beim
Aufruf von pandoc ist die Option
\begin{verbatim}
-V lang=de
\end{verbatim}
anzugeben.
Ältere pandoc Versionen erzeugen ein ePUB, bei dem \texttt{kindlegen}
Probleme hat, wenn im Titel oder den Kapitelüberschriften Umlaute
vorkommen. Man kann das Problem umgehen, indem man das Dokument in
\texttt{sigil} öffnet und gleich wieder speichert. Alternativ kann man
es auch mit den Komandozeilenwerkzeugen aus
\texttt{calibre}~\autocite{calibre} von ePUB nach ePUB konvertieren.
Danach verarbeitet \texttt{kindlegen} die Datei ohne Probleme.
\begin{verbatim}
ebook-convert quelle.epub quelle_fixed.epub
-no-default-epub-cover
\end{verbatim}
Mit dem Erscheinen des Kindle fire hat Amazon ein neues Dateiformat
\texttt{KF8} eingeführt. Zur Konvertierung in dieses Format ist
\texttt{kindlegen} Version 2.0 erforderlich.
\item
Eine Open Source Alternative ist das Programm
\texttt{calibre}~\autocite{calibre}. Im Menüpunkt
\texttt{Einstel"-lungen} kann man unter
\texttt{Erweitert-\textgreater{} Verschiedenes-\textgreater{} Komandozeilen-Tools installieren}
Kommandozeilenwerkzeuge installieren. Diese stehen dann z. B. für ein
Makefile zur Verfügung. Beim Ausgabeformat \texttt{mobi} für den
Kindle lautet die Kommandozeile:
\begin{verbatim}
ebook-convert quelle.epub quelle.mobi --output-profile=kindle
\end{verbatim}
Die erstellte Datei ist größer als bei \texttt{kindlegen}, da der Text
weniger gut komprimiert wird.
Mehr Informationen zu dem Befehl erhält man mit:
\begin{verbatim}
ebook-convert quelle.epub quelle.mobi -h
\end{verbatim}
\end{enumerate}
\section{Sehen wo ich gehe: WYSIWYG}\label{sehen-wo-ich-gehe-wysiwyg}
\enquote{Kann ich das als Word-Datei haben?} Wer kennt diese Frage
nicht? Mit pandoc 1.9 ist es möglich eine \texttt{docx} Datei zu
erstellen:
\begin{verbatim}
pandoc -f markdown -t docx --reference-docx=./reference-de.docx -s
-o quelle.odt quelle.md
\end{verbatim}
Die Sprache der Datei ist englisch und muss nach jeder Konvertierung in
Formatvorlage \texttt{Standard} auf deutsch zurückgesetzt werden.
Wer lieber mit StarOffice / OpenOffice / LibreOffice arbeitet, kann mit
\begin{verbatim}
pandoc -f markdown -t odt --reference-odt=./reference-de.odt -s
-o quelle.odt quelle.md
\end{verbatim}
eine passende Datei erstellen.
Die Dateien \texttt{reference-de.docx} bzw. \texttt{reference-de.odt}
dienen hier als Basis für die Absatzvorlagen und das Dokumentlayout.
Dies können eine beliebige Dateien sein, am einfachsten ist es jedoch
eine von pandoc erstellte Datei an die eigenen Layoutwünsche anzupassen.
So ist sichergestellt, das die internen Bezeichnungen der Absatzformate
mit den von pandoc vergebenen übereinstimmen.
Die Datei \texttt{reference-de.odt} basiert auf einer von pandoc
erstellten Datei, bei der die Sprache auf deutsch umgestellt wurde. Bis
pandoc 1.8.1.2 gab es ein Problem beim Einbinden von Bildern. OpenOffice
meldet eine korrupte Datei und bietet an, diese zu reparieren. Dieser
Fehler wurde in Version 1.8.1.3 behoben.
Eingebundene Bilder werden auf Einheitsgröße zusammengestaucht und
müssen jeweils einzeln auf Originalgröße expandiert werden. Dieser
Fehler wurde mit pandoc 1.9 behoben.
\section{Reisevorbereitung}\label{reisevorbereitung}
Mit einem kleinen \texttt{sed}-Skript lässt sich diese
\texttt{dtk}-basierte LaTeX-Quelle in eine neutrale LaTeX-Datei
umwandeln, die von pandoc weitgehend verlustlos gelesen werden kann.
Lediglich die \texttt{bibliography}-Umgebung geht verloren.
\begin{verbatim}
s/\\LaTeX/LaTeX/g
s/\\TeX/TeX/g
s/\\ConTeXt/ConTeXt/g
s/\\Program{\([a-zA-Z]*\)}/\1/g
s/\\Acronym{\([a-zA-Z]*\)}/\1/g
s/\\Package/\\texttt/g
s/\[style=DTKlstNoNumber\]//
s/\\File/\\texttt/g
s/\\Macro{/\\texttt{\\textbackslash /g
s/\\begingroup//
s/\\endgroup//
\end{verbatim}
Mit dem Aufruf
\begin{verbatim}
sed -f dtk2mdtex.sed Ziele.tex >Ziele-clean.tex
\end{verbatim}
werden die LaTeX-Befehle, die pandoc nicht kennt, aus der Quelldatei
entfernt. Das Ergebnis kann dann mit
\begin{verbatim}
pandoc -f latex -t markdown -s -o Ziele-clean.md Ziele-clean.tex
\end{verbatim}
nach Markdown konvertiert werden.
\section{Wegbeschreibung}\label{wegbeschreibung}
\subsection{Gliederungsbefehle}\label{gliederungsbefehle}
Markdown unterstützt bis zu 6 Gliederungsebenen. Die Gliederungsstufe
wird durch die Anzahl der \texttt{\#} Zeichen vorgegeben. Vor jeder
Überschrift ist eine Leerzeile erforderlich.
\begin{verbatim}
# Oberste Ebene
## Zweite Ebene
### Dritte Ebene
#### *Wichtige Information* in der vierten Ebene versteckt
\end{verbatim}
Eine alternative Form der Gliederungsbefehle unterstützt nur zwei
Ebenen:
\begin{verbatim}
Erste Ebene
===========
Zweite und letzte Ebene
-----------------------
\end{verbatim}
Weiter Ebenen müssen dann durch \texttt{\#} Zeichen angegeben werden.
Standardmäßig erzeugt pandoc beim konvertieren nach Markdown dieses
Format. Mit der Option \texttt{-{}-atx-headers} werden Überschriften im
ersten Format erstellt.
\subsection{Zitatumgebung}\label{zitatumgebung}
Zitiert wird wie in (alten) E-Mail Programmen mit einem
\texttt{\textgreater{}}
\begin{verbatim}
> Hier zitiere ich eine alte E-Mail
>
> > Und hier wird in der alten E-Mail eine noch ältere zitiert.
>
> Normalerweise erhält jede Zeile ein >-Zeichen. Einige Editoren
> fügen dann in der Folgezeile das > gleich mit ein.
>
> Sollte ein Editor nicht über diese Funktion verfügen,
reicht es, nur die erste Zeile eines Absatzes zu markieren.
\end{verbatim}
Der Text wird dabei normal umgebrochen. Möchte man den Zeilenumbruch der
Quelldatei im fertigen Dokument erhalten, so gibt es dafür den
Zeilenblock. Er wird durch \texttt{\textbar{}} eingeleitet. Somit lassen
sich Gedichte formatieren. Leerzeichen am Zeilenanfang bleiben erhalten.
Anders als Programmlisings, die in Schreibmaschinenschrift gesetzt
werden, wird hier die normale Textschrift benutzt.
\begin{verbatim}
| Vom Eise befreit sind Straßen und Wege,
| Durch des Salzes ätzende Kraft.
| Und so weiter.
\end{verbatim}
Eine besondere Form von Zitaten sind Zitate aus Programmen. Diese werden
standardmäßig in einer nichtproportionalen Schrift gesetzt.
Programmzitate werden durch 4 Leerzeichen oder einen Tabulatorschritt
eingegeben:
\begin{verbatim}
\documentclass[11,ngerman]{dtk}
\usepackage[utf8]{inputenc}
\end{verbatim}
Auch vor Zitaten ist eine Leerzeile erforderlich.
Will man bei längeren Listings nicht jede Zeile einrücken, so gibt es in
pandoc eine alternative Form, diese ist jedoch nicht Standard-Markdown.
Durch eine Zeile mit mindestens 3 \texttt{\textasciitilde{}}-Zeichen
wird das Programmlisting eingeleitet und durch eine Zeile mit mindestens
genauso vielen \texttt{\textasciitilde{}}-Zeichen wieder beendet. Eine
Zeile mit weniger \texttt{\textasciitilde{}}-Zeichen ist Bestandteil des
Listings.
\begin{verbatim}
~~~~~~~~
Dies ist ein Programm Listing
~~~~
Header
~~~~
Body
~~~~~~~~
\end{verbatim}
Pandoc 1.9 wird standardmäßig mit Unterstützung für Syntaxhervorhebung
übersetzt. Bei älteren Version musste man das explizit aktivieren. Eine
Liste der unterstützten Sprachen erhält man mit:
\begin{verbatim}
pandoc -v
\end{verbatim}
Die Sprache teilt man dem Listing mit, außerdem ist es möglich die
Zeilen zu nummerieren:
\begin{verbatim}
~~~~~~~~{.Latex .numberLines startFrom="10"}
\documentclass[11,ngerman]{dtk}
\usepackage[utf8]{inputenc}
~~~~~~~~
\end{verbatim}
Mit dem Schalter \texttt{-{}-no-highlight} kann man die Hervorhebung
abschalten.
Mit dem Schalter \texttt{-{}-highlight-style} lassen sich verschiedene
Stile auswählen. Zur Auswahl stehen: \emph{pygments} (the default),
\emph{kate}, \emph{monochrome}, \emph{espresso}, \emph{zenburn},
\emph{haddock}, und \emph{tango}.
Die Hervorhebung funktioniert nur bei den Ausgabeformaten \texttt{HTML}
und \texttt{LaTeX}.
\subsection{Listen}\label{listen}
Aus LaTeX~kennen wir verschiedene Listenformen:
\subsubsection{Die \texttt{itemize} Liste}\label{die-itemize-liste}
Eine Liste wird durch ein Aufzählungszeichen (\texttt{*}, \texttt{+}
oder \texttt{-}) eingeleitet.
\begin{verbatim}
* eins
* zwei
* drei
- drei a
- drei b
* vier
Wie immer verstecken wir die wichtigen Informationen ganz unten,
in der Hoffnung, das niemand sie liest.
\end{verbatim}
Besteht ein Listeneintrag aus mehreren Absätzen, so sind die
Folgeabsätze mit 4 Leerzeichen oder einem Tabulatorschritt einzurücken.
\begin{verbatim}
* eins
* zwei
* drei
- drei a
- drei b
* vier
Wie immer verstecken wir die wichtigen Informationen ganz
unten, in der Hoffnung, das niemand sie liest.
Um ganz sicher zu gehen, erwähnen wir erst im letzten Absatz
die vier Leerzeichen Regel.
\end{verbatim}
\subsubsection{Die \texttt{enumerate} Liste}\label{die-enumerate-liste}
Das erste Aufzählungszeichen gibt hier das Format der Aufzählungszeichen
vor (\texttt{1.}, \texttt{(1)} oder \texttt{i.}). Es ist nicht
notwendig, das die weiteren Aufzählungszeichen in der richtigen
Reihenfolge erscheinen (auch wenn das seltsam aussieht).
Es wird automatisch das \texttt{enumerate}-Paket geladen. Möchte man das
verhindern, so kann man stattdessen die Aufzählungspunkte mit
\texttt{\#.} markieren, dann wird die Standardeinstellung der
verwendeten Dokumentklasse benutzt.
Ab Version 1.10 wird das \texttt{enumerate}-Paket nicht mehr benötigt,
die Anpassungen erfolgen direkt im TeX-Code.
\begin{verbatim}
1. ein
2. zwei
4. drei
a) drei a
b) drei b
5. vier
Wie immer verstecken wir die wichtigen Informationen ganz unten,
in der Hoffnung, das niemand sie liest.
\end{verbatim}
Pandoc kann auch Listen mit römischen Zahlen nummerieren, dabei gibt es
jedoch einen Stolperstein: Damit nicht abgekürzte Vornamen die zufällig
am Anfang einer Zeile stehen als Aufzählzeichen für eine Liste erkannt
werden, ist bei den Zahlen I, V, X, C, D und M ein doppeltes Leerzeichen
erforderlich. Bei Kleinbuchstaben ist das nicht notwendig.
\begin{verbatim}
1. ein
2. zwei
4. drei
I. drei a (mit doppeltem Leerzeichen)
II. drei b
5. vier
i. vier a (ohne doppeltes Leerzeichen)
ii. vier b
\end{verbatim}
\subsubsection{Die \texttt{description}
Liste}\label{die-description-liste}
Endlich kommen wir zu den beliebten \texttt{l2kurz}-Tieren. Das
beschriebene Objekt steht allein in einer Zeile, die Beschreibung wird
durch einen Doppelpunkt oder eine Tilde eingeleitet.
Wenn \emph{hinter} der Beschreibung eine Leerzeile steht, wird sie als
Absatz formatiert, also gegebenenfalls mit Einzug und größerem
Zeilenabstand. Um eine kompakte Liste zu erreichen, muss man auf Absätze
verzichten, bzw. diese müssen als mehrere Beschreibungen definieren
werden. Wichtig ist hierbei auch der Abstand hinter der letzten
Beschreibung, sonst wird u.U. der letzte Punkt der Liste anders
formatiert als die übrigen Punkte.
Beim OpenDocument- oder LaTeX-Export werden beide Fälle gleich
behandelt. Ab Version 1.10 wird auch beim LaTeX-Export zwischen
kompakten Listen und Listen mit mehr Freiraum unterschieden.
\begin{verbatim}
Gelse
: ein kleines Tier, das östlich des Semmering Touristen verjagt.
Gemse
: ein großes Tier, das westlich des Semmering von Touristen
verjagt wird.
: Langer Absatz über die Frage ob es Gemsen oder Gämsen heißt.
Gürteltier
~ ein mittelgroßes Tier, das hier nur wegen der Länge seines
Namens vorkommt.
~ Gürteltiere sind in Österreich außerhalb von Zoologischen
Gärten selten anzutreffen.
Nächster Absatz
\end{verbatim}
Die l2kurz Tiere, hier mit etwas mehr Platz:
\begin{verbatim}
Gelse
: ein kleines Tier, das östlich des Semmering Touristen verjagt.
Gemse
: ein großes Tier, das westlich des Semmering von Touristen
verjagt wird.
: Langer Absatz über die Frage ob es Gemsen oder Gämsen heißt.
Gürteltier
~ ein mittelgroßes Tier, das hier nur wegen der Länge seines
Namens vorkommt.
~ Gürteltiere sind in Österreich außerhalb von Zoologischen
Gärten selten anzutreffen.
Nächster Absatz
\end{verbatim}
\subsubsection{Die fortlaufende Liste}\label{die-fortlaufende-liste}
Normalerweise fängt jede neue Liste wieder bei 1 an. Es gibt jedoch eine
besondere Form, die fortlaufend über das gesamte Dokument läuft,
vergleichbar mit den caption-Zählern für \texttt{figure} oder
\texttt{table} Umgebungen.
Auf diese Zähler kann später Bezug genommen werden.
\begin{verbatim}
(@Behauptung) Hier behaupte ich etwas.
Die Behauptung (@Behauptung) wird in (@Beweis) bewiesen.
(@Beweis) Und hier der versprochene Beweis.
\end{verbatim}
Diese Liste benutzt nicht den
LaTeX~\texttt{\textbackslash{}label}/\texttt{\textbackslash{}ref}-Mechanismus
und erfordert daher keinen zweiten LaTeX-Lauf.
\subsection{Tabellen}\label{tabellen}
Seit Version 1.8.1.2 werden Tabellen mit dem \texttt{ctable}-Paket
gesetzt. Dadurch hat sich die Qualität der Ausgabe erheblich verbessert.
Mit der Version 1.10 wurde auf \texttt{longtable} umgestellt. Dadurch
sind Tabellen keine Gleitobjetke mehr sondern erscheinen dort wo sie
definiert wurden. Lange Tabellen werden am Seitenende umgebrochen.
Leider landen dadurch auch manchmal Teile von kurzen Tabellen auf der
nächsten Seite.
Die \texttt{longtable} Umgebung ist nicht mit \texttt{beamer}
kompatibel, nach einer Lösung wird noch gesucht.
Es gibt drei Arten von Tabellen. Bei der Eingabe von Tabellen sollte man
auf Tabulatoren verzichten und die Spalten mit Leerzeichen ausrichten.
\begin{verbatim}
Rechts Links Mitte Standard
------- ------ ------- --------
12 12 12 12
123 123 123 123
ab ab ab ab
Table: Eine einfache Tabelle
\end{verbatim}
Der Tabellenkopf und die einzelnen Tabellenzeilen müssen in eine Zeile
passen. Die Ausrichtung der Spalten hängt von der Unterstreichung der
Kopfzeile ab.
\begin{itemize}
\item
Ist die Unterstreichung rechtsbündig und steht auf der linken Seite
hervor, ist die Ausrichtung rechtsbündig.
\item
Ist die Unterstreichung linksbündig und steht auf der rechten Seite
hervor, ist die Ausrichtung linksbündig.
\item
Steht die Unterstreichung auf beiden Seite hervor, ist die Ausrichtung
zentriert.
\item
Ist die Unterstreichung genauso lang wie der Text, wird die
Standardeinstellung (linksbündig) benutzt.
\end{itemize}
Eine Tabelle muss mit einer Leerzeile abgeschlossen werden. Optional
darf ein Tabellentitel vergeben werden, diese wird durch das
Schlüsselwort \texttt{Table:} (oder nur \texttt{:}) eingeleitet. Wird
ein Titel verwendet, so wird die Tabelle als Gleitobjekt in einer
\texttt{table}-Umgebung formatiert, ansonsten als Tabelle im Fließtext.
Mehrzeilige Tabellen müssen durch jeweils eine Reihe \texttt{-}-Zeichen
eingeschlossen werden. Die Tabellenzeilen werden durch Leerzeilen
getrennt.
\begin{verbatim}
------------------------------------------------------------------
Zentrierter Standard
Kopf Kopf Rechtsbündig Linksbündig
------------- -------- ------------- ---------------------
Erste Zeile 12.0 Beispiel einer
mehrzeiligen Zeile
Zweite Zeile 5.0 Noch ein mehrzeilige
Zeile, durch eine
Leerzeile abgetrennt
-------------------------------------------------------------------
\end{verbatim}
Beim dritten Typ handelt es sich um sogenannte Rastertabellen. Der
äußere Rahmen wird natürlich bei LaTeX-Ausgabe nicht gesetzt. In den
Tabellenzellen können z. B. enthalten sein.
\begin{verbatim}
+-----------------------+--------------+-------------------------+
| Frucht | Preis | Vorteile |
+=======================+==============+=========================+
| Banane | $1.34 | - eingebaute Verpackung |
| | | - leuchtende Farben |
+-----------------------+--------------+-------------------------+
| Orange | $2.10 | - heilt Scorbut |
| | | - ist lecker |
+-----------------------+--------------+-------------------------+
\end{verbatim}
Mit Version 1.10 wurde ein vierter Tabellentyp eingeführt, die
Pipe-Tabelle. (Pipe ist ein englischer Name für das \texttt{\textbar{}}
Zeichen.) Die Ausrichtung der Zellen wird durch den \texttt{:} bestimmt.
Die Kopfzeile darf leer sein, die Zeile mit den \texttt{-} Zeichen
jedoch nicht, da sie die Ausrichtung definiert. Die \texttt{\textbar{}}
Zeichen in der ersten und letzten Spalte sind optional.
\begin{verbatim}
| Rechts | Links | Standard | Zentriert |
|-------:|:------|----------|:---------:|
| 12 | 12 | 12 | 12 |
| 123 | 123 | 123 | 123 |
| 1 | 1 | 1 | 1 |
\end{verbatim}
Pandoc benutzt jetzt \texttt{longtable} anstelle von \texttt{ctable}.
Damit ist es möglich Tabellen zu erstellen, die am Seitenende
umgebrochen werden. Ab Version 1.12.3 wird zusätzlich das Paket
\texttt{booktabs} verwendet. Dadurch sehen die Tabellen etwas besser
aus. Templates müssen angepasst werden.
\subsection{Titelei}\label{titelei}
Angaben zu Titel des Dokuments, den Autoren und dem Datum der Erstellung
werden am Anfang der Datei angegeben:
\begin{verbatim}
% Viele Ziele Veröffentlichung
% Axel Kielhorn
% DTK 2011-3
\end{verbatim}
Lange Titel und mehrere Autoren bricht man auf mehrere Zeilen um:
\begin{verbatim}
% Viele Ziele Veröffentlichung\
(Multi Target Publishing)
% Axel Kielhorn
Babel Fisch (Übers.)
% DTK 2011-3
\end{verbatim}
Der \texttt{\textbackslash{}} am Ende der ersten Zeile erzeugt ein
\texttt{\textbackslash{}\textbackslash{}} in der LaTeX-Ausgabe. Leider
führt das bei einigen eBook Lesegeräten zu Problemen, hier sollte man
auf das \texttt{\textbackslash{}} verzichten.
Das ePUB Format fordert ein echtes Datum (2012-02-12) als Argument.
\begin{verbatim}
% Viele Ziele Veröffentlichung
% Axel Kielhorn
% 2012-02-12
\end{verbatim}
\subsection{Fußnoten}\label{fuuxdfnoten}
Fußnoten bestehen aus zwei Teilen, der Fußnotenmarkierung und dem
Fußnotentext.
\begin{verbatim}
Dies ist eine Fußnotenmarkierung[^1] und dies eine
weitere[^fussnote]
[^1]: Hier ist der Fußnotentext