This repository provides document classes for LaTeX that target student reports, homework and theses. Although already usable, both classes are still in an early stage and will be enhanced soon.
Language support. The document class for homework (exercss.cls) currently supports only English and German labels out of the box but it's not very hard to add your own ones.
Layout customization. One of my main design goals for this class was to allow even students with few LaTeX skills to easily customize some aspects of the key layout without bothering about all the logical stuff around it. By default, the class itself has - intentionally - a rather minimal design. If you don't like it this way, maybe it can still provide a good base to build upon. Customize layout for homework explains how to configure certain layout aspects and also provides a more colorful example.
Now that you have found this place, you might ask yourself one of the following two questions, which I'll try to answer below.
- Do I want to use these classes?
- How can I use these classes?
Maybe you first want to have a glance at the examples and the screenshots below to get an impression of how the classes can be used what the outcome may look like.
- Homework (exercss.cls):
- Thesis (exerthss.cls): TODO
I start with a description for LaTeX/Git newbies. If that doesn't suit you, you probably know what to do anyway ... Perhaps, I elaborate on other ways later.
Get the document classes. Simply download the document class descriptions. Technically, there are two files, named exerthss.cls and exercss.cls. The former is the base class and as such required. The latter extends the former and is necessary only if you want to use it for solutions to homework. (In a sense, you can read exercss as exercises and exerthss as exercises and theses; I wasn't able to come up with a better name quickly.)
Compose a document. Either use an already existing document (you can copy one from the examples) and set the document class to exerthss or exercss, depending on your use case, or create a new one like the following document test.tex:
\documentclass{exerthss}
\usepackage[utf8]{inputenc}
\usepackage{fontenc}
\begin{document}
Enter some content here!
\end{document}
Then, as usual, you compile the document (using latexmk test
or whatever you prefer). Note that your LaTeX compiler has to be able to find the document classes. If you don't know better, simply copy them into the same directory as the file that you're compiling. If you want to use these classes in multiple documents, in several places, there are better ways to deal with it (which I perhaps will discuss somewhere in the future).
Naturally, there's not much to see in an almost empty document. What is relevant here, is the first line, which sets exerthss to be the document class. Used like this, the class will rely on its default options. You change some aspects of the behaviour by providing options to the class. As an example, if you replace the first line by \documentclass[linenumbers]{exerthss}
the document will contain small line numbers, which may be helpful to discuss a draft of the document.
If you use exercss instead, you should also use specify some meta information (course, group, ...). This is demonstrated in the examples directory.
Both classes build upon the KOMA-Script classes scrartcl (exercises and papers) or scrbook (theses), using DIN-A4 paper and a font size of 11pt as default. Using options, this can be changed however. The following example uses a slightly larger font size, the scrreprt class and line numbers.
\documentclass[
linenumbers,
class=scrreprt,
fontsize=12pt
]{exerthss}
\usepackage[utf8]{inputenc}
\usepackage{fontenc}
\begin{document}
Enter some content here!
\end{document}
Some LaTeX distributions may be missing some required packages.
A known case is the package cm-super. There are several ways to resolve this problem (and similar ones):
- Look for a more complete distribution. I would prefer this. Try TeX Live 2020 for example.
- Download the individual packages. Quick but less sustainable!?
- Use different fonts. I heard that you can add
\usepackage{lmodern}
to the preamble of your document. See a StackExchange discussion for more details on the pros and cons of cm-super and lmodern.
Other problems might be caused by bugs in my code, although I'm trying to prevent this. If you're pretty sure that the bug is in my code and not in yours, I'd be happy if you would create an issue so that I have a chance to fix it. Thanks!