Programmierparadigmen.tex 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. \documentclass[DIV15,BCOR12mm]{scrbook}
  2. \newif\ifAFive\AFivetrue
  3. \ifAFive
  4. \KOMAoptions{paper=a5,twoside=true}
  5. \else
  6. \KOMAoptions{paper=a4,twoside=false}
  7. \fi
  8. \usepackage{etoolbox}
  9. \usepackage{amsmath,amssymb}% math symbols / fonts
  10. \usepackage{mathtools} % \xRightarrow
  11. \usepackage{nicefrac} % \nicefrac
  12. \usepackage[utf8]{inputenc} % this is needed for umlauts
  13. \usepackage[ngerman]{babel} % this is needed for umlauts
  14. \usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
  15. \usepackage[framed,amsmath,thmmarks,hyperref]{ntheorem}
  16. \usepackage{framed}
  17. \usepackage{marvosym}
  18. \usepackage{makeidx} % for automatically generation of an index
  19. \usepackage{xcolor}
  20. \usepackage[bookmarks,bookmarksnumbered,hypertexnames=false,pdfpagelayout=OneColumn,colorlinks,hyperindex=false]{hyperref} % has to be after makeidx
  21. \usepackage{breakurl} % allow line breaks in \href{ ... }
  22. \ifAFive
  23. \hypersetup{hidelinks=true}
  24. % no \else branch needed in this case
  25. \fi
  26. \usepackage{enumitem} % Better than \usepackage{enumerate}, because it allows to set references
  27. \usepackage{multicol} % Breaking a list into multiple columns
  28. \usepackage{tabto}
  29. \usepackage{braket} % needed for \Set
  30. \usepackage{csquotes} % \enquote{}
  31. \usepackage{subfig} % multiple figures in one
  32. \usepackage{parskip} % nicer paragraphs
  33. \usepackage{xifthen} % \isempty
  34. \usepackage{changepage} % for the adjustwidth environment
  35. \usepackage{pst-solides3d}
  36. \usepackage[colorinlistoftodos]{todonotes}
  37. \usepackage{pgfplots}
  38. \pgfplotsset{compat=1.7}
  39. \usepackage[arrow, matrix, curve]{xy}
  40. \usepackage{caption} % get newlines within captions
  41. \usepackage{tikz} % draw
  42. \usepackage{tikz-3dplot} % draw
  43. \usepackage{tkz-fct} % draw
  44. \usepackage{tkz-euclide} % draw
  45. \usetkzobj{all} % tkz-euclide
  46. \usetikzlibrary{3d,calc,intersections,er,arrows,positioning,shapes.misc,patterns,fadings,decorations.pathreplacing}
  47. \usepackage{tqft}
  48. \usepackage{xspace} % for new commands; decides weather I want to insert a space after the command
  49. \usepackage[german,nameinlink]{cleveref} % has to be after hyperref, ntheorem, amsthm
  50. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  51. \usepackage{array,xtab,ragged2e} % for symbol table
  52. \newlength\mylengtha
  53. \newlength\mylengthb
  54. \newcolumntype{P}[1]{>{\RaggedRight}p{#1}}
  55. \tabcolsep=3pt % default: 6pt
  56. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  57. \usepackage{acronym}
  58. \usepackage{minted} % needed for the inclusion of source code
  59. \usemintedstyle{bw}
  60. \usepackage{courier}
  61. \usepackage{wasysym}
  62. \usepackage[binary-units = true]{siunitx} % this package is for units!
  63. \sisetup{locale=DE}
  64. %%% Pseudocode settings
  65. \usepackage{algorithm,algpseudocode}
  66. \algtext*{EndIf} % Remove "end if" text
  67. \algtext*{EndWhile} % Remove "end while" text
  68. \algtext*{EndFunction} % Remove "end while" text
  69. \algnewcommand\Global{\textbf{global }}
  70. \makeatletter
  71. \addto\captionsngerman{\renewcommand{\ALG@name}{Algorithmus}}
  72. \makeatother
  73. %%% End of Pseudocode settings
  74. \usepackage{shortcuts}
  75. \usepackage{fancyhdr}
  76. \pagestyle{fancy}
  77. \renewcommand{\chaptermark}[1]%
  78. {\markboth{\MakeUppercase{\thechapter.\ #1}}{}}
  79. \renewcommand{\sectionmark}[1]%
  80. {\markright{\MakeUppercase{\thesection.\ #1}}}
  81. \renewcommand{\headrulewidth}{0.5pt}
  82. \renewcommand{\footrulewidth}{0pt}
  83. \newcommand{\helv}{%
  84. \fontfamily{phv}\fontseries{b}\fontsize{9}{11}\selectfont}
  85. \fancyhf{}
  86. \fancyhead[LO,RE]{\helv \thepage}
  87. \fancyhead[LE]{\helv \rightmark}
  88. \fancyhead[RO]{\helv \leftmark}
  89. \fancypagestyle{plain}{%
  90. \fancyhead{}
  91. \renewcommand{\headrulewidth}{0pt}
  92. }
  93. \hypersetup{
  94. pdfauthor = {Martin Thoma},
  95. pdfkeywords = {Programmierparadigmen},
  96. pdftitle = {Programmierparadigmen}
  97. }
  98. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  99. % The patch for minted: http://tex.stackexchange.com/a/168021/5645
  100. \makeatletter
  101. \def\FV@BeginListFrame@Lines{%
  102. \begingroup
  103. \lineskip\z@skip
  104. \FV@SingleFrameLine{\z@}%
  105. \kern-0.5\baselineskip\relax
  106. \baselineskip\z@skip
  107. \kern\FV@FrameSep\relax
  108. \penalty\@M% added line
  109. \endgroup}
  110. \makeatother
  111. % Unicode minted patch: http://tex.stackexchange.com/a/84883/5645
  112. \makeatletter
  113. \newcommand{\minted@write@detok}[1]{%
  114. \immediate\write\FV@OutFile{\detokenize{#1}}}%
  115. \newcommand{\minted@FVB@VerbatimOut}[1]{%
  116. \@bsphack
  117. \begingroup
  118. \FV@UseKeyValues
  119. \FV@DefineWhiteSpace
  120. \def\FV@Space{\space}%
  121. \FV@DefineTabOut
  122. %\def\FV@ProcessLine{\immediate\write\FV@OutFile}% %Old, non-Unicode version
  123. \let\FV@ProcessLine\minted@write@detok %Patch for Unicode
  124. \immediate\openout\FV@OutFile #1\relax
  125. \let\FV@FontScanPrep\relax
  126. %% DG/SR modification begin - May. 18, 1998 (to avoid problems with ligatures)
  127. \let\@noligs\relax
  128. %% DG/SR modification end
  129. \FV@Scan}
  130. \let\FVB@VerbatimOut\minted@FVB@VerbatimOut
  131. \renewcommand\minted@savecode[1]{
  132. \immediate\openout\minted@code\jobname.pyg
  133. \immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
  134. \immediate\closeout\minted@code}
  135. \makeatother
  136. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  137. \makeindex
  138. \allowdisplaybreaks
  139. \usepackage{microtype}
  140. \begin{document}
  141. %-------------------------------------------------------------
  142. \newcolumntype{C}{>{\centering\arraybackslash}p{2cm}}
  143. %-------------------------------------------------------------
  144. \pagenumbering{roman}
  145. \setcounter{page}{1}
  146. \input{titlepage}
  147. \input{Vorwort}
  148. \tableofcontents
  149. \pagenumbering{arabic}
  150. \setcounter{page}{1}
  151. \input{Programmiersprachen}
  152. \input{Programmiertechniken}
  153. \input{Logik}
  154. \input{Lambda}
  155. \input{Typinferenz}
  156. \input{Parallelitaet}
  157. \input{Java}
  158. \input{Haskell}
  159. \input{Prolog}
  160. \input{Scala}
  161. \input{X10}
  162. \input{C}
  163. \input{MPI}
  164. \input{Compilerbau}
  165. \input{Java-Bytecode}
  166. \appendix
  167. %\input{Bildquellen}
  168. %\clearpage
  169. \input{Abkuerzungen}
  170. \clearpage
  171. \input{Definitionen}
  172. \clearpage
  173. \input{Symbolverzeichnis}
  174. \clearpage
  175. \addcontentsline{toc}{chapter}{Stichwortverzeichnis}
  176. \renewcommand{\indexname}{Stichwortverzeichnis}
  177. \printindex
  178. \end{document}