Symbolverzeichnis mit Einheiten Glossaries

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


misterx112
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 23. Mär 2014, 23:11

Symbolverzeichnis mit Einheiten Glossaries

Beitrag von misterx112 »

Guten Abend zusammen,

ich bin schon seit Stunden auf der Suche nach der Lösung für mein Problem.

Und zwar möchte ich gern ein Symbolverzeichnis erstellen welches
aus vier Spalten besteht (Symbol, Einheit, Name, Seite). Als Vorlage habe ich mich an folgendem Bsp gehalten und versucht dieses abzuändern, leider ohne erfolg.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{longtable}
 
\usepackage[acronym,sanitize={symbol=false}]{glossaries}
 
%Neuer Eintragstyp
\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  
  }% 
  % 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.)
  \renewcommand*{\glsgroupskip}{\relax}
}
\makeglossaries 

 
\newglossaryentry{dichte}{
name=Dichte,  
description={Verhältnis von Gewicht zu Volumen},
symbol={$\rho$},
type=formel,
user1={km/m3}
} 
 
\begin{document}
 

 
\gls{dichte} % =Dichte
\glssymbol{dichte} %= $\rho$
 
\printglossary[title=Formelzeichen,type=formel,style=mytab]
 
\end{document}
Desweiteren habe ich noch das Problem das ich gern beim Glossar und Abkürzungsverzeichnis die Seitenzahlen unterdrückt hätte und sie nur im Formelverzeichnis angezeigt werden. Wie kann ich das den machen?
Ich hoffe mir kann jemand helfen.



Mit freundlichen Grüßen[/code]

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Nachdem ich die Paketoption nomain hinzugefügt habe, wie mir makeglossareis das empfohlen hat, alles top.
Deswegen, hast du auch ein Hilfsprogramm aufgerufen?
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

misterx112
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 23. Mär 2014, 23:11

Beitrag von misterx112 »

Sorry da hab ich mich wohl undeutlich ausgedrückt. Das Bsp. funktioniert bei mir auch. Nur hätte ich gern weniger Spalten 4 und diese in einer anderen Reihenfolge.

Besserwisser

Beitrag von Besserwisser »

Du legst doch bei der Definition von theglossary selbst fest, wieviele und welche Spalten die Tabelle hat. Deine Definition von \glossaryheader bestimmt, wie die Spalten überschrieben werden. In deiner Definition von \glossaryentryfield schließlich bestimmst du selbst, welche der 5 möglichen Argumente an welcher Stelle der Tabellenzeile verwendet werden. Was hindert dich daran, deine Definitionen entsprechend deiner Wünsche zu ändern?

Du willst die Seiten nicht? Dann kommentiere
    & ##5% Page list   
aus und verkürze die Definition der Tabelle und des Tabellenkopfes um die letzte Spalte.

Du willst für unterschiedliche Glossare unterschiedliche Stile? Dann gib unterschiedliche style-Optionen bei \printglossary an und definiere ggf. unterschiedliche Stile, falls dir die vorgefertigten nicht genügen.

Vielleicht habe ich ja dein Problem nicht verstanden. Dann solltest du es eventuell noch einmal besser herausarbeiten. Ich gehe davon aus, dass du die entsprechenden Teile der glossaries-Anleitung bereits gründlich gelesen hast.

misterx112
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 23. Mär 2014, 23:11

Beitrag von misterx112 »

Danke schon mal für eure schnelle Hilfe.

Hier ist mal ein mini Bsp. leider funktioniert das ausfüllen der einzelnen spalten noch nicht. Die Seitenzahl wird nicht richtig übernommen. Ich weiß das ich die Seitenzahl durch nonumberlist deaktiviert habe. Dies würde ich auch gern für die Acronyms und den Glossar beibehalten. Im Symbolverzeichnis hätte ich gern Seitenzahlen.
Wie bekomme ich es hin das die Seitenzahl nicht über meinen definierten Rand geht?
\documentclass{article} 
\usepackage[T1]{fontenc} 
\usepackage{longtable} 
  
