What this is
This is a template designed to ease the workflow when writing documents for the Hochschule Hannover. It is intended to be used in all sophisticated
works, from lab-reports to master’s thesis's.
The project provides custom document-classes caring the HsH-
prefix as well as support files. These classes extend the well known KOMA-Script
classes and customize them with specific configurations, presets and provide commonly needed features.
Provided classes are:
HsH-article
HsH-report
HsH-book (planed)
HsH-standalone
Quick start guide:
recommended Software
As a Tex-Distribution, MiKTeX is recommended, TexLive should also work but I don't use it much.
To edit the .tex
files, you could use any text editor, but I personally like Visual Studio Code the most, which
can also be used for pretty much all other programming languages. Use the Latex Workshop extension,
and you can steal my config file from here.
If you prefer a Tex-only editor, I used Texmaker in the past, and it's also very good.
If you want to use citations in your work, you should get familiar with the biblatex
package and include it in your project. The classes set it up
to use biber
as the backend, which is more modern and has more features than the usual bibtex
, but you will need to set you editor up to also use
this.
I have now Idea how to start, show me!
To get you started, there is a working example Project on the example branch that has loads of tips. Check it out
Online or locally using git checkout example
quick and dirty
To get started, create a new folder for your project somewhere on your PC and create your .tex
file. Copy the class file (.cls
) you want to use and
the HsH-logo.pdf
from the src folder to your project folder. You can optionally copy the config.tex
, but you can also configure everything in your
preamble.
using a proper subfolder structure
The projects also provides a recommendation for a subfolder structure, to keep things organized. You can download the .zip-Archive
and unpack it or clone the repository via git clone https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh.git
.
This has the downside of storing class files and other needed files in the .\src folder, which means it needs to be added to the path searched when
running your latex command (see below).
The provided Makefile demonstrates how to run a successful build, you might want to check it out.
Documentation:
The different Classes
This project provides a set of additional classes designed for use in the Hochschule Hannover, Germany. They extend the well-known KOMA-Script classes by adding styling and providing some additional commands. The provided classes are:
HsH-article
Based on the scrartcl
this class is designed for quick and compact documents. It does not have chapters and therefore never breaks to a new page on its
own. This class is useful for writing lab-protocols and alike.
HsH-report
This is probably the most useful class. It is based on the scrreprt
and can be used for a wide variety of documents, beginning with lab-reports and
ending at complete thesis. The line between article and report is somewhat blurry, so use as you see fit.
HsH-book
// Todo
HsH-standalone
A helper class based on the normal standalone class. It is designed only for creating images as separate documents to keep things organized and compiler times low. It is useful for creating graphs, circuit diagrams or other kind of complex sub documents.
Document Options
The classes accept a number of new options, which are passed to the class via \documentclass[options]{class}
. All unknown options are passed to the
underlying subclass and processed there. So you can use everything from the corresponding documentations.
Default Options
If you don't define something different, the classes set your project up to use the following options:
-
fontsize=11pt
the font size -
a4paper
the paper size -
ngerman
the document language -
sans
the font type (Sans Serif) -
margin=0.25cm
ONLY forhsh-standalone
, adds a empty margin around all pages
List of all options
-
german
,ngerman
These two options are aliases. They switch the document language to German, which affects autogenerated naming as well as the formatting of numbers. This is implemented by using an internal if switch, called\@german
, which is set to true. -
english
This option is the opposite of the previous ones. It sets the document language to English by setting\@german
to false. -
f1
-f5
To use the correct logo of a certain faculty, you can define your faculty with these options. If none of these are present, a generic grey logo is chosen.
The different logos correspond to different pages of theHsH-Logo.pdf
, so you could change this file and therefore the used logo as long as you keep the page numbering consistent with the original. -
sans
This option sets the font family to Sans Serif. -
roman
The opposite ofsans
, sets a roman/serif font.
All remaining options are passed along to the respective subclasses and processed there. This means, that you can use all the options described in their respective documentations.
Packages
Provided Packages
These Packages are automatically included by the classfile. These are either important for provided functions or so generally useful that they are used in pretty much every project anyway.
-
inputenc
for input encoding, all input files (.tex files, etc.) are expected to be UTF8 encoded -
fontenc
for output encoding, set to T1, if you use non-Latin characters (like Cyrillic, etc.) you need to add that -
lmodern
is a font -
babel
for German typesetting -
geometry
for margins and stuff, (will probably be removed at some point) -
scrlayer-scrpage
KOMA package for headers and footers -
scrhack
KOMA package for compatibility with listings -
pgffor
allows for the use of for-loops (internal) -
graphicx
for importing images -
hyperref
for references and links -
bookmark
for bookmarking -
amsmath
for a lot of general purpose maths features -
csquotes
makes quotations easier -
ziffer
is only included when the German document option is provided, sets comma as decimal
Recommended Packages
These packages are recommended, but not included automatically to save compile time when they are not needed. If you want to use one of them, include it in your preamble.