-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnote.tex
218 lines (174 loc) · 8.17 KB
/
note.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
\documentclass[a4paper,11pt,oneside,ngerman]{scrartcl}
% For best results, it is recommended to use lualatex.
% You don't need to edit the preamble until the fat comment below.
% Set all margins to 1 inch:
\usepackage[margin=1in]{geometry}
% Multilanguage support
\usepackage[english,main=ngerman,shorthands=off]{babel}
% Set serif font:
\usepackage[lining,semibold,scaled=1.05]{ebgaramond}
% Set monospace font:
\usepackage[scale=0.85]{sourcecodepro}
% Standard mathm packages:
\usepackage{amsmath}
\usepackage{amssymb}
% If amsthm is needed, must be loaded before newtxmath:
\usepackage{amsthm}
% Set math font:
\usepackage[ebgaramond,vvarbb,subscriptcorrection]{newtxmath}
% load after all math to give access to bold math using \bm{..} command:
\usepackage{bm}
% Standard packages
\usepackage{microtype}
\usepackage{booktabs}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage[autostyle=true]{csquotes}
\usepackage[shortlabels]{enumitem}
\setlist[itemize,1]{label=$\circ$}
\definecolor{GoetheBlue}{rgb}{0,0.38,0.56}
\usepackage[%
colorlinks = true,
citecolor = GoetheBlue,
linkcolor = GoetheBlue,
urlcolor = GoetheBlue,
unicode,
]{hyperref}
\usepackage[nameinlink,capitalize]{cleveref}
% Define amsthm theorem environments:
\theoremstyle{plain}
\newtheorem{lemma}{Lemma}
\newtheorem{theorem}[lemma]{Theorem}
\theoremstyle{definition}
\newtheorem{definition}[lemma]{Definition}
% Nice typesetting of source code
\usepackage{listings}
\lstset{%
showstringspaces=false,
mathescape=true,
inputencoding=utf8,
numbers=left,
xleftmargin=\parindent,
basicstyle=\footnotesize\ttfamily,
keywordstyle=\bfseries\color{green!40!black},
commentstyle=\itshape\color{black!60},
stringstyle=\color{orange},
tabsize=2%
}
\addtokomafont{disposition}{\rmfamily}
\addtokomafont{title}{\let\huge\Large}
\addtokomafont{section}{\large}
\addtokomafont{subsection}{\normalsize}
\addtokomafont{subsubsection}{\normalfont\itshape}
\addtokomafont{author}{\normalsize}
\addtokomafont{date}{\normalsize}
\makeatletter
\renewcommand*{\@maketitle}{%
{\usekomafont{title}{\huge \@title \par}}%
\vskip 0.3em%
{\renewcommand\and{\par}\usekomafont{author}{\@author\par}}%
\vskip 0.3em%
{\usekomafont{date}{\@date\par}}%
\rule{\textwidth}{0.4pt}
}%
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EDIT BELOW THIS LINE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% If the document is mainly written in English,
% then modify the following line:
\AtBeginDocument{\selectlanguage{ngerman}}
% Set the title of this document:
\title{Template für Lösungen und kurze Berichte}
% \title{Lösung zu Aufgabe x}
% \title{Seminar Report: Dijkstra and Friends}
% \title{Project Plan: An Implementation of Dijkstra's Algorithm}
% Fill in all authors:
\author{%
Alice Cooper ([email protected])%
\and Bob Marley ([email protected])%
\and Charlie Chaplin ([email protected])%
}
% Date of the document:
\date{\today}
% Add any additional packages that you need:
% \usepackage{tikz}
% Add any references you cite.
% You can get most BibTex records from https://dblp.org.
% (Use the format "condensed".)
\begin{filecontents}[overwrite]{\jobname.bib}
@inproceedings{DBLP:conf/coco/Karp72,
author = {Richard M. Karp},
title = {Reducibility Among Combinatorial Problems},
booktitle = {Complexity of Computer Computations},
series = {The {IBM} Research Symposia Series},
pages = {85--103},
publisher = {Plenum Press, New York},
year = {1972}
}
\end{filecontents}
\begin{document}
\maketitle
\section*{Diese Vorlage benutzen}
Du kannst diese \texttt{.tex}-Datei als Vorlage für Lösungen, Projektpläne, Notizen und kurze Berichte benutzen.
Falls möglich, solltest du sie mit \verb|lualatex| kompilieren.
Du kannst die Datei auf GitHub finden (\url{https://github.com/goethe-tcs/note-template}) oder auch auf Overleaf (\url{https://www.overleaf.com/read/bbxtmsfhsfkv}). Wenn du Overleaf benutzen möchtest, musst du ein Overleaf-Konto anlegen und im Menü \hyphenquote{english}{Copy Project} klicken, um eine private Kopie der Datei zu erzeugen, die du dann editieren kannst.
Die Vorlage benutzt die Schriftarten EB Garamond und Source Code Pro. Stelle sicher, dass du sie auch wirklich installiert hast. Normalerweise sind sie bei einer vollen Installation von texlive mit dabei. Du kannst die Schriftarten aber natürlich auch ändern.
\section*{Übliche \LaTeX{}-Fehler}
Übliche Fehler von \LaTeX{}-Neulingen sind:
\begin{itemize}
\item Neulinge benutzen \verb|\\|, um einen neuen Absatz zu beginnen. Stattdessen sollte man \verb|\\| quasi nie benutzen!
Man sollte zwischen Absätzen im Quellcode eine leere Zeile lassen. Absätze werden eingerückt, das ist üblich und erwünscht!
\item Neulinge schreiben \enquote{Sei n eine gerade Zahl} anstatt \enquote{Sei $n$ eine gerade Zahl}. Nur das zweite ist richtig! Wenn man eine mathematische Formel oder ein mathematisches Symbol benutzt, muss man \emph{immer} Mathemodus benutzen, also \verb|$n$| schreiben!
\item Neulinge schreiben "Anführungszeichen" anstatt \enquote{Anführungszeichen}: Das erste ist in jeder Sprache falsch! Man sollte also immer \verb|\enquote{..}| benutzen.
Dasselbe gilt für 'Apostroph' anstatt \enquote*{Apostroph}.
Der Befehl passt sich übrigens automatisch auf die ausgewählte Sprache an, da die Anführungszeichen subtil anders sein könnten.
Im Englischen wäre das hier korrekt:
\foreignlanguage{english}{\enquote{Quotation marks}}
\item Neulinge verwenden nie die Rechtschreibprüfung. Stattdessen sollte man sie immer angeschaltet lassen!
\item Neulinge versenden die fertige Datei mit dem Dateinamen \verb|main.pdf|. Wähle stattdessen einen Namen, der \emph{für den Empfänger} sinnvoll ist, zum Beispiel \verb|project-plan-Cooper.pdf|.
\end{itemize}
\section*{Zitieren}
Zum Zitieren einer Quelle schreibt man zum Beispiel Karp~\cite{DBLP:conf/coco/Karp72}.
Zwischen dem \verb|\cite|-Kommando und dem Namen sollte hierbei unbedingt ein \textit{non-breaking space} \verb|~| stehen, damit die Zeile dort nicht plötzlich endet. Also so: \verb|Karp~\cite{DBLP:conf/coco/Karp72}|. Falls der Name mehrmals hintereinander erwähnt wird, sollte das \verb|\cite| Kommando nur beim ersten Auftauchen benutzt werden.
\section*{Bilder}
Bilder lassen sich mit \verb|\includegraphics{mein-bild.pdf}| einfügen, welches eine abphotographierte Zeichnung sein kann oder eine mit \href{https://inkscape.org/}{inkscape} produzierte Vektorgraphik. Am Schönsten zeichnet man natürlich mit \href{https://www.overleaf.com/learn/latex/TikZ_package/}{TikZ}.
\section*{Programmcode}
Programmcode oder Pseudocode kann so eingebunden werden:
\begin{lstlisting}[language=C++]
for (int i = 1; i < n; i++) {
for (int j = 1; j < i; j++) {
std::cout << i; /* $\Theta(n^2)$ mal ausgefuehrt */
}
}
\end{lstlisting}
% falls es Aufgabenteile gibt, hier ein Beispiel:
\section*{Aufgabe 1a)}
In Aufgabe 1a) ist zu zeigen, dass Algorithmus $A$ die Laufzeit $O(n^2)$ hat. Oder $\Omega(n\log n)$? Vielleicht auch $\Theta(n)$.
Sei $T(n)$ die Laufzeit von $A$ auf Eingaben der Größe $n$.
Dann gilt $T(n)\le T(n-1) + 10n$, denn~$A$ macht für jedes Bit der Eingabe höchstens zehn Rechenschritte und ruft sich dann selbst rekursiv wieder auf, mit einer Eingabe der Größe $n-1$. Wir beweisen nun mithilfe vollständiger Induktion, dass $T(n)\le 10n^2$ für alle positiven $n\in\mathbb{N}$ gilt:
\begin{itemize}
\item Für den Induktionsanfang $n=1$ stellen wir fest, dass $T(1)=10=10 \cdot 1^2$ gilt.
\item Für den Induktionsschluss sei nun $n>1$. Wir können die Induktionsannahme voraussetzen, dass $T(n-1)\le 10 (n-1)^2$ gilt, und müssen zeigen, dass $T(n)\le 10n^2$ gilt. Tatsächlich haben wir:
\begin{align*}
T(n) &\le T(n-1)+10n
\le 10(n-1)^2 + 10n\\
&= 10 (n^2-2n+1+n)
= 10 (n^2-n+1) \le 10 n^2\,.
\end{align*}
Das war zu zeigen.
\end{itemize}
\section*{Lemma-Satz-Beweis}
\begin{lemma}\label{my-lemma}
Dies ist ein Lemma.
\end{lemma}
\begin{theorem}\label{my-theorem}
Dies ist ein Satz.
\end{theorem}
\begin{proof}
\cref{my-theorem} folgt direkt aus \cref{my-lemma}.
\end{proof}
% If you don't need a bibliography, remove the following lines:
\bibliographystyle{plainurl}
\bibliography{\jobname}
\end{document}