\usepackage[acronym,sanitize={symbol=false},nonumberlist]{glossaries} 
\renewcommand*{\glspostdescription}{}  
%Neuer Eintragstyp 
\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}{lcp{\glsdescwidth}p{\glspagelistwidth}}}%   
  {\end{longtable}}%   
 % Kopf der Tabelle 
 \renewcommand*{\glossaryheader}{%   
  \bfseries Symbol & \bfseries Einheit & \bfseries Namen &  % 
  \bfseries Seite(n)  % 
  \\\endhead}%   
 % Kein Abstand zwischen Gruppen 
  \renewcommand*{\glsgroupheading}[1]{}% 
    %     
  \renewcommand*{\glossaryentryfield}[4]{%   
 %   \glsentryitem{##1}% Entry number if required   
    \glstarget ##4 %Symbol 
		& \glsentryuseri{##1}%Einheit
		& {##2}% Name 
    & ##5 % Page list   
    \\% end of row   
  }% 
  % 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.) 
  \renewcommand*{\glsgroupskip}{\relax} 
} 
\makeglossaries 

  
\newglossaryentry{dichte}{ 
name=Dichte,   
description={Verhältnis von Gewicht zu Volumen}, 
symbol={$\rho$}, 
type=formel, 
user1={km/m3} 
} 

\newglossaryentry{apf}
{
name={Apfel},
description={Obst das am Baum wächst}
}
  
\newacronym{og}{o.g.}{oben genannter}

\begin{document} 
  

  
\gls{dichte} % =Dichte 
%\glssymbol{dichte} %= $\rho$
\gls{apf}
\gls{og} 

\printglossary
\printglossary[type=\acronymtype]
\printglossary[title=Formelzeichen,type=formel,style=mytab] 
  
\end{document}

Besserwisser

Beitrag von Besserwisser »

Du kannst nicht ein Makro mit 4 Argumenten definieren, dann aber Argument Nummer 5 verwenden. Ein Makro mit 4 Argumenten hat kein Argument Nummer 5!

Außerdem solltest du mathematische Zeichen nicht mit $…$ in das Glossar eintragen, sondern mit \ensuremath{…}, damit sie sowohl im Mathemodus als auch im Textmodus funktionieren.

Und wenn du für irgend ein Gossar die Seitenzahlen ausgeben willst, dann darfst du die Seitenzahlermittlung nicht abschalten.

Wenn Dir der Platz für die Seitenzahlen nicht genügt, dann musst die Beschreibungsspalte schmaler machen.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{longtable}
\usepackage{showframe}% Zu Demozwecken die Seitenbereiche markieren
 
\usepackage[acronym,sanitize={symbol=false}]{glossaries}
\renewcommand*{\glspostdescription}{}  
%Neuer Eintragstyp
\newglossary[fog]{formel}{foi}{foo}{Formelzeichen}
 
%Ein neuer Verzeichnisstil der auch die Einheit mit ausgibt
\newglossarystyle{mytab}{%  
 % Verzeichnis wird ein 'longtable'  mit 5 Spalten
 \setlength{\glsdescwidth}{.55\hsize}%
 \renewenvironment{theglossary}%  
  {\begin{longtable}{@{}lcp{\glsdescwidth}p{\glspagelistwidth}@{}}}%  
  {\end{longtable}}%  
 % Kopf der Tabelle
 \renewcommand*{\glossaryheader}{%  
  \bfseries Symbol & \bfseries Einheit & \bfseries Namen &  %
  \bfseries Seite(n)  %
  \\\endhead}%  
 % Kein Abstand zwischen Gruppen
  \renewcommand*{\glsgroupheading}[1]{}%
    %    
  \renewcommand*{\glossaryentryfield}[5]{%  
 %   \glsentryitem{##1}% Entry number if required  
    \glstarget ##4 %Symbol
      & \glsentryuseri{##1}%Einheit
      & {##2}% Name
    & ##5 % Page list  
    \\% end of row  
  }%
  % 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.)
  \renewcommand*{\glsgroupskip}{\relax}
}
\makeglossaries

 
\newglossaryentry{dichte}{
name=Dichte,  
description={Verhältnis von Gewicht zu Volumen},
symbol={\ensuremath{\rho}},
type=formel,
user1={km/m3}
}

\newglossaryentry{apf}
{
name={Apfel},
description={Obst das am Baum wächst}
}
 
\newacronym{og}{o.g.}{oben genannter}

\begin{document}
 

 
\gls{dichte} % =Dichte
%\glssymbol{dichte} %= $\rho$
\gls{apf}
\gls{og}

\printglossary
\printglossary[type=\acronymtype]

\printglossary[title=Formelzeichen,type=formel,style=mytab]
 
\end{document}
Ich verwende zwar glossaries so gut wie nie, aber diese Dinge gingen für mich entweder direkt aus der Anleitung hervor oder aus deinem Code.

Besserwisser

Beitrag von Besserwisser »

PS: Du solltest die Eingabecodierung deklarieren.

misterx112
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 23. Mär 2014, 23:11

Beitrag von misterx112 »

Danke für die Hilfe. Stimmt das macht Sinn mit den Argumenten. :D was meinst du den mit dem deklarieren?

Danke für deine hilfe


misterx112
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 23. Mär 2014, 23:11

Beitrag von misterx112 »

Vielen Dank für die Hilfe und die Tipps...

Antworten