diff options
author | Karl Berry <karl@freefriends.org> | 2017-10-28 22:35:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-10-28 22:35:47 +0000 |
commit | 7d87b9bed420925e771c90f27c7a25db352b8161 (patch) | |
tree | e4d63375390114ffc20d5fc610f3d32881fdbc1d /Master/texmf-dist/tex/latex/hagenberg-thesis/hgb.sty | |
parent | 273e485888671e409de40cffd23ad2153549915d (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.sty | 282 |
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 |