summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-10-28 22:35:47 +0000
committerKarl Berry <karl@freefriends.org>2017-10-28 22:35:47 +0000
commit7d87b9bed420925e771c90f27c7a25db352b8161 (patch)
treee4d63375390114ffc20d5fc610f3d32881fdbc1d /Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty
parent273e485888671e409de40cffd23ad2153549915d (diff)
hagenberg-thesis (28oct17)
git-svn-id: svn://tug.org/texlive/trunk@45629 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty')
-rw-r--r--Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty282
1 files changed, 282 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty b/Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty
new file mode 100644
index 00000000000..41af43020dd
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty
@@ -0,0 +1,282 @@
+%% hgb.sty
+%% This file is part of the Hagenberg Thesis package for creating bachelors's and masters's theses
+%% Author: Wilhelm Burger (wilhelm.burger@fh-hagenberg.at)
+%% GitHub: https://github.com/Digital-Media/HagenbergThesis
+%% File encoding: ASCII
+
+\NeedsTeXFormat{LaTeX2e}
+\newcommand{\hgbDate}{2017/10/28} % version string
+\ProvidesPackage{hgb}[\hgbDate]
+
+% Create a default/fallback main language so it is set no matter what
+\providecommand{\hgb@MainLanguage}{german}
+
+% Then pass the language options (german/ngerman/english) from the class file
+\DeclareOption{english}{\renewcommand{\hgb@MainLanguage}{english}}
+\DeclareOption{german}{\renewcommand{\hgb@MainLanguage}{german}}
+\DeclareOption{ngerman}{\renewcommand{\hgb@MainLanguage}{german}}
+\ProcessOptions*
+
+
+%% Required Packages ----------------------------------------------------------
+
+\RequirePackage{lmodern} % use Latin Modern Fonts
+\RequirePackage{cmap} % make generated PDF files "searchable and copyable"
+\RequirePackage[T1]{fontenc} % T1 font encoding for improved hyphenation
+
+\RequirePackage{xifthen}
+
+% Set main language by selectively loading babel with the 'main' parameter (babel 3.9+)
+\ifthenelse{\equal{\hgb@MainLanguage}{german}}%
+ {\RequirePackage[english,main=ngerman]{babel}}{}
+\ifthenelse{\equal{\hgb@MainLanguage}{english}}%
+ {\RequirePackage[main=english,ngerman]{babel}}{}
+
+
+\RequirePackage{datetime}
+\RequirePackage{upquote} % uses "right" quotes in the verbatim environment
+\RequirePackage{eurosym} % provides \euro - conflict with marvosym on \EUR!
+
+\RequirePackage{graphicx}
+\RequirePackage[percent]{overpic} % to allow text/graphics overlays on pictures
+\RequirePackage{pict2e} % extends the LaTeX 'picture' environment
+
+\RequirePackage{xcolor}
+\newcommand{\@MissingArg}[1]{\textcolor{red}{#1}}
+
+\RequirePackage[T1,hyphens,obeyspaces,spaces,lowtilde]{url}
+\urlstyle{sf}
+
+\RequirePackage{verbatim}
+\RequirePackage{moreverb}
+\def\verbatimtabsize{2\relax}
+
+\RequirePackage{ifpdf}
+\ifpdf % LaTeX is in native PDF mode (pdflatex)
+ \RequirePackage{epstopdf} % converting EPS to PDF for pdflatex
+% \pdfcompresslevel=0 % 0 = no compression, 9 = max. compression
+% \pdfimageresolution=300
+\else % LaTeX is in emulation mode (DVI-PS-PDF)
+ \RequirePackage[hyphenbreaks]{breakurl} % allows line breaks in URLs without pdflatex (DIV, PS, PDF)
+\fi
+
+
+%% hyperref Setup -------------------------------------------------------------
+
+\RequirePackage[unicode]{hyperref} % utf8-change
+\hypersetup{
+ linktocpage = true, % make page number, not text, be link on TOC, LOF and LOT
+ colorlinks = false, % don't uses colored links (because this shows up in printing!)
+ pdfborder = {0 0 0.5}, % use a thinner (0.5pt) border around all PDF links
+ allbordercolors = {0 0 0.8}, % dark blue border for all types of links
+ breaklinks = true % allow links to break over lines by making links over multiple lines
+} %see https://www.tug.org/applications/hyperref/manual.html
+
+% Redefine certain commands for bookmarks and meta-data
+\let\oldand\and
+\pdfstringdefDisableCommands{%
+ \def\\{}%
+ \def\url#1{<#1>}%
+ \def\and{\texorpdfstring{\oldand}{, }}%
+}
+
+\RequirePackage[figure,table,table*]{hypcap} % do not redefine figure* for use in article (without captions)
+
+%% Language environments ------------------------------------------------------
+
+% Switch from German to English (babel)
+\newenvironment{english}%
+{\begin{otherlanguage}{english}}%
+{\end{otherlanguage}}
+
+% Switch from English to German (babel)
+\newenvironment{german}%
+{\begin{otherlanguage}{ngerman}}%
+{\end{otherlanguage}}
+
+
+%% Miscellaneous Utility Commands ---------------------------------------------
+
+\newcommand\trennstrich{%
+ \nopagebreak[4]
+ \vskip 1.5ex %
+% \nopagebreak[4]
+ \noindent\makebox[\textwidth]{\rule{4cm}{0.4pt}}
+ \vskip 2.5ex}
+
+\newcommand{\SuperPar}[0]{%
+\PackageWarning{hgb}{Due to frequent misuse, macro 'SuperPar' has been removed.}
+}
+
+% Test box for print proofing
+\newcommand{\calibrationbox}[2]{% parameters: #1=width, #2=height
+ \setlength{\unitlength}{1.0mm}%
+ \begin{picture}(#1,#2)%
+ \linethickness{0.05mm}%
+ \put(0,0){\dashbox{0.2}(#1,#2)%
+ {\parbox{#1mm}{%
+ \centering\footnotesize
+ width $ = #1 \textrm{mm}$\\
+ height $ = #2 \textrm{mm}$
+ }}}\end{picture}
+}
+
+% Test box for print proofing (obsolete - use \calibrationbox)
+\newcommand{\Messbox}[2]{
+ \calibrationbox{#1}{#2}
+}
+
+\newcommand{\ShowParameter}[1]{\the#1\showthe#1} % to display TeX parameters
+%Beispiel: clubpenalty = \ShowParameter{\clubpenalty}
+
+
+%% Layout Settings ------------------------------------------------------------
+
+\frenchspacing % creates normal spacing between sentences
+\setlength{\parskip}{0pt plus 0.1pt}
+\raggedbottom %\flushbottom
+
+\RequirePackage{float}
+\floatstyle{plain}
+
+% Captions with font size "small" and additional margin spacing
+\RequirePackage[small,bf]{caption}
+\setlength{\captionmargin}{5mm}
+\setlength{\abovecaptionskip}{10pt}
+\setlength{\belowcaptionskip}{10pt}
+
+% Make float placement easier
+\renewcommand{\floatpagefraction}{.9} % previously: .5
+\renewcommand{\textfraction}{.1} % previously: .2
+\renewcommand{\topfraction}{.9} % previously: .7
+\renewcommand{\bottomfraction}{.7} % previously: .3
+\setcounter{topnumber}{3} % previously: 2
+\setcounter{bottomnumber}{2} % previously: 1
+\setcounter{totalnumber}{5} % previously: 3
+
+\RequirePackage{enumitem} % fix excessive vertical spacing in lists
+\setlist{%
+ partopsep = .0ex plus .1ex,
+ topsep = .6ex plus .3ex,
+ itemsep = .0ex plus .1ex,
+ parsep = .4ex plus .2ex
+}
+
+\newenvironment{nowidows}%
+ {\clubpenalty=10000%
+ \widowpenalty=10000%
+ \displaywidowpenalty=10000}%
+ {}
+%Example:
+% \begin{nowidows}
+% Any text where no widows are allowed
+% \end{nowidows}
+
+
+%% Definitions for Algorithms -------------------------------------------------
+
+% 'algorithm' creates a floating environment for algorithms (\begin{algorithm}...)
+\@ifundefined{chapter}%
+ {\RequirePackage[ruled]{algorithm}}%
+ {\RequirePackage[ruled,chapter]{algorithm}}
+
+\DeclareCaptionStyle{ruled}{labelfont=bf,labelsep=colon}
+
+% 'algorithmicx' returns the inner content of algorithms (\begin{algorithmic}[1]...)
+\RequirePackage{algorithmicx}
+\RequirePackage{algpseudocode}
+\algsetlanguage{pseudocode}
+\renewcommand{\algorithmicprocedure}{} % use no 'Procedure' keyword
+
+
+%% Program and Algorithm Environments ----------------------------------------
+
+% Define the program float environment:
+\@ifundefined{chapter}%
+ {\newfloat{program}{tbp}{lop}}%
+ {\newfloat{program}{tbp}{lop}[chapter]}
+
+\floatstyle{plain}
+\restylefloat*{program}
+
+\ifthenelse{\equal{\bbl@main@language}{german} \or \equal{\bbl@main@language}{ngerman}}%
+{ \floatname{program}{Programm}
+ \floatname{algorithm}{Algorithmus}
+}{}
+
+\ifthenelse{\equal{\bbl@main@language}{english}}%
+{ \floatname{program}{Program}
+ \floatname{algorithm}{Algorithm}
+}{}
+
+
+%% Date-related commands ------------------------------------------------------
+
+\RequirePackage{datetime}
+\showdowfalse % do not show day of week
+
+% adapted from \newdate in datetime.sty
+\newcommand*{\@modifydate}[4]{%
+\@namedef{date@#1@d}{#2}%
+\@namedef{date@#1@m}{#3}%
+\@namedef{date@#1@y}{#4}%
+}
+
+\newdate{hgb@date}{\the\day}{\the\month}{\the\year}
+\newcommand{\Date}[3]{% example for use: \Date{16}{5}{2008}
+ \@modifydate{hgb@date}{#1}{#2}{#3}
+}
+
+\newcommand{\hgb@GetDateDay}{\getdateday{hgb@date}}
+\newcommand{\hgb@GetDateMonth}{\getdatemonth{hgb@date}}
+\newcommand{\hgb@GetDateYear}{\getdateyear{hgb@date}}
+\newcommand{\hgb@DisplayDate}{\displaydate{hgb@date}}
+
+%% Experimental items ---------------------------------------------------------
+
+\newenvironment{NarrowList}%
+{\begin{list}{}%
+{\setlength{\leftmargin}{2.5em}
+ \setlength{\labelwidth}{1em}
+ \setlength{\labelsep}{0.5em}
+ \setlength{\itemsep}{0.5ex}
+ \setlength{\parsep}{0ex}
+ \setlength{\topsep}{0ex}
+\raggedright
+}}%
+{\end{list}}
+
+\providecommand{\hgb@PathName}{Pfad}
+
+\newenvironment{FileList}[1]%
+{%\paragraph{Pfad:} \url{#1}
+\ifthenelse{\equal{\hgb@MainLanguage}{german}}
+ {\renewcommand{\hgb@PathName}{Pfad}}%
+ {\renewcommand{\hgb@PathName}{Path}}%
+\paragraph{\hgb@PathName: \nolinkurl{#1}}
+\begin{list}{}%
+{\setlength{\leftmargin}{5cm}
+ \setlength{\labelwidth}{4cm}
+ \setlength{\labelsep}{0.25cm}
+ \setlength{\rightmargin}{0cm}
+ \setlength{\itemindent}{0cm}
+ \setlength{\itemsep}{0.5ex}
+ \setlength{\parsep}{0ex}
+ \setlength{\topsep}{1ex}
+\raggedright
+}}%
+{\end{list}}
+
+\def\widedotfill{\leaders\hbox to 8pt{\hfil.\hfil}\hfill}
+
+\newcommand{\fitem}[1]{%
+\item[\nolinkurl{#1}\widedotfill]
+}
+
+%% For inserting foreign PDF pages --------------------------------------------
+
+\RequirePackage{pdfpages}
+
+%% ----------------------------------------------------------------------------
+
+\setlength{\fboxsep}{0mm} %globally zero fbox separator