Skip to content
Snippets Groups Projects
Commit 7a62d055 authored by Jan Wille's avatar Jan Wille
Browse files

Aufräumen und Konfigurieren

parent 5e0c4c50
No related branches found
No related tags found
No related merge requests found
.vscode/
.aux/ .aux/
build/ !.vscode/*
*.synctex.gz *.synctex.gz
*.synctex(busy) *.synctex(busy)
*.log *.log
{
"recommendations": [
"james-yu.latex-workshop",
"valentjn.vscode-ltex",
"stkb.rewrap"
]
}
{"rule":"UPPERCASE_SENTENCE_START","sentence":"^\\Qchap/abstract,\\E$"}
{"rule":"GERMAN_SPELLER_RULE","sentence":"^\\QJan Wille 1535115 Bachelorarbeit Video-basierte Fahrspurerkennung von mobilen Robotern 09.05.2022 - 01.08.2022 Prof. Dr.-Ing. Hanno Homann Prof. Dr.-Ing. Martin Mutz lane-detection\\E$"}
{
"rewrap.autoWrap.enabled": true,
"rewrap.wrappingColumn": 150,
"editor.rulers": [150],
"ltex.language": "de-DE",
"latex-workshop.latex.autoBuild.run": "onSave",
"latex-workshop.showContextMenu": true,
"latex-workshop.latex.recipes": [
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
{
"name": "biber",
"tools": [
"biber"
]
},
{
"name": "pdflatex ➞ biber ➞ 2× pdflatex",
"tools": [
"pdflatex",
"biber",
"pdflatex",
"pdflatex"
]
},
{
"name": "Optimize PDF",
"tools": [
"gs opt printer"
]
}
],
"latex-workshop.latex.tools": [
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-aux-directory=%OUTDIR%/.aux",
"-output-directory=%OUTDIR%",
"%DOC%"
],
"env": {
"TEXINPUTS": "%WORKSPACE_FOLDER%/src/"
}
},
{
"name": "biber",
"command": "biber",
"args": [
"-output-directory=%OUTDIR%/.aux",
"%DOCFILE%"
]
},
{
"name": "gs opt printer",
"command": "mgs",
"args": [
"-sDEVICE=pdfwrite",
"-dPDFSETTINGS=/printer",
"-o",
"%OUTDIR%/%DOCFILE%_optimized.pdf",
"%OUTDIR%/%DOCFILE%.pdf"
]
},
{
"name": "gs opt extrem",
"command": "mgs",
"args": [
"-sDEVICE=pdfwrite",
"-dPDFSETTINGS=/ebook",
"-o",
"%OUTDIR%/%DOCFILE%_optimized.pdf",
"%OUTDIR%/%DOCFILE%.pdf"
]
}
],
}
File added
\documentclass[f1,twoside]{HsH-report} % documentclass
% include packages here
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{siunitx}
\usepackage{listings}
\usepackage{biblatex}
\setuptoc{toc}{totoc}
\addbibresource{meta/Quellenverzeichnis.bib}
%% coment out the folowing file definitions to exclude them from build temporariely and sace compiletime
\includeonly{
chap/abstract,
}
%% projects specific data:
\author{Jan Wille}
\matrikelnr{1535115}
\subject{Bachelorarbeit}
\title{Video-basierte Fahrspurerkennung von mobilen Robotern}
%\subtitle{Subtitle}
\date{09.05.2022 - 01.08.2022}
\erstpruefer{Prof. Dr.-Ing. Hanno Homann}
\zweitpruefer{Prof. Dr.-Ing. Martin Mutz}
\keywords{lane-detection}
\begin{document} % --------------------------------------------------------------------------------
\frontmatter
\maketitle[r]
\declarationAuthorship
\include{chap/abstract}
\tableofcontents
\mainmatter
\printbibliography
\listoffigures
\listoftables
\end{document}
# Change Log
All notable changes to this project will be documented in this file.
## [Current]
### Changed
- `\title` now accepts an optional argument. It will be used as a short version of the title and will be put into the header.
### Fixed
- `\ihead` and `\ohead` now have a max width and will break into multiple lines (#7)
## [1.4] - 2022-03-28
### Added
- defined `\fronmatter`, `\mainmatter` and `\backmatter` for HsH-report class
- included the caption package to fix #6
### Fixes
- references now get point to the top of floats, not to the captions position (#6)
## [1.3] - 2022-03-07
### Changed
- moved the documentation into the README file
- added the outdir into the makefile rule prerequisite
- improved the default settings for the listings package
### Removed
- WIKI has been removed. All its content is now inside the README file.
## [1.2] - 2021-10-24
### Fixed
- Issues that came with the Kernel update from 01.06.2021 are fixed (#2, #3, #4)
- typos
### Added
- defined checklist environment via enumitem-package in `config.tex`
- added required package for enum item
## [1.1] - 2021-04-22
This version provides mostly minor fixed and upgrades.
**IMPORTANT:** the `personal.tex` has been removed
### Added
- Dtx installer file. All class files can be generated from this file. This removes code duplications and allows for more easy maintenance as well as
deployment. This file will only be available on a separate branch and not be part of the master branch.
### Changed
- Makefile has been reworked. Should now be more stable and easier to understand
- Title page as been improved. You can now align the standard title page as you prefer
- the declaration of authorship now uses the proper babel interface for localization
- Licence is now LPPL
### Removed
- `personal.tex` has been removed. It pretty much not used anyway. All contents have been moved to the project files preamble.
## [1.0] - 2021-03-31
Initial Version. Official first release
### Added
- HsH-article class
- HsH-report class
- HsH-standalone class
- `config.tex` file
- `personal.tex` file
- folder structure, with readme files for every folder
- empty project file
- makefile
- example on the example branch
The LaTeX Project Public License
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
LPPL Version 1.3c 2008-05-04
Copyright 1999 2002-2008 LaTeX3 Project
Everyone is allowed to distribute verbatim copies of this
license document, but modification of it is not allowed.
PREAMBLE
========
The LaTeX Project Public License (LPPL) is the primary license under
which the LaTeX kernel and the base LaTeX packages are distributed.
You may use this license for any work of which you hold the copyright
and which you wish to distribute. This license may be particularly
suitable if your work is TeX-related (such as a LaTeX package), but
it is written in such a way that you can use it even if your work is
unrelated to TeX.
The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
below, gives instructions, examples, and recommendations for authors
who are considering distributing their works under this license.
This license gives conditions under which a work may be distributed
and modified, as well as conditions under which modified versions of
that work may be distributed.
We, the LaTeX3 Project, believe that the conditions below give you
the freedom to make and distribute modified versions of your work
that conform with whatever technical specifications you wish while
maintaining the availability, integrity, and reliability of
that work. If you do not see how to achieve your goal while
meeting these conditions, then read the document `cfgguide.tex'
and `modguide.tex' in the base LaTeX distribution for suggestions.
DEFINITIONS
===========
In this license document the following terms are used:
`Work'
Any work being distributed under this License.
`Derived Work'
Any work that under any applicable law is derived from the Work.
`Modification'
Any procedure that produces a Derived Work under any applicable
law -- for example, the production of a file containing an
original file associated with the Work or a significant portion of
such a file, either verbatim or with modifications and/or
translated into another language.
`Modify'
To apply any procedure that produces a Derived Work under any
applicable law.
`Distribution'
Making copies of the Work available from one person to another, in
whole or in part. Distribution includes (but is not limited to)
making any electronic components of the Work accessible by
file transfer protocols such as FTP or HTTP or by shared file
systems such as Sun's Network File System (NFS).
`Compiled Work'
A version of the Work that has been processed into a form where it
is directly usable on a computer system. This processing may
include using installation facilities provided by the Work,
transformations of the Work, copying of components of the Work, or
other activities. Note that modification of any installation
facilities provided by the Work constitutes modification of the Work.
`Current Maintainer'
A person or persons nominated as such within the Work. If there is
no such explicit nomination then it is the `Copyright Holder' under
any applicable law.
`Base Interpreter'
A program or process that is normally needed for running or
interpreting a part or the whole of the Work.
A Base Interpreter may depend on external components but these
are not considered part of the Base Interpreter provided that each
external component clearly identifies itself whenever it is used
interactively. Unless explicitly specified when applying the
license to the Work, the only applicable Base Interpreter is a
`LaTeX-Format' or in the case of files belonging to the
`LaTeX-format' a program implementing the `TeX language'.
CONDITIONS ON DISTRIBUTION AND MODIFICATION
===========================================
1. Activities other than distribution and/or modification of the Work
are not covered by this license; they are outside its scope. In
particular, the act of running the Work is not restricted and no
requirements are made concerning any offers of support for the Work.
2. You may distribute a complete, unmodified copy of the Work as you
received it. Distribution of only part of the Work is considered
modification of the Work, and no right to distribute such a Derived
Work may be assumed under the terms of this clause.
3. You may distribute a Compiled Work that has been generated from a
complete, unmodified copy of the Work as distributed under Clause 2
above, as long as that Compiled Work is distributed in such a way that
the recipients may install the Compiled Work on their system exactly
as it would have been installed if they generated a Compiled Work
directly from the Work.
4. If you are the Current Maintainer of the Work, you may, without
restriction, modify the Work, thus creating a Derived Work. You may
also distribute the Derived Work without restriction, including
Compiled Works generated from the Derived Work. Derived Works
distributed in this manner by the Current Maintainer are considered to
be updated versions of the Work.
5. If you are not the Current Maintainer of the Work, you may modify
your copy of the Work, thus creating a Derived Work based on the Work,
and compile this Derived Work, thus creating a Compiled Work based on
the Derived Work.
6. If you are not the Current Maintainer of the Work, you may
distribute a Derived Work provided the following conditions are met
for every component of the Work unless that component clearly states
in the copyright notice that it is exempt from that condition. Only
the Current Maintainer is allowed to add such statements of exemption
to a component of the Work.
a. If a component of this Derived Work can be a direct replacement
for a component of the Work when that component is used with the
Base Interpreter, then, wherever this component of the Work
identifies itself to the user when used interactively with that
Base Interpreter, the replacement component of this Derived Work
clearly and unambiguously identifies itself as a modified version
of this component to the user when used interactively with that
Base Interpreter.
b. Every component of the Derived Work contains prominent notices
detailing the nature of the changes to that component, or a
prominent reference to another file that is distributed as part
of the Derived Work and that contains a complete and accurate log
of the changes.
c. No information in the Derived Work implies that any persons,
including (but not limited to) the authors of the original version
of the Work, provide any support, including (but not limited to)
the reporting and handling of errors, to recipients of the
Derived Work unless those persons have stated explicitly that
they do provide such support for the Derived Work.
d. You distribute at least one of the following with the Derived Work:
1. A complete, unmodified copy of the Work;
if your distribution of a modified component is made by
offering access to copy the modified component from a
designated place, then offering equivalent access to copy
the Work from the same or some similar place meets this
condition, even though third parties are not compelled to
copy the Work along with the modified component;
2. Information that is sufficient to obtain a complete,
unmodified copy of the Work.
7. If you are not the Current Maintainer of the Work, you may
distribute a Compiled Work generated from a Derived Work, as long as
the Derived Work is distributed to all recipients of the Compiled
Work, and as long as the conditions of Clause 6, above, are met with
regard to the Derived Work.
8. The conditions above are not intended to prohibit, and hence do not
apply to, the modification, by any method, of any component so that it
becomes identical to an updated version of that component of the Work as
it is distributed by the Current Maintainer under Clause 4, above.
9. Distribution of the Work or any Derived Work in an alternative
format, where the Work or that Derived Work (in whole or in part) is
then produced by applying some process to that format, does not relax or
nullify any sections of this license as they pertain to the results of
applying that process.
10. a. A Derived Work may be distributed under a different license
provided that license itself honors the conditions listed in
Clause 6 above, in regard to the Work, though it does not have
to honor the rest of the conditions in this license.
b. If a Derived Work is distributed under a different license, that
Derived Work must provide sufficient documentation as part of
itself to allow each recipient of that Derived Work to honor the
restrictions in Clause 6 above, concerning changes from the Work.
11. This license places no restrictions on works that are unrelated to
the Work, nor does this license place any restrictions on aggregating
such works with the Work by any means.
12. Nothing in this license is intended to, or may be used to, prevent
complete compliance by all parties with all applicable laws.
NO WARRANTY
===========
There is no warranty for the Work. Except when otherwise stated in
writing, the Copyright Holder provides the Work `as is', without
warranty of any kind, either expressed or implied, including, but not
limited to, the implied warranties of merchantability and fitness for a
particular purpose. The entire risk as to the quality and performance
of the Work is with you. Should the Work prove defective, you assume
the cost of all necessary servicing, repair, or correction.
In no event unless required by applicable law or agreed to in writing
will The Copyright Holder, or any author named in the components of the
Work, or any other party who may distribute and/or modify the Work as
permitted above, be liable to you for damages, including any general,
special, incidental or consequential damages arising out of any use of
the Work or out of inability to use the Work (including, but not limited
to, loss of data, data being rendered inaccurate, or losses sustained by
anyone as a result of any failure of the Work to operate with any other
programs), even if the Copyright Holder or said author or said other
party has been advised of the possibility of such damages.
MAINTENANCE OF THE WORK
=======================
The Work has the status `author-maintained' if the Copyright Holder
explicitly and prominently states near the primary copyright notice in
the Work that the Work can only be maintained by the Copyright Holder
or simply that it is `author-maintained'.
The Work has the status `maintained' if there is a Current Maintainer
who has indicated in the Work that they are willing to receive error
reports for the Work (for example, by supplying a valid e-mail
address). It is not required for the Current Maintainer to acknowledge
or act upon these error reports.
The Work changes from status `maintained' to `unmaintained' if there
is no Current Maintainer, or the person stated to be Current
Maintainer of the work cannot be reached through the indicated means
of communication for a period of six months, and there are no other
significant signs of active maintenance.
You can become the Current Maintainer of the Work by agreement with
any existing Current Maintainer to take over this role.
If the Work is unmaintained, you can become the Current Maintainer of
the Work through the following steps:
1. Make a reasonable attempt to trace the Current Maintainer (and
the Copyright Holder, if the two differ) through the means of
an Internet or similar search.
2. If this search is successful, then enquire whether the Work
is still maintained.
a. If it is being maintained, then ask the Current Maintainer
to update their communication data within one month.
b. If the search is unsuccessful or no action to resume active
maintenance is taken by the Current Maintainer, then announce
within the pertinent community your intention to take over
maintenance. (If the Work is a LaTeX work, this could be
done, for example, by posting to comp.text.tex.)
3a. If the Current Maintainer is reachable and agrees to pass
maintenance of the Work to you, then this takes effect
immediately upon announcement.
b. If the Current Maintainer is not reachable and the Copyright
Holder agrees that maintenance of the Work be passed to you,
then this takes effect immediately upon announcement.
4. If you make an `intention announcement' as described in 2b. above
and after three months your intention is challenged neither by
the Current Maintainer nor by the Copyright Holder nor by other
people, then you may arrange for the Work to be changed so as
to name you as the (new) Current Maintainer.
5. If the previously unreachable Current Maintainer becomes
reachable once more within three months of a change completed
under the terms of 3b) or 4), then that Current Maintainer must
become or remain the Current Maintainer upon request provided
they then update their communication data within one month.
A change in the Current Maintainer does not, of itself, alter the fact
that the Work is distributed under the LPPL license.
If you become the Current Maintainer of the Work, you should
immediately provide, within the Work, a prominent and unambiguous
statement of your status as Current Maintainer. You should also
announce your new status to the same pertinent community as
in 2b) above.
WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
======================================================
This section contains important instructions, examples, and
recommendations for authors who are considering distributing their
works under this license. These authors are addressed as `you' in
this section.
Choosing This License or Another License
----------------------------------------
If for any part of your work you want or need to use *distribution*
conditions that differ significantly from those in this license, then
do not refer to this license anywhere in your work but, instead,
distribute your work under a different license. You may use the text
of this license as a model for your own license, but your license
should not refer to the LPPL or otherwise give the impression that
your work is distributed under the LPPL.
The document `modguide.tex' in the base LaTeX distribution explains
the motivation behind the conditions of this license. It explains,
for example, why distributing LaTeX under the GNU General Public
License (GPL) was considered inappropriate. Even if your work is
unrelated to LaTeX, the discussion in `modguide.tex' may still be
relevant, and authors intending to distribute their works under any
license are encouraged to read it.
A Recommendation on Modification Without Distribution
-----------------------------------------------------
It is wise never to modify a component of the Work, even for your own
personal use, without also meeting the above conditions for
distributing the modified component. While you might intend that such
modifications will never be distributed, often this will happen by
accident -- you may forget that you have modified that component; or
it may not occur to you when allowing others to access the modified
version that you are thus distributing it and violating the conditions
of this license in ways that could have legal implications and, worse,
cause problems for the community. It is therefore usually in your
best interest to keep your copy of the Work identical with the public
one. Many works provide ways to control the behavior of that work
without altering any of its licensed components.
How to Use This License
-----------------------
To use this license, place in each of the components of your work both
an explicit copyright notice including your name and the year the work
was authored and/or last substantially modified. Include also a
statement that the distribution and/or modification of that
component is constrained by the conditions in this license.
Here is an example of such a notice and statement:
%% pig.dtx
%% Copyright 2005 M. Y. Name
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is M. Y. Name.
%
% This work consists of the files pig.dtx and pig.ins
% and the derived file pig.sty.
Given such a notice and statement in a file, the conditions
given in this license document would apply, with the `Work' referring
to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
referring to any `LaTeX-Format', and both `Copyright Holder' and
`Current Maintainer' referring to the person `M. Y. Name'.
If you do not want the Maintenance section of LPPL to apply to your
Work, change `maintained' above into `author-maintained'.
However, we recommend that you use `maintained', as the Maintenance
section was added in order to ensure that your Work remains useful to
the community even when you can no longer maintain and support it
yourself.
Derived Works That Are Not Replacements
---------------------------------------
Several clauses of the LPPL specify means to provide reliability and
stability for the user community. They therefore concern themselves
with the case that a Derived Work is intended to be used as a
(compatible or incompatible) replacement of the original Work. If
this is not the case (e.g., if a few lines of code are reused for a
completely different task), then clauses 6b and 6d shall not apply.
Important Recommendations
-------------------------
Defining What Constitutes the Work
The LPPL requires that distributions of the Work contain all the
files of the Work. It is therefore important that you provide a
way for the licensee to determine which files constitute the Work.
This could, for example, be achieved by explicitly listing all the
files of the Work near the copyright notice of each file or by
using a line such as:
% This work consists of all files listed in manifest.txt.
in that place. In the absence of an unequivocal list it might be
impossible for the licensee to determine what is considered by you
to comprise the Work and, in such a case, the licensee would be
entitled to make reasonable conjectures as to which files comprise
the Work.
# Makefile for Latex project # Makefile for Latex project
NAME = project NAME = Bachelorarbeit
PDFLATEX = pdflatex PDFLATEX = pdflatex
BIBTEX = biber BIBTEX = biber
# OUTDIR needs to be at least this, can not be empty: # OUTDIR needs to be at least this, can not be empty:
OUTDIR = . OUTDIR = .
AUXDIR = .aux AUXDIR = .aux
IGNORE = src/% IGNORE = src/% chap/%
GARBAGE_PATTERNS = *.aux *.bbl *.bcf *.blg *.idx *.ind *.lof *.lot *.log *.xml *.toc *.synctex(busy) *.synctex.gz(busy) GARBAGE_PATTERNS = *.aux *.bbl *.bcf *.blg *.idx *.ind *.lof *.lot *.log *.xml *.toc *.synctex(busy) *.synctex.gz(busy)
# comment this out to get all outputs: # comment this out to get all outputs:
......
# What this is # Aufgabenstellung Bachelorarbeit
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.
[![Version](https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh/-/badges/release.svg)](https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh/-/releases) ## Thema
**Provided classes are:** Video-basierte Fahrspurerkennung von mobilen Robotern
- `HsH-article` ## Problemstellung
- `HsH-report`
- `HsH-book` (planed)
- `HsH-standalone`
Auf der Projektfläche „Autonomes Fahren“ des Instituts für Konstruktionselemente, Mechatronik und Elektromobilität (IKME) der Hochschule Hannover ist
eine große urbane Kreuzung im Maßstab 1:18 nachgebildet. Hier sollen in Zukunft automatisierte Logistikkonzepte mit mobilen Roboterfahrzeugen
entwickelt und getestet werden. Die Roboter sind jeweils mit einer nach vorne gerichteten Videokamera ausgerüstet. Um die Fahrzeuge damit sicher
steuern zu können, soll damit eine zuverlässige Fahrspurerkennung benötigt.
## Aufgabe der Arbeit
# Quick start guide Ziel der Arbeit ist es, eine echtzeitfähige Erkennung der Fahrspurmarkierungen aus dem Video-Bilddatenstrom zu realisieren und die Position der
Markierungen relativ zum Fahrzeug anzugeben. Im eine geometrisch richtige Darstellung zu erhalten, soll zunächst eine Bestimmung der intrinsischen und
extrinsischen Kamera-Kalibrierung durchgeführt werden. Mit den so bestimmten intrinsischen Parametern so dann eine Rektifizierung der Bilder
durchgeführt werden.
Auf den rektifizierten Bildern soll dann die eigentlich Erkennung der Spurmarkierungen erfolgen. Dies kann a) kanten-basiert oder b) mit tiefen
neuronalen Netzen erfolgen. Die extrinsische Kalibrierung soll dann genutzt werden, um die Position der Markierungen in Fahrzeug-Koordinaten
umzurechnen. Zusätzlich kann die Farbinformation des Bildes genutzt werden um zwischen weißen und gelben Linien zu unterscheiden.
Gegebenenfalls kann auch das zeitliche Tracking eines Spurmodells umgesetzt werden.
Die Bildverarbeitung sollte unter ROS auf der Jetson-nano Hardware unter ROS in Echtzeit lauffähig sein. Eine erste Implementierung kann mit Python erfolgen. Für den längerfristigen Einsatz wäre eine Umsetzung in C++ mit ROS Nodelets wünschenswert.
## Recommended software
As a Tex-Distribution, [MiKTeX is recommended](https://miktex.org/), TexLive should also work, but I don't use it much. # Umgehen mit dem Repository
To edit the `.tex` files, you could use any text editor, but I personally like [Visual Studio Code](https://code.visualstudio.com/) the most, which
can also be used for pretty much all other programming languages. Use the [Latex Workshop extension](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop),
and you can steal my config file from [here](https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh/-/snippets/111).
If you prefer a Tex-only editor, I used [Texmaker](https://www.xm1math.net/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 Das Repository basiert auf [dieser Vorlage](https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh). Dort befindet sich alle notwendige
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 Dokumentation.
this.
Es wird sowohl der LaTeX-Quellcode, als auch die fertige PDF unter Versionskontrolle gestellt. Um die PDF selbst zu erzeugen, folgenden Befehle
## I have now Idea how to start, show me! verwenden:
To get you started, there is a working example Project on the example branch that has loads of tips. Check it out
[Online](https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh/-/tree/example) 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](https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh/-/archive/master/latex-template-hsh-master.zip)
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](#adding-src-to-path)).
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](https://ctan.org/pkg/koma-script) 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`
// To-do
### `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 for `hsh-standalone`, adds an 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 the `HsH-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 of `sans`, 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 respec­tive documentations.
## Packages
### Provided packages
These Packages are automatically included by the class file. 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
- `caption` to customize captions and make references point to the beginning of the floats
- `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.
- `bibtex` a package for citation and source management. Keep in mind, that there are multiple backends and `biber` is configured, if you want to
continue using the old backend, type `\usepackage[backend=bibtex]{biblatex}` in your preamble.
- `subfigure` one of multiple packages, that allows you to put multiple images into a figure
- `siunitx` is an amazing tool for Units
- `csvsimple` allows you to import CSV files, which is handy if you want to display measurements
- `listings` allows you to include format code snippets
- `pgfplots` is a great maths engine, which can create amazing plots
- `tikz` is already included with pgfplots, but is also a nice standalone package
- `circuitikz` expands the previous packages with macros for circuit creation
- `standalone` is a package, that allows you to create simple images from sub-texfiles. This can save a lot of compile time, especially with tikz and
alike.
There's more...
## Commands
The classes provide a few commands of their own. Here are some explanations:
### `\maketitle[align]`
This command is not new, but changed. It creates a title-page fitting for most use cases. You can change its alignment via the optional parameter by
using on of the three options `r`, `c` or `l` for right aligned, centred or left aligned.
You can use the following macros to define the different information presented on the title-page:
- `\author` as usual, this is where you put your name. But you can also input a comma-seperated list, if more than one person has written in this file.
- `\matrikelnr` a new macro for your matriculation number. This is optional, but will be put next to your name if present. You can input again a
comma-seperated list, if more than one author is present.
- `\titlehead` is for a small line left of the logo. This is usually the department or division. May be empty
- `\subject` is for a broad description of what your file is. "Laborbericht" for example. Can be empty.
- `\title` is quite obvious. The only one that must be present. I additionally accept an optional parameter which will be treated as a short form of
the title and used in the header (this makes sense if your title is very long and fills your header too much)
- `\subtitle` is a smaller second line under the title. Can be empty
- `\date` is the date of your project. You can use a custom one, but if you don't set it, the current date at compile time will be used.
- `\professor` a new macro do define your professors name, if needed.
- `\keywords` will not be printed on the title-page, but rather on the end of the abstract, if you define some. They will also be but into the PDFs
metadata.
### `\declarationAuthorship`
This macro will typeset a declaration of authorship, which is needed for most academic works. It will be produced at the bottom of the current page,
separated by a horizontal line.
The macro is defined in German and English and will automatically match your document language.
### `\abs`
A helpful macro for absolute values. It can be used in maths mode and will put vertical lines around its content, that match the height of the
content.
This macro is only provided, meaning if another package defines it, its definition will be used.
### HsH-Logo macros
These are more of a by-product, but they are defined, so you could use them:
- `\HsHlogoPath` the path to an image, that is used as the logo. Given a default value by the class.
- `\HsHlogoPage` the page of the previous file, which is used. This is changed with the `f1`-`f5` options.
- `\includeHsHlogohere[width]` this macro produces the logo using the previous macros. The width can optionally be provided.
# Common additions and expansions (Snippets)
Sadly most Profs have widely different expectations when it comes to styling of written works. So you might find yourself having to change some
settings. For some cases this has already been done and, to help others, uploaded in
[the snippets section](https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh/-/snippets) of the project. Most of them are only visible when you
are logged in!!
Also, if you create your own set of additions that are useful for other, feel free to contact me and I will give you access right, so you can upload
it there.
# Frequently Asked Questions
## What is the `config.tex`?
These file is an easy way to configure your project in a single central location, so it can be used over multiple documents in the same project as
well as allowing easy reuse of configs for other projects.
The provided classes automatically check for this file and use it, if it is present. But they are completely optional, so you can just ditch them if
you want to. Keep in mind that the `config.tex` will be included right before the `\begin{document}`, so it overrides all settings you may have put
in your preamble.
The `config.tex` is intended for configurations. For example new- or redefinitions of commands should be put here. Also, packages-specific configs are
loaded here. The `\@ifpackageloaded{pakagename}{true}{false}` macro allows to check for the existence of a package, so that you can reuse config files,
even if you don't use all the same packages.
## Adding _./src_ to path
You need to do this if you get errors like this:
> ! LaTeX Error: File `HsH-report.cls' not found.
This means LaTeX can't find the additional files provided by this project, and you need to tell it that they are inside the _./src_ directory.
Here is how to do that:
### Using MiKTeX
MiKTeX makes this very easy by adding an option for that. Just add `-include-directory=./src` to your call to `pdflatex`.
For building from sub folders, just add a second `-include-directory=../src` to your call.
### Using Texmaker and MiKTeX
As stated above, you just need to extend your Latex-call with the needed include path.
To do this, go to _Options → config Texmaker → Commands_
change the pdflatex command to:
```bash ```bash
pdflatex -synctex=1 -interaction=nonstopmode -include-directory=./src -include-directory=../src %.tex make
```
### Using VS Code with LaTeX Workshop
In VS Code you can configure your launch to set environment variables. Just edit your `settings.json`, so that your pdflatex tool contains a `env:`
(add it, if it isn't there yet). If you use the template below, you will also get some additional nice configurations. See also
[here](https://lab.it.hs-hannover.de/qxx-tul-u1/latex-template-hsh/-/snippets/111) for some additional configs.
```json
"latex-workshop.latex.tools": [
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-aux-directory=%OUTDIR%/.aux",
"-output-directory=%OUTDIR%",
"%DOC%"
],
"env": {
"TEXINPUTS": "%DIR%/src/;%DIR%/../src/"
}
}
]
``` ```
### On Overleaf
The easiest way would be to just move the class file you need and the `HsH-logo.pdf` and `config.tex` to the project root (next to your
`project.tex`).
Alternatively, overleaf uses `latexmk` in the background, so you can change its configuration. As explained
[here](https://www.overleaf.com/learn/latex/Questions/I_have_a_lot_of_.cls%2C_.sty%2C_.bst_files%2C_and_I_want_to_put_them_in_a_folder_to_keep_my_project_uncluttered._But_my_project_is_not_finding_them_to_compile_correctly),
add the `latexmkrc` file and put this line into it:
```bash
$ENV{'TEXINPUTS'}='./src/:';
```
Now your project should compile just fine.
## Using an _.aux_ directory
It is very useful to define subdirectory for all the files produced during a latex run. Here is how you can keep your directory cleaner.
### MiKTeX
MiKTeX allows you to define a directory to put all the temporary files in via the option `-aux-directory`. So you can modify your pdflatex call like
this:
```bash
pdflatex -aux-directory=.aux project.tex
```
This is different from where the produced PDF is placed. This can be modified using the `-output-directory` option. So calling latex like the
following, will produce a `pdf` next to the `tex` file and all temporary files in the subdirectory `.aux`
```bash
pdflatex -output-directory=. -aux-directory=.aux project.tex
```
### TexLive
TexLive does not have this functionality built-in.
## LaTeX errors
> You have requested document class \`src/HsH-report', but the document class provides \`HsH-report'.
This happens when you tried to use something like `\documentclass{src/HsH-report}`, which was a good idea, but doesn't quite work. You need to properly
add the `src` directory to the path searched by LaTeX (as explained [here](#adding-src-to-path)). You can than simply use `\documentclass{HsH-report}`.
## BibTeX errors
> Sorry, but BibTeX did not succeed
You are probably using `bibtex` as your backend, but `biber` the standard configuration. You can change it, see
[here for most editors](https://texwelt.de/fragen/1909/wie-verwende-ich-biber-in-meinem-editor) and [here for VS Code](https://tex.stackexchange.com/questions/459640/implementing-biber-for-biblatex-in-microsoft-visual-studio-code/459933#459933)
or use `\usepackage[backend=bibtex]{biblatex}` in your preamble to keep using BibTeX.
## Italic vs. upright Index? (changing subscript)
The classes by default set all sub scripts upright ("steil" in German), because this is required in Germany in most cases.
You can deactivate this permanently with `\normalsubscripts` and reactivate it with `\upsubscripts`.
If you want to change it for a single use, you can use the original Tex Macro `\sb{}` instead of the `_` to get the original behaviour.
DO NOT use `_\math..{}`! This would be a nested font change and lead to unexpected results. `\sb{\math..{}}` is possible.
# Bibliography folder
This folder is for bibliographic purposes. Here should be `.bib` files for usage with the `biblatex`package and source documents like PDFs,
presentations or downloaded web-pages.
\begin{abstract}
\end{abstract}
# CSV folder (comma separate values)
This folder is for measurement readings and other kinds of data collection.
It is named *CSV*, but you could also use different file types, even though the `.csv` type is the easiest to include in LaTeX.
Keep in mind, that the config sets the `;` as the separator, which is the German standard
# Export Excel to CSV
Excel is a great tool for collecting and doing calculation on measured data, but is not so good for using that data in other tools. That's why there
is a VBA macro, that makes it super easy to export excel-sheets into separate CSV documents, which can be used in Latex and easily reexported on
changes in the Excel file.
File moved
\documentclass[f1]{HsH-report} % documentclass
% include packages here
%% projects specific data:
\author{
Max Mustermann,
Mira Musterfrau
}
\matrikelnr{
1234567,
9876543
}
\titlehead{titlehead}
\subject{Subject}
\title{Title}
\subtitle{Subtitle}
\date{\today}
\professor{Professor}
\keywords{keyword}
\begin{document} % --------------------------------------------------------------------------------
% your code goes here
\end{document}
%%
%% This is file `HsH-article.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% HsH-classes.dtx (with options: `article')
%%
%% This is a generated file.
%%
%% Copyright (C) 2021 by Jan Wille <mail@janwille.de>
%%
%% This file may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
%% or (at your option) any later version. The latest version of this
%% license is in:
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3 or later is part of all distributions of LaTeX version
%% 2021/01/01 or later.
%%
\typeout{Adapted from KOMA script for use in Hochschule Hannover <2022-03-28> Jan Wille}
\NeedsTeXFormat{LaTeX2e}
\newcommand{\myClassName}{HsH-article}
\ProvidesClass{\myClassName}[2022/03/28 v1.4 HsH-Class based on KOMA]
%% commands for HsH-logo
\newcommand{\HsHlogoPath}{HSH-Logo.pdf}
\newcommand{\HsHlogoPage}{1}
\newcommand{\includeHsHlogohere}[1][5cm]{\includegraphics[width=#1,page=\HsHlogoPage]{\HsHlogoPath}}
\newif\if@german%
%% document options -------------------------------------------------------------------------------
\DeclareOption{german}{
\@germantrue
}
\DeclareOption{ngerman}{
\@germantrue
}
\DeclareOption{english}{
\@germanfalse
}
\DeclareOption{f1}{
\renewcommand{\HsHlogoPage}{2}
}
\DeclareOption{f2}{
\renewcommand{\HsHlogoPage}{3}
}
\DeclareOption{f3}{
\renewcommand{\HsHlogoPage}{4}
}
\DeclareOption{f4}{
\renewcommand{\HsHlogoPage}{5}
}
\DeclareOption{f5}{
\renewcommand{\HsHlogoPage}{6}
}
\DeclareOption{sans}{
\renewcommand{\familydefault}{\sfdefault}
}
\DeclareOption{roman}{
\renewcommand{\familydefault}{\rmdefault}
}
\DeclareOption*{\expandafter\PassOptionsToClass\expandafter{\CurrentOption}{scrartcl}}
\ExecuteOptions{fontsize=11pt,a4paper,ngerman,sans} % default options
\ProcessOptions\relax
%% Load KOMA class
\LoadClass{scrartcl}
\KOMAoption{toc}{bibliography,listof}
%% package loading and config ---------------------------------------------------------------------
\PassOptionsToPackage{utf8}{inputenc}
\RequirePackage{inputenc}
\PassOptionsToPackage{T1}{fontenc}
\RequirePackage{fontenc}
\RequirePackage{lmodern}
\RequirePackage{graphicx}
\RequirePackage{amsmath}
\if@german\RequirePackage{ziffer}\fi
\PassOptionsToPackage{left=3cm,right=2.5cm,top=3cm,bottom=3cm}{geometry}
\RequirePackage{geometry}
\if@german\PassOptionsToPackage{ngerman}{babel}\else\PassOptionsToPackage{english}{babel}\fi
\RequirePackage{babel}
\PassOptionsToPackage{headsepline}{scrlayer-scrpage}
\RequirePackage{scrlayer-scrpage}
\RequirePackage{scrhack}
\PassOptionsToPackage{hidelinks}{hyperref}
\RequirePackage{hyperref}
\PassOptionsToPackage{hypcap=true}{caption}
\RequirePackage{caption}
\RequirePackage{bookmark}
\PassOptionsToPackage{babel}{csquotes}
\if@german\PassOptionsToPackage{german=quotes}{csquotes}\fi
\RequirePackage{csquotes}
\MakeOuterQuote{"}
\RequirePackage{pgffor}
%% options for not loaded packages ----------------------------------------------------------------
\PassOptionsToPackage{backend=biber,style=alphabetic,sorting=nyt}{biblatex}
\PassOptionsToPackage{free-standing-units}{siunitx}
\PassOptionsToPackage{european,EFvoltages,straightvoltages,betterproportions}{circuitikz}
%% title matters ----------------------------------------------------------------------------------
\newcommand*{\@shorttitle}{\@empty}
\renewcommand{\title}[2][]{
\gdef\@title{#2}
\gdef\@shorttitle{#1}
}
\newcommand*{\@matrikelnr}{}
\newcommand{\matrikelnr}[1]{\gdef\@matrikelnr{#1}}
\newcommand*{\@professor}{}
\newcommand{\professor}[1]{\gdef\@professor{#1}}
\newcommand*{\@keywords}{}
\newcommand{\keywords}[1]{\gdef\@keywords{#1}}
\let\@author\@empty
\let\@keywords\@empty
%% typesetting indexes upright or standart
\def\subinrm#1{\sb{\mathrm{#1}}}
{\catcode`\_=13 \global\let_=\subinrm}
\mathcode`_="8000
\newcommand\upsubscripts{\catcode`\_=12 }
\newcommand\normalsubscripts{\catcode`\_=8 }
\upsubscripts
%% header and footer
\newpagestyle{HsHheadings}{
{
\parbox[b]{\sls@headwidth}{
\LaTeXraggedright
\ifx\@shorttitle\@empty\@title\else\@shorttitle\fi
}%
}
{\parbox[b]{\sls@headwidth}{\LaTeXraggedleft\leftmark}}
{
\parbox[b]{.45\sls@headwidth}{
\LaTeXraggedright
\ifx\@shorttitle\@empty\@title\else\@shorttitle\fi
}%
\hfill
\parbox[b]{.45\sls@headwidth}{\LaTeXraggedleft\headmark}%
}
(\textwidth,.1pt)
}{
{\pagemark}
{\hfill\pagemark}
{\hfill\pagemark}
}
\pagestyle{HsHheadings}
\automark{section}
%% floats
\renewcommand{\fps@figure}{h!t}
\renewcommand{\fps@table}{h!t}
\ifx\KOMAScriptVersion\undefined\else
\g@addto@macro\@floatboxreset\centering
\setcapwidth{0.8\textwidth}
\fi
\if@german
\renewcaptionname{ngerman}{\figurename}{Abb.}
\renewcaptionname{ngerman}{\tablename}{Tab.}
\renewcaptionname{ngerman}{\abstractname}{Abstract}
\else
\renewcaptionname{english}{\figurename}{Fig.}
\renewcaptionname{english}{\tablename}{Tab.}
\fi
%% styling for itemize
\renewcommand{\labelitemi}{$\bullet$}
\renewcommand{\labelitemii}{$\circ$}
\renewcommand{\labelitemiii}{$-$}
\renewcommand{\labelitemiv}{$\cdot$}
%% do stuff
\setlength\parindent{0pt}
\raggedbottom
\renewcommand{\layercontentsmeasure}{\@empty}
%% custom commands
\newcommand{\uproman}[1]{\uppercase\expandafter{\romannumeral#1}}
\newcommand{\lowroman}[1]{\romannumeral#1\relax}
%% load config at beginning of document
\AtBeginDocument{
\makeatletter
\@ifpackageloaded{biblatex}{
\renewcommand*{\mkbibacro}[1]{\MakeUppercase{#1}}
}{}
\@ifpackageloaded{subfigure}{
\newcommand{\subfigureautorefname}{\figureautorefname}
}{}
\InputIfFileExists{config.tex}{
\ClassInfo{\myClassName}{config.tex was found. Using it...}
}{
\ClassInfo{\myClassName}{no config.tex!! I hope you configered it yourself.}
}
%% provide some usefull commands:
\providecommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}}
\makeatother
}
%% nicer abstract ---------------------------------------------------------------------------------
\renewenvironment{abstract}{
\quotation
\setlength\parindent{0pt}
\section*{\abstractname}
\addcontentsline{toc}{section}{\abstractname}
}{%
\ifx\@keywords\@empty\else
\vskip 0.5em
\paragraph{\if@german Schlüsselwörter:\else Keywords:\fi}
\@keywords
\fi
\endquotation
}
%% decloration of Authorship ----------------------------------------------------------------------
\newif\if@oneAuthor \@oneAuthortrue
\if@german
\setlocalecaption{ngerman}{dATitle}{Selbstständigkeitserklärung}
\setlocalecaption{ngerman}{dAPronomen}{\if@oneAuthor ich\else wir\fi}
\setlocalecaption{ngerman}{dAPluralendung}{\if@oneAuthor\else n\fi}
\setlocalecaption{ngerman}{dAGenitiv}{\if@oneAuthor mir\else uns\fi}
\setlocalecaption{ngerman}{dAText}{
Hiermit bestätige\dAPluralendungname\space\dAPronomenname, dass die folgende Arbeit eigenständig von \dAGenitivname\space allein erstellt
und unter Berücksichtigung der zur Verfügung gestellten Aufgabenstellung sowie dem Arbeitsmaterial unter Angabe aller verwendeten Quellen
erarbeitet wurde. Die Regelungen und Konsequenzen eines Plagiats, inklusive disziplinarischer Maßnahmen, sind \dAGenitivname\space
bewusst. Insbesondere wurden alle Zitate und gedanklichen Übernahmen als solche kenntlich gemacht.
}
\else
\setlocalecaption{english}{dATitle}{Declaration of Authorship}
\setlocalecaption{english}{dAPronomen}{\if@oneAuthor I\else we\fi}
\setlocalecaption{english}{dAPronomenf}{\if@oneAuthor I\else We\fi}
\setlocalecaption{english}{dAPronomverb}{\if@oneAuthor am\else are\fi}
\setlocalecaption{english}{dAGenitiv}{\if@oneAuthor my\else our\fi}
\setlocalecaption{english}{dAText}{
\dAPronomenfname\space hereby certify that the work \dAPronomenname\space\dAPronomverbname\space submitting is entirely of
\dAGenitivname\space own making except where otherwise indicated. \dAPronomenfname\space\dAPronomverbname\space aware of regulations
concerning plagiarism, including disciplinary actions that may result from it. Any use of the works of any other author, in any form, is
properly acknowledged at their point of use.
}
\fi
\newcommand\declarationAuthorship{
\renewcommand{\thanks}{\sbox0}
\foreach \x [count=\i] in \@author{\ifnum\i>1\global\@oneAuthorfalse\fi}
\thispagestyle{plain}
\vspace*{\fill}
{\rule{\textwidth}{0.1pt}}
\vskip 3em
{\centering\huge\textbf{\dATitlename}\par}
\vskip 3em
{\dATextname\par}
{\raggedleft
\foreach \x in \@author{
\begin{tabular}[t]{r}
\\[3em]
\rule{4cm}{0.4pt}\\
{\footnotesize\x}
\end{tabular}
}
\par}
}
%% reconfig Titlepage -----------------------------------------------------------------------------
\newtoks\@tabtoks
\newcommand\addtabtoks[1]{\global\@tabtoks\expandafter{\the\@tabtoks#1}}
\newcommand\eaddtabtoks[1]{\edef\mytmp{#1}\expandafter\addtabtoks\expandafter{\mytmp}}
\newcommand*\printtabtoks{\the\@tabtoks}
\addtokomafont{publishers}{\normalsize}
\renewcommand\maketitle[1][c]{
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
\else
\def\and{%
\end{tabular}
\hskip 1em \@plus.17fil
\begin{tabular}[t]{c}%
}
\fi
\par
\ifx\@uppertitleback\@empty\else
\ClassWarning{\KOMAClassName}{%
non empty \string\uppertitleback\space ignored
by \string\maketitle\MessageBreak
in `titlepage=false' mode%
}
\fi
\ifx\@lowertitleback\@empty\else
\ClassWarning{\KOMAClassName}{%
non empty \string\lowertitleback\space ignored
by \string\maketitle\MessageBreak
in `titlepage=false' mode%
}
\fi
\begingroup
\let\@param#1
\ifx\@param\@empty
\ClassError{\myClassName}{\maketitle\space with empty option}{
\maketitle[] has been called with an empty parameter, this doesn't work. Use \maketitle instead.
}
\fi
\let\titlepage@restore\relax
\renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
\let\@oldmakefnmark\@makefnmark
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
\next@tdpage
\ifx\@extratitle\@empty
\ifx\@frontispiece\@empty\else \mbox{}\fi
\else
\@makeextratitle
\fi
\ifx\@frontispiece\@empty
\ifx\@extratitle\@empty\else\next@tdpage\fi
\else
\next@tpage
\@makefrontispiece
\next@tdpage
\fi
\global\@topnum=\z@
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
\IfFileExists{\HsHlogoPath}{}{
\ClassError{\myClassName}{HsH-Logo.pdf not found!}{
The HsH Logo is necasary for the titlepage! Try putting it next to your source file or use \HsHlogoPath to define the file location
}
}
\vspace*{1cm}
\begin{minipage}[t]{\textwidth}%
\ifx\@titlehead\@empty \else
\usekomafont{titlehead}{\@titlehead}%
\fi
\hfill
\raisebox{0pt}[\ht\strutbox][\dp\strutbox]{\includeHsHlogohere}
\end{minipage}
\raisebox{10pt}{\rule{\textwidth}{0.5pt}}
\null
\vskip 2em
\begingroup
\if\@param c\centering\fi
\if\@param r\raggedleft\fi
\ifx\@subject\@empty\else
{\usekomafont{subject}{\@subject\par}}
\vskip 1.5em
\fi
{\usekomafont{title}{\huge\@title\par}}
\vskip .5em
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}
\vskip 4em
{\ifx\@matrikelnr\@empty
\if\@author\@empty\else\usekomafont{author}{
\parbox{\dimexpr\linewidth}{
\if\@param c\centering\fi
\if\@param r\raggedleft\fi
\@author
}
}\fi
\else
\if\@author\@empty\else
% sneeky comma needed after \@matrikelnr to deal with single item lists
\foreach \x [count=\i,evaluate=\i as \y using {{\@matrikelnr,}[\i-1]}] in \@author {\eaddtabtoks{\x & \y\protect\\}}
\usekomafont{author}{\def\arraystretch{1.2}
\if\@param l\begin{tabular}{@{}l l}\printtabtoks\end{tabular}\fi
\if\@param c\begin{tabular}{l l}\printtabtoks\end{tabular}\fi
\if\@param r\begin{tabular}{r r@{}}\printtabtoks\end{tabular}\fi
}
\fi
\fi}
\vskip 1em
{\usekomafont{date}{\@date\par}}
\vskip 1em
{\if\@professor\@empty\else\usekomafont{publishers}{Professor\if@german(in)/Lehrbeauftragte(r)\fi: \@professor}\fi}
\ifx\@dedication\@empty\else
\vskip 2em
{\usekomafont{dedication}{\@dedication \par}}%
\fi
\par
\endgroup
\vskip 2em
\ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi
\@thanks\global\let\@thanks\@empty
\endgroup
\setcounter{footnote}{0}
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
\let\thanks\relax
\let\maketitle\relax
\let\@maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\@subtitle\@empty
\global\let\@extratitle\@empty
\global\let\@frontispiece\@empty
\global\let\@titlehead\@empty
\global\let\@subject\@empty
\global\let\@publishers\@empty
\global\let\@uppertitleback\@empty
\global\let\@lowertitleback\@empty
\global\let\@dedication\@empty
\global\let\@matrikelnr\@empty
\global\let\@prof\@empty
\global\let\author\relax
\global\let\title\relax
\global\let\extratitle\relax
\global\let\titlehead\relax
\global\let\subject\relax
\global\let\publishers\relax
\global\let\uppertitleback\relax
\global\let\lowertitleback\relax
\global\let\dedication\relax
\global\let\date\relax
\global\let\matrikelnr\relax
\global\let\professor\relax
\fi
\global\let\and\relax
}
\endinput
%%
%% End of file `HsH-article.cls'.
...@@ -108,8 +108,10 @@ ...@@ -108,8 +108,10 @@
} }
\newcommand*{\@matrikelnr}{} \newcommand*{\@matrikelnr}{}
\newcommand{\matrikelnr}[1]{\gdef\@matrikelnr{#1}} \newcommand{\matrikelnr}[1]{\gdef\@matrikelnr{#1}}
\newcommand*{\@professor}{} \newcommand*{\@erstpruefer}{}
\newcommand{\professor}[1]{\gdef\@professor{#1}} \newcommand{\erstpruefer}[1]{\gdef\@erstpruefer{#1}}
\newcommand*{\@zweitpruefer}{}
\newcommand{\zweitpruefer}[1]{\gdef\@zweitpruefer{#1}}
\newcommand*{\@keywords}{} \newcommand*{\@keywords}{}
\newcommand{\keywords}[1]{\gdef\@keywords{#1}} \newcommand{\keywords}[1]{\gdef\@keywords{#1}}
\let\@author\@empty \let\@author\@empty
...@@ -394,7 +396,12 @@ ...@@ -394,7 +396,12 @@
\vskip 1.5em \vskip 1.5em
{\usekomafont{date}{\@date\par}} {\usekomafont{date}{\@date\par}}
\vskip \z@ \@plus3fill \vskip \z@ \@plus3fill
{\if\@professor\@empty\else\usekomafont{publishers}{Professor\if@german(in)/Lehrbeauftragte(r)\fi: \@professor}\fi} {\usekomafont{publishers}{
\begin{tabular}{l l}
\textbf{Erstprüfer:} & \@erstpruefer\\
\textbf{Zweitprüfer:} & \@zweitpruefer\\
\end{tabular}
}}
\par \par
\endgroup \endgroup
\vskip 3em \vskip 3em
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment