Hong-Phuc Bui
2020-10-02 bf42c846b48dfaf63f8e40eb38d8ebeba025b889
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
\chapter{\latex im Detail}
 
\section{Post-Installation von \TeX Live in Linux}
 
Nach der Installation muss man den \verb:PATH:-Variable anpassen:
In der Datei \verb:$HOME/.profile: folgendes ergänzen:
 
\begin{minted}{bash}
TEX_HOME="/usr/local/texlive/2020"
if [ -d $TEX_HOME ] ; then    
    PATH=$TEX_HOME/bin/x86_64-linux:$PATH
    MANPATH="${TEX_HOME}/texmf/doc/man":$MAN_PATH
    INFOPATH="${TEX_HOME}/texmf/doc/info":$INFOPATH
    export PATH
    export MANPATH
    export INFOPATH
fi
\end{minted}
 
Wobei die Variable \verb:$TEX_HOME: ist der Ordner wo die \TeX Live installiert sind.
Die Abbildung~\ref{fig:tl-structure} zeigt den Inhalt des Ordner \verb:$TEX_HOME:.
 
\begin{figure}[t]
  \centering
  \includegraphics{img/tl-dir.png}
  \caption{Ordner-Struktur von \TeX Live Installation}
  \label{fig:tl-structure}
\end{figure}
 
\TeX Live bietet ein sehr detailliertes Dokument-System. Um die Dokumentation eines Paket
aufzurufen muss man nur den Befehl 
 
\begin{minted}{bash}
texdoc <paket-name>
\end{minted}
 
in der Konsole oder Termin absetzen. Zum Beispiel: Der Befehl
 
\begin{minted}{bash}
texdoc biblatex
\end{minted}
 
zeigt die Anleitung der Paket \verb:biblatex: an. Der Befehl \verb:texdoc: funktioniert
zuverlässig in Linux und MacOS. In Windows weiß ich leider nicht.
 
\section{Code Auszug}
 
Code Auszug spielt in Dokumentation in der Informatik eine wichtige Rolle. In \latex 
hat man viel Möglichkeiten, Code Auszug zu setzen. Die einfachste Möglichkeit
ist, die eingebaute Umgebung \texttt{verbatim} zu nutzen. Diese Umgebung
druckt den Inhalt wie die Source Code in PDF Ausgabe:
 
 
\begin{verbatim}
Hier Ist der Code Auszüge!!!
\end{verbatim}
 
Ein weitere Möglichkeit ist das Paket \verb:listings:. Das Paket \verb:listings: 
in vollständig in \TeX implementiert. Es bedeutet dass man kein zusätzliche Software
braucht um das Paket zu benutzen. Der Nachteil ist, das Paket \verb:listings: bietet
eine sehr überschaubares Anzahl von Lexer. Die Seite~\autocite{wikibooks:Source_Code_Listings}
bietet eine gutes Tutorium im Bezug auf das Paket \verb:listings: an.
 
Im Gegensatz zum Paket \verb:listings: benutzt das Paket \verb:minted: das external Lexer-Programm
Pygmentize um die Token in Code-Auszug zu klassifizieren. Das Paket \verb:minted: setzt voraus,
dass das Lexer-Programm Pygmentize bereits in System installiert ist. Das Programm Pygmentize 
kann man in \url{http://pygments.org/} finden. Da das Programm in Python geschrieben ist, muss man 
den Python-Interpreter auch im System installieren. In ein Debian-basiertes Linux-System kann man 
die Installation in einem Befehl erledigen:
 
\begin{minted}{bash}
sudo aptitude install python-pygments
\end{minted}
 
In Windows muss man zuerst den Python-Interpreter installieren, dann das Python-Paket Pygments
installieren. Hier wäre eine Hausaufgabe für die Informatik-Studenten.
 
\section{Makefile}
 
Man kann das Programm make benutzen um den Compilierungsprozess von \latex-Dateien, die Bib-Dateien
in PDF-Datei zu automatisieren. Ein Makefile Template sieht etwa so aus:
 
\begin{minted}{makefile}
#latex compiler
LATEX = lualatex
LATEX_OPT :=-shell-escape -interaction=nonstopmode --synctex=1
 
#bibtex
BIBTEX := biber
BIBTEX_OPT := 
 
# latexmk setting
LATEXMK = latexmk
LATEXMK_OPT :=
LATEXMK_INTERACTIVE_OPT := -pvc
 
# interactive TARGET
INTERACTIVE_TARGET = zusammenfassung.pdf
 
########################################################
# file variables 
pdf = zusammenfassung.pdf
main_tex = zusammenfassung.tex
chapter = $(wildcard chap/*.tex)
 
 
.PHONY: all
all: $(pdf)
 
 
$(pdf): $(main_tex)
        $(LATEX) $(LATEX_OPT) $<
        $(BIBTEX) $(BIBTEX_OPT) $(<:.tex=)
        $(LATEX) $(LATEX_OPT) $<
        $(LATEX) $(LATEX_OPT) $<
 
$(main_tex): $(chapter)
        touch $@
 
 
.PHONY: interactive
interactive: $(INTERACTIVE_TARGET)
        $(LATEXMK) $(LATEXMK_INTERACTIVE_OPT) $(<:.pdf=.tex)
 
.PHONY: mostlyclean clean
mostlyclean:
        rm -fv *.aux *.out *.bbl *.blg *.pytxcode *.toc *.nav 
        rm -rf *.bcf *.log *.run.xml *.snm *.vrb *.synctex.gz
        rm -fv chap/*.aux
 
clean:
        make mostlyclean
        rm -fv *.pdf
        rm -rfv pythontex-files-*
        rm -rfv _minted-*
        rm -rf *.fdb_latexmk *.fls
\end{minted}
 
Der Makefile-Template geht davon aus, dass die Hauptdatei \texttt{zusammenfassung.tex} ist,
die einzelnen Kapitel werden im Unterordner \texttt{chap}.
 
 
\section{Konfiguration von anderen \latex Editoren}
 
\subsection{Texmaker}
 
\begin{enumerate}
  \item \menu{Optionen} → \menu{Texmaker Konfigurieren}
  \item \menu{Befehle} →
  \begin{enumerate}
    \item \menu{PdfLaTeX}: \verb:lualatex -shell-escape -synctex=1 -interaction=nonstopmode %.tex: 
    \item \menu{Bib(la)tex}:     \verb:biber %:
  \end{enumerate}
  \item \menu{Schnelles Übersetzen} → \menu{PdfLaTeX + PDF anzeigen}
\end{enumerate}