Formelzeichenverzeichnis mit glossaries

Erstellen von Index, Glossar, Symbolverzeichnis, einer Nomenklatur etc. mit MakeIndex oder Xindy


kokoloris
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mi 16. Okt 2013, 21:49

Formelzeichenverzeichnis mit glossaries

Beitrag von kokoloris »

Hallo!

ich versuche ein Formelzeichenverzeichnis mit Hilfe von glossaries zu erstellen. Ich verwende dazu den Ansatz von folgender Website:
Texfragen: Wie erstelle ich ein Formelzeichenverzeichnis

Allerdings stoße ich beim Hinzufügen meiner Formelzeichen recht schnell auf Probleme. Dazu folgendes Minimalbeispiel:
\documentclass{scrbook}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{longtable}

% Paket mit Standard-Glossar und Abkürzungsverzeichnis laden, mathematische Zeichen erlauben
\usepackage[acronym,sanitize={symbol=false}]{glossaries}

% Formelzeichen-Verzeichnis einfügen
\newglossary[fog]{formel}{foi}{foo}{Formelzeichen}

%Ein neuer Verzeichnisstil der auch die Einheit mit ausgibt
\newglossarystyle{mytab}{%  
 % Verzeichnis wird ein 'longtable'  mit 5 Spalten
 \renewenvironment{theglossary}%  
  {\begin{longtable}{lccp{\glsdescwidth}p{\glspagelistwidth}}}%  
  {\end{longtable}}%  
 % Kopf der Tabelle
 \renewcommand*{\glossaryheader}{%  
  \bfseries Name & \bfseries Symbol & \bfseries Einheit &  %
  \bfseries Bescheibung & \bfseries Seite(n)  %
  \\\endhead}%  
 % Kein Abstand zwischen Gruppen 
  \renewcommand*{\glsgroupheading}[1]{}% 
    %    
  \renewcommand*{\glossaryentryfield}[5]{%  
 %   \glsentryitem{##1}% Entry number if required  
    \glstarget{##1}{##2}% Name 
        & ##4 %Symbol
        & \glsentryuseri{##1}%Einheit
    & ##3% Description  
    & ##5% Page list  
    \\% end of row  
  }% 
}
\makeglossaries
	
\newglossaryentry{eta} {
	name={Wirkungsgrad},  
	description={Der Wirkungsgrad der Maschine},
	symbol={$\eta$},
	type=formel,
	user1={1}
}
\newglossaryentry{pel} {
	name={Leistung},  
	description={Die elektrische Leistung der Maschine},
	symbol={$P_{el}$},
	type=formel,
	user1={W}
}

\begin{document}

	\printglossary[title=Abkürzungen,type=\acronymtype]	
	\printglossary[title=Formelzeichen,type=formel,style=mytab]
	\printglossary[title=Glossar,type=main]
	

	
	\chapter{Test}
	
	\glssymbol{eta}
	
	\glssymbol{pel}
	
\end{document}
Mit diesem Beispiel erhalte ich eine Menge Fehler, die sich von mir nicht deuten lassen:
.....
! Missing } inserted.
<inserted text>
}
l.5 ...r[]{page}\glsnumberformat{3}}}\glsgroupskip

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing } inserted.
<inserted text>
}
l.5 ...r[]{page}\glsnumberformat{3}}}\glsgroupskip

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing \cr inserted.
<inserted text>
\cr
l.5 ...r[]{page}\glsnumberformat{3}}}\glsgroupskip

I'm guessing that you meant to end an alignment here.

! Missing { inserted.
<inserted text>
{
l.5 ...r[]{page}\glsnumberformat{3}}}\glsgroupskip

I've put in what seems to be necessary to fix
the current column of the current alignment.
Try to go on, since this might almost work.

.....
Wenn ich jedoch name={Leistung} im Code durch name={Wirkung} ersetze, funktioniert komischerweise alles. Hat dazu jemand eine Idee?

Besten Dank schonmal im Voraus!

Besserwisser

Beitrag von Besserwisser »

Dein selbst definierter Stil funktioniert nicht, wenn in der foi-Datei \glsgroupskip auftaucht. In der glossaries-Anleitung heißt es auch:
The command \glsgroupskip specifies what to do between glossary groups. Glossary styles must redefine this command. (Note that \glsgroupskip only occurs between groups, not at the start or end of the glossary.)
Ein einfaches
\let\glsgroupskip\relax
in der Stildefinition und schon ist der Fehler weg. Natürlich kannst Du da auch etwas anderes definieren, je nachdem, was Du haben willst. Nur weglassen kannst Du das nicht einfach.

kokoloris
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mi 16. Okt 2013, 21:49

Beitrag von kokoloris »

Super, besten Dank! Ein einfaches
\renewcommand*{\glsgroupskip}{\relax}
in der Style-Definition löst das Problem.

PS: Bin leider ins falsche Unterforum geraten. Bei Bedarf kann es ja in die Glossare verschoben werden ...

Antworten