Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zuplyx/latex-homework-class

A class for homework assignments written in LaTeX.
https://github.com/zuplyx/latex-homework-class

comp-sci german homework-template latex-class latex-template node-graphs

Last synced: 3 months ago
JSON representation

A class for homework assignments written in LaTeX.

Awesome Lists containing this project

README

        

# LaTeX Homework Class

## What
This is a LaTeX document class. That means you use it with `\documentclass{homework}` at the top of the document. It provides a document layout and some helper commands that make working with questions easy. This version has been adapted to be used in German and extended by the tikz library for the creation of node graphs.

## Installation
Certainly the easiest way to start using this template is to copy the .cls file to your computer in the same directory as your LaTeX project directory.

A better way to install this template is to fork this repository and then clone that fork to a particular folder on your computer:

```
git clone https://github.com//latex-hw-template
```

Then, whenever you need to use the template, you can copy the template to wherever you need it. Also, if there are ever any updates, you can simply run

```
git pull
```

to update the template.

### Preferred Installation

The best way to install this file is to [follow the instructions here][install], keeping in mind that you're trying to install a `.cls` file instead of three `.sty` files.

[install]: https://github.com/jez/latex-solarized#installation

### Use TeXstudio autocompletion

To enable autocompletion for commands from this class, copy [homework.cwl](homework.cwl) to TeXstudio's [cwl directory](https://sourceforge.net/p/texstudio/wiki/Frequently%20Asked%20Questions/#where-are-cwl-files-stored).

## Usage

See the [homework.tex](homework.tex) file for an exhaustive list of usage examples. There are also comments explaining features for which there are no examples given.

The result is the following:

![Screenshot](screenshot.png)

The class file also has a bunch of helper `\usepackage`s that you might want to take a look at in [homework.cls](homework.cls).

For your convenience, the file [template.tex](template.tex) is a nearly-empty
LaTeX file that contains the bare essentials to get started using the homework
class.

### `\question`

To start a question, just type `\question`. It will add the text "Question #" with a line underneath to the document. If you'd like to change "Question" to something else, use

```tex
\renewcommand{\questiontype}{Whatever You Want}
```

Similarly, if you ever need to skip numbers, you can do

```tex
\setcounter{questionCounter}{}
```

So, to skip to the 10th question, `` = 9.

See [homework.tex](homework.tex) for more.

### `\question*`

Some classes like to give their homework questions fancy names. If this is the case, you can use `\question*{The Question's Name}` to make a named question.

See [homework.tex](homework.tex) for more.

### Question Parts

Another common thing on homework assignments is to have multi-part questions. To deal with these, use the form

```tex
\begin{alphaparts}
\questionpart
This will be part (a).
\questionpart
This will be part (b).
\end{alphaparts}
```
or
```tex
\begin{arabicparts}
\questionpart
This will be part x.1.
\questionpart
This will be part x.2.
\end{arabicparts}
```

See [homework.tex](homework.tex) for more.

### Induction Proofs

In math classes, induction proofs come up a lot, and they almost always have the same form: base case, induction hypothesis, and induction step.

```tex
\begin{induction}
\basecase
This is my fancy base case.
\indhyp
Assume some claim.
\indstep
Finish off the proof
\end{induction}
```

### Node graph creation

Certain classes require the creation of node graphs, therefore this class has been extended to include `tikz`. For an example on how to use it to create node graphs, see [homework.tex](homework.tex) or this [tutorial](https://www.javatpoint.com/latex-node-graphs-using-tikz). Additional information about `tikz` can be found in its [manual](http://mirror.physik-pool.tu-berlin.de/pub/CTAN/graphics/pgf/base/doc/pgfmanual.pdf).

### Anonymous Submissions

Certain classes prefer to disassociate names from questions for a more fair
grade assessment. To have your name placed only on a separate title page,
include the `anonymous` option in the `\documentclass` line:

```latex
\documentclass[11pt,anonymous]{homework}
```

For truly anonymous submissions, make sure you remove all personally identifying
information from your preamble.

### One question per page

If you'd like each question to begin on a new page, include the `newpage`
option:

```latex
\documentclass[11pt,newpage]{homework}
```

### Spacious margins

To enhance the readability of your documents, you can add the `largemargins`
option to your documents. This fits less content on a single page, but makes it
much more comfortable for your eyes to scan across the lines.

```latex
\documentclass[11pt,largemargins]
```

This is the default in the template and the example file. Remove this option to
have your text fill more space on the page.

## License
MIT License, see [LICENSE](LICENSE).