Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@tairun
Created May 16, 2013 14:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tairun/5592157 to your computer and use it in GitHub Desktop.
Save tairun/5592157 to your computer and use it in GitHub Desktop.
% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
\documentclass{article}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage{array}
\usepackage{amsmath}
\usepackage{etoolbox}
\usepackage{color}
\usepackage{filecontents}
\usepackage[left=3.0cm,right=3.0cm,top=2.5cm,bottom=2cm,includeheadfoot]{geometry}
\usepackage[hidelinks,colorlinks=false,linkcolor=black,bookmarksnumbered=true]{hyperref}
\usepackage[acronym,toc,nogroupskip,counter=alignglos]{glossaries}
\newglossary[slg]{symbols}{slm}{sbl}{Symbolverzeichnis}
\begin{filecontents}{abk.tex}
\newacronym{sia}{SIA}{Schweizerischer Ingenieur- und Architektenverein}
\newacronym{www}{WWW}{World Wide Web}
\newacronym{bhkw}{BHKW}{Blockheizkraftwerk}
\newacronym{wkk}{WKK}{Wärmekraftkopplung}
\end{filecontents}
\begin{filecontents}{glo.tex}
\newglossaryentry{erntefaktor}{
name=Erntefaktor,
description={Der Erntefaktor beschreibt das Verhältnis der genutzten Energie zur investierten Energie. Im Falle von Kraftwerken ist meist Elektrizität (allgemein Exergie), während die im Anlagenlebenszyklus aufgewandte Graue Energie beschreibt, die im Idealfall auch als Exergie angegeben werden sollte. wird auch als kumulierter Energieaufwand bezeichnet.}
}
\newglossaryentry{degradation}{
name=Degradation,
description={Alterungsbedingte Änderung der Parameter von Halbleiterbauteilen. Im Falle von Photovoltaikzellen: Rückgang des Wirkungsgrades im Laufe ihrer Einsatzdauer.}
}
\end{filecontents}
\begin{filecontents}{sym.tex}
\newglossaryentry{sym:etadegr}{
type=symbols,
name={\ensuremath{\eta_{\mathrm{Deg},r}}},
description={Verbleibender Wirkungsgrad bezogen auf den ursprünglichen Wirkungsgrad},
user1=\ensuremath{\%},
sort=eta deg rest
}
\newglossaryentry{sym:tau}{
type=symbols,
name={\ensuremath{\tau}},
description={Lebenszyklus / Einsatzdauer des betrachteten Systems},
user1=a,
sort=tau
}
\newglossaryentry{sym:deg}{
type=symbols,
name={\ensuremath{\dot{D}}},
description={Prozentuale jährliche Abnahme des Wirkungsgrades},
user1={\ensuremath{\%/a}},
sort=deg
}
\end{filecontents}
\begin{filecontents}{glo_styles.tex}
%Columntypes I use (also in glossarystyles tabx3col and tabx4col)
\newcolumntype{Z}[1]{>{\raggedright \arraybackslash}m{#1}}
\newcolumntype{Q}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{Y}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{L}{>{\small \raggedright \arraybackslash}X}
\newcolumntype{C}{>{\small \centering \arraybackslash}X}
\newcolumntype{R}{>{\small \raggedleft \arraybackslash}X}
\newglossarystyle{alignglos}%
{%
\renewcommand{\glsgroupskip}{}%
\renewcommand{\glossaryheader}{}%
\renewcommand{\glsgroupheading}[1]{}%
\renewenvironment{theglossary}%
{\begin{tabular}{@{}p{1cm}p{0.9\textwidth}}}%
{\end{tabular}}%
\renewcommand*{\glsnumberformat}[1]{##1}%
\renewcommand*{\delimR}{,}%
\renewcommand*{\delimN}{-}%
\renewcommand*{\glossaryentryfield}[5]{%
\let\glossaryentrynumbers\stripentrynumbers
\edef\doifinloclist{\noexpand\ifinloclist{\thealignglos}{##5}}%
\doifinloclist
{%
\items{##1}{##3}%
}%
}%
\renewcommand*{\glossarysubentryfield}[1]{\glossaryentryfield}%
}
\newglossarystyle{tabx3col}{%
% put the glossary in a longtable environment:
\renewenvironment{theglossary}%
{\begin{longtable}{@{}p{0.2\textwidth}@{}p{0.6\textwidth}@{}Y{0.2\textwidth}@{}}}%
{\end{longtable}}%
% Set the table's header:
\renewcommand*{\glossaryheader}{}%
% No heading between groups:
\renewcommand*{\glsgroupheading}[1]{}%
% Main (level 0) entries displayed in a row:
\renewcommand*{\glossaryentryfield}[5]{%
\glstarget{##1}{##2}% Name
& ##3% Description
& ##5% Page list
\\% end of row
}%
%%Sub entries treated the same as level 0 entries:
%\renewcommand*{\glossarysubentryfield}[6]{%
%\glossaryentryfield{##2}{##3}{##5}{##6}}%
%% Nothing between groups:
%\renewcommand*{\glsgroupskip}{}%
}
\newglossarystyle{tabx4col}{%
% put the glossary in a longtable environment:
\renewenvironment{theglossary}%
{\begin{longtable}{@{}p{0.1\textwidth}@{}Z{0.1\textwidth}@{}p{0.6\textwidth}@{}Y{0.2\textwidth}@{}}}%
{\end{longtable}}%
% Set the table's header:
\renewcommand*{\glossaryheader}{}%
% No heading between groups:
\renewcommand*{\glsgroupheading}[1]{}%
% Main (level 0) entries displayed in a row:
\renewcommand*{\glossaryentryfield}[5]{%
\glstarget{##1}{##2}% Name
& \glsentryuseri{##1}% Units
& ##3% Description
& ##5% Page list
\\% end of row
}%
% Sub entries treated the same as level 0 entries:
%\renewcommand*{\glossarysubentryfield}[6]{%
%\glossaryentryfield{##2}{##3}{##5}{##6}}%
%% Nothing between groups:
%\renewcommand*{\glsgroupskip}{}%
}
\end{filecontents}
\input{./abk.tex}
\input{./glo.tex}
\input{./sym.tex}
\input{./glo_styles.tex}
\makeglossaries
\newcommand{\items}[2]{\glstext*{#1} & #2 [\glsuseri*{#1}] \\}
% Commands I don't understand but are needed ---------------------------------
% clean up the format of the location list
\newcommand{\stripentrynumbers}[1]{%
\striprelax#1\endstriprelax
}
\newcommand{\ifinloclist}[3]{%
\renewcommand*{\do}[1]{%
\let\dolistbreak\relax
\doifinloc{#1}{#3}##1-\relax\endrange
\dolistbreak
}%
\docsvlist{#2}%
}
\def\doifinloc#1#2#3-#4\endrange{%
\ifx\relax#4\relax
% just a number
\ifnum#1=#3\relax
#2%
\let\dolistbreak\listbreak
\fi
\else
\doifinrange{#1}{#2}#3-#4%
\fi
}
\def\doifinrange#1#2#3-#4-\relax{%
\ifnum#1=#3\relax
#2%
\let\dolistbreak\listbreak
\else
\ifnum#1=#4\relax
#2%
\let\dolistbreak\listbreak
\else
\ifnum#1>#3\relax
\ifnum#1<#4\relax
#2%
\let\dolistbreak\listbreak
\fi
\fi
\fi
\fi
}
\def\striprelax\relax\setentrycounter[]#1#2\endstriprelax{#2}
\newcounter{alignglos}
\newenvironment{alignglos}%
{\stepcounter{alignglos}}%
{%
\printglossary[type=symbols,style=alignglos,title={}]
}
%-----------------------------------------------------------------------------
\begin{document}
\tableofcontents
\vspace{2em}
Reference to equation \ref{eq:deg1} and eq. \ref{eq:deg2}
%\begin{alignglos}
\begin{align}
\gls{sym:deg} &= \frac{1-\gls{sym:etadegr}}{\gls{sym:tau}} \label{eq:deg1}\\
\gls{sym:deg} &= \frac{1-\gls{sym:etadegr}}{\gls{sym:tau}} \label{eq:deg2}
\end{align}
%\end{alignglos}
\vspace{2em}
%\begin{alignglos}
\begin{align}
\gls{sym:tau} &= \ldots
\end{align}
%\end{alignglos}
\newpage
\gls{bhkw}, \gls{sia}
\textcolor[rgb]{1,1,1}{\lipsum[1-20]}
\gls{www}, \gls{wka}
\gls{erntefaktor}, \gls{degradation}
Reference to equation \ref{eq:deg3} and eq. \ref{eq:deg4}
%\begin{alignglos}
\begin{align}
\gls{sym:deg} &= \frac{1-\gls{sym:etadegr}}{\gls{sym:tau}} \label{eq:deg3}\\
\gls{sym:deg} &= \frac{1-\gls{sym:etadegr}}{\gls{sym:tau}} \label{eq:deg4}
\end{align}
%\end{alignglos}
\newpage
%More Test Text... More Test Text... More Test Text... More Test Text... More Test Text...
%\begin{alignglos}
\begin{align}
\gls{sym:deg} &= \frac{1-\gls{sym:etadegr}}{\gls{sym:tau}} \label{eq:deg5}\\
\gls{sym:deg} &= \frac{1-\gls{sym:etadegr}}{\gls{sym:tau}} \label{eq:deg6}
\end{align}
%\end{alignglos}
\newpage
%\glsaddall
\printglossary[type=\acronymtype,style=tabx3col,title=Abbrev]
\printglossary[type=symbols,style=tabx4col,title=Symbols]
\printglossary[style=tabx3col,title=Glossary]
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment