Conditionale glossaries-styles erstellen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Conditionale glossaries-styles erstellen

Conditionale glossaries-styles erstellen

von eff » Mi 30. Mär 2011, 14:01

Hallo,

ich bin gerade dabei eine Vorlage zu erstellen.

Dabei möchte ich mittels glossaries eine Liste mit Symbolen erstellen und anzeigen lassen. Jetzt stehe ich vor dem Problem, dass manche sich gerne die Seitenzahlen in der Liste anzeigen lassen und manche nicht. Das macht natürlich die Option nonumberlist, ganz klar. Aber: bei dem von uns gewählten Stil für das Symbolverzeichnis blendet er leider den entsprechenden Header nicht aus, sodass bei nonumberlist trotzdem noch die Spalte in der Tabelle angezeigt wird.
Jetzt habe ich also versucht einen command anzulegen, der steuert ob nonumberlist als Option an das Paket übergeben wird und gleichzeitig in einem neu erzeugten Stil mittels \ifthenelse verschiedene Stile als Vorlage lädt (3- oder 4-spaltig), die ich vorab definiert habe.

Leider ist das ungeheuer unelegant und funktioniert darüber hinaus auch leider nicht!

Ich bitte zu entschuldigen, dass mein Minimalbeispiel nicht "as minimal as possible" ist, aber ich erhoffe mir Anregungen zu den verwendeten Paketen.
\documentclass[twoside, bibliography=totoc, listof=totoc, numbers=noenddot, 12pt]{scrreprt}

\usepackage[latin1]{inputenc}

\usepackage[ngerman]{babel}

\usepackage{ae,aecompl}

% Tabellen mit einstellbarer breite, X steht für einen variablen Paragraph
\usepackage{tabularx}
% für farbige Tabellen, lädt "color"
\usepackage{multirow}


\usepackage{mathtools} % lädt amsmath mit
\mathtoolsset{
	showonlyrefs,
	mathic % or mathic = true
}

% mathcomp lädt auch textcomp
\usepackage{mathcomp}
% wasysym stört nicht, aber so kann man auch geile integrale machen :) \oiint (doppelringintegral)
\usepackage[integrals]{wasysym}
% Provides generic commands \degree, \celsius, \perthousand, \micro and \ohm which work both in text and math mode.
\usepackage{gensymb}

% Benennt die Befehle um, da sie sowohl in mathcomp als auch in siunitx definiert werden
\let\MATHCOMPcelsius\celsius
\let\celsius\undefined
\let\MATHCOMPdegree\degree
\let\degree\undefined
\let\MATHCOMPohm\ohm
\let\ohm\undefined

% SI-konforme Units
\usepackage{siunitx}
\sisetup{locale=DE, per=frac}

% damit das komma in der matheumgebung nicht mit abstand behaftet ist
\usepackage{icomma}

% wofür man das hier braucht, weiß ich noch nicht so recht...
\usepackage{amssymb}

% wir hätten gern grafiken
\usepackage{graphicx}

% Ob Seitenzahlen, hier festlegen!
\newcommand*{\nonumberlistoption}{, nonumberlist}

% nonumberlist als option aufnehmen, damit die Seitenzahlen verschwinden
\usepackage[toc, style=super, translate=false \nonumberlistoption]{glossaries} 
\renewcommand*{\glossaryname}{Verwendete Symbole}
\renewcommand{\glspostdescription}{}
\makeglossaries

% Spaltenbeschriftung anpassen
\renewcommand*{\glossaryname}{Glossar}%
\renewcommand*{\acronymname}{Abkürzungen}%
\renewcommand*{\entryname}{Zeichen}%
\renewcommand*{\descriptionname}{Beschreibung}%
\renewcommand*{\symbolname}{Einheit}%
\renewcommand*{\pagelistname}{Seiten}%

\newcommand*{\nnlot}{\equal{\nonumberlistoption}{, nonumberlist}} %Abkuerzung fuer nonumberlistoptiontrue...

% Neuen Stil anlegen der 3 Spalten macht, wenn nonumberlist aktiviert ist und 4 wenn es nicht da ist.

% 4-spaltiger Style
\newglossarystyle{altsuper4colmyheader}{%
  \glossarystyle{altsuper4colheader}%
  \renewenvironment{theglossary} {
    \tablehead{\bfseries\entryname &\bfseries\descriptionname &\bfseries\symbolname &\bfseries\pagelistname\\\hline\hline\\}
    \tabletail{\hline}%
    \begin{supertabular}{lp{\glsdescwidth}lp{\glspagelistwidth}}
   }%
   {\end{supertabular}}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glstarget{##1}{##2} & ##3 & ##4 & ##5\\
  }%
}

% 3-spaltiger Style ohne Seitenliste, dafür mit Symbolen
\newglossarystyle{altsuper3colmyheader}{%
  \glossarystyle{altsuper4colheader}%
  \renewenvironment{theglossary} {
    \tablehead{\bfseries\entryname &\bfseries\descriptionname &\bfseries\symbolname\\\hline \hline\\}
    \tabletail{\hline}%
    \begin{supertabular}{lp{\glsdescwidth}l}
   }%
   {\end{supertabular}}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glstarget{##1}{##2} & ##3 & ##4\\
  }%
  \renewcommand*{\glossarysubentryfield}[6]{%
     & \glstarget{##2}{\strut}##4 & ##5 \\
  }%
  \renewcommand*{\glsgroupskip}{ & & \\}%
}

% 2. Versuch:
\newglossarystyle{altsuper3or4colmyheader}{%
	\ifthenelse{\equal{\nonumberlistoption}{, nonumberlist}}{\glossarystyle{altsuper3colmyheader}}{\glossarystyle{altsuper4colmyheader}}
}


\begin{document}
\tableofcontents

% Verzeichnis ausgeben
\printglossary[title={Verwendete Formelzeichen}, toctitle={Verwendete Formelzeichen}, style={altsuper3or4colmyheader}]
% Ein paar Einträge definieren
\newglossaryentry{symb:pi}{name=\ensuremath{\pi}, description={Kreiszahl}, sort=pi}
\newglossaryentry{symb:U}{name=\ensuremath{U}, symbol={\ensuremath{\si{\volt}}}, description={Spannung}, sort=U}
\newglossaryentry{symb:m}{name=\ensuremath{m}, description={Strangzahl}, sort=m}
\newglossaryentry{symb:mu0}{name=\ensuremath{\mu_{0}}, description={magnetische Feldkonstante}, symbol={\ensuremath{\si{\volt\second\per\ampere\per\meter}}}, sort=mu0}

% Alle definierten glossaries-Einträge einblenden
\glsaddall
\end{document}
Frage: Wie bekomme ich es hin, dass bei der Verwendung von altsuper4colheader bei aktivierter nonumberlist die letzte Spalte nicht angezeigt wird?

Vielen Dank und viele Grüße
Felix

Nach oben