This contains my bachelors thesis and associated tex files, code snippets and maybe more. Topic: Data Movement in Heterogeneous Memories with Intel Data Streaming Accelerator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

164 lines
6.3 KiB

  1. [![Build](https://github.com/TUD-OS/latex-template/actions/workflows/build.yml/badge.svg)](https://github.com/TUD-OS/latex-template/actions/workflows/build.yml)
  2. ## Was ist das?
  3. Dieses Diplomarbeits-Latex-Template stellt ein Skelett für eine
  4. Diplomarbeit mit zugehöriger Make-Datei zur Verfügung.
  5. ## Checkout Submodules First
  6. Um das `$ make checkbiw` ausführen zu können, musst du zuerst die
  7. Submodule auschecken: `git submodule update --init --recursive`
  8. ## So geht's los
  9. Als erstes solltest du in diplom.tex alle Vorkommen von Otto
  10. Mustermann, "Dein Titel" und "Dein Betreuer" ersetzen.
  11. `diplom.tex` will deine Aufgabe als PDF einbinden. Es sucht
  12. `images/diplom-aufgabe.pdf`, was eine A4 Seite sein muss. Mit
  13. convert <dein-gescanntes-bild> diplom-aufgabe.pdf
  14. solltest du eine beliebige Bilddatei in ein PDF umwandeln können, wenn
  15. ImageMagick auf deinem System installiert ist.
  16. An diesen Punkt sollte `make` ein `diplom.pdf` produzieren.
  17. Das Template unterstützt sowohl englischen und deutschen Text. Englisch ist
  18. standardmäßig eingestellt. Für deutschen Text kann der letzte `\selectlanguage`
  19. Aufruf in `diplom.tex` einfach weggelassen werden.
  20. ## How To Build
  21. - `$ make`: regular build that produces `diplom.pdf` and `yyyy-mm-dd_hhmmss DRAFT Diplomarbeit - Branch <branch>.pdf`.
  22. - `$ make watch`: Performs a watch task, i.e. automatically re-builds everything quickly on changes.
  23. If your PDF viewer supports automatic reload on file changes (such as the default PDF viewer in GNOME)
  24. you get a cool productive working environment.
  25. ### Build Prerequisites (Regular Build)
  26. In case you don't want to install `texlive-full` to save disk space, the following packages are
  27. actually required: \
  28. ```shell
  29. $ sudo apt install texlive-base \
  30. texlive-lang-german \
  31. texlive-lang-english \
  32. `# for siunits` \
  33. texlive-science \
  34. texlive-luatex \
  35. `# biber gets invoked by the utilities provided by bibtex-extra` \
  36. biber \
  37. texlive-bibtex-extra \
  38. `# for csquotes` \
  39. texlive-latex-extra
  40. ```
  41. Additionally, please install also:
  42. ```shell
  43. $ sudo apt install \
  44. `# for the `make checkbiw` script`
  45. diction \
  46. `# build system to build the latex project`
  47. latexmk
  48. ```
  49. ### Build Prerequisites (Nix Build)
  50. This template can also be built using [Nix](https://nixos.org/download.html). You have
  51. the option to either use `$ nix-build`, which will produce `result/diplom.pdf`, or to
  52. use
  53. ```bash
  54. $ nix-shell
  55. $ make clean
  56. $ make watch # (or just make)
  57. ```
  58. ## Grafiken einbinden
  59. Grafiken sollten im `images/` Verzeichnis abgelegt werden und im
  60. Makefile in die entsprechende `DOC_IMG_*` Variable eingetragen
  61. werden. Momentan werden Grafiken in den Formaten PDF, PNG und JPEG
  62. unterstützt. PDF eignet sich für Vektorgrafiken und kann von den
  63. meisten Vektorgrafikprogrammen erzeugt werden (Inkscape, OpenOffice
  64. Draw, ...).
  65. ## Tipps
  66. Diese Datei enthält im Moment ein Sammlung von Tipps und Tricks, sowie
  67. einige Hintergrundinformationen.
  68. - passive voice: **do not use it**
  69. - There is a Makefile template checking for 'Bugs in Writing' according
  70. to the book of the same name (`make checkbiw`). Diction must be installed
  71. somewhere in the path (check out the directory
  72. `checkbiw/diction` for details).
  73. - Vim users can add detection for passive voice and *weasel words* via
  74. Björn's [`vim-weasel` package](https://github.com/bjoernd/vim-weasel)
  75. - font sizes in images: adapt to other text size
  76. (ideally, use PGF/TikZ and PGFPlots)
  77. - avoid missing meta data in PDF files (title, keywords, author)
  78. - "good" title page
  79. - use biblatex for references, it pays off fast
  80. - convert images to correct include types (vector formats, e.g. PDF)
  81. - protected spaces between, e.g., `Figure~1`, `~\cite{xyz}`
  82. - units: use the `siunitx` package to typeset units
  83. - French spacing: tell latex what is an end of sentence with `\@.`
  84. where it cannot know it (e.g., `This is a sentence ending on an
  85. abbreviation BASIC\@. Next sentence.`)
  86. - Again, you can try to detect a good portion of French spacing
  87. using an automatic algorithm (`make check-french-spacing`).
  88. Improvements are welcome.
  89. - listings with at least three elements have a
  90. comma before the last and/or (*serial* or *Oxford comma*):
  91. *"Set A contains elements a, b, and c."*
  92. - more stylistic information can be found in *Bugs in writing* (BIW)
  93. by Lyn Dupré
  94. - add chapters without a chapter number (e.g. appendix) with `\addchap{Chapter without Number}`
  95. instead of `\chapter*{Chapter without Number}`. Otherwise, `\chaptername` and similar macros
  96. inherit the name of the last chapter with a number in several cases.
  97. `\addchap` is a macro provided by KOMA
  98. - this project uses a `.editorconfig` which makes sure you have the same basic formatting
  99. settings across IDEs **as you type**. Support exists in Clion, VS Code, IntelliJ,
  100. vim, ... make sure to activate the setting or add the plugin for that into your IDE/editor
  101. ## spezielle Tipps von Frank
  102. - Ich verwende in der Vorlage KOMA-Script (`scrbook`), welches vor allem
  103. für den deutschsprachigen Raum gedacht ist. KOMA-Script kann auch
  104. international verwendet werden, das Format ist aber für
  105. Englischsprachige Arbeiten etwas unüblich.
  106. - Ein Hinweis zum Erstellen der Grafiken: Viele verwenden xfig, ich
  107. habe meine Grafiken mit OpenOffice Draw erzeugt. Dort hat man mehr
  108. Möglichkeiten. Einfach als PDF exportieren. Damit alle Grafiken
  109. eine gleichmäßige Größe besitzen, habe ich einfach immer die
  110. Seitengröße so gesetzt, dass die Zeichnung voll erfasst wird. Dann
  111. habe ich immer die gleiche Schriftgröße gesetzt. Beim Einbinden der
  112. Grafiken ins LaTeX-File habe ich einen Faktor, z.B.
  113. \includegraphics[width=190\figurewidth]{architecture}
  114. mit eingebaut. Den Faktor setze ich dann einfach am Anfang mit
  115. \setlength{\figurewidth}{.070cm}
  116. und bin damit in der Lage, alle Grafiken zugleich in der Größe zu verändern.
  117. Die Zahl 190 aus dem includegraphics-Statement kommt von der gewählten
  118. Seitengröße in OpenOffice Draw (190mm).
  119. - Wenn man viele Grafiken hat, die man genau ausrichten will, ist ein
  120. \usepackage{placeins}
  121. sinnvoll. Dann kann man am Ende einer Seite
  122. \FloatBarrier
  123. schreiben und erzwingt die Ausgabe aller noch offenen Grafiken an
  124. diesem Punkt. Mir ist bewusst, dass das etwas unschön ist, aber
  125. manchmal braucht man das wirklich, z.B. wenn man alle Messwerte auf
  126. einer Seite unterbringen will.