Seite 1 von 1

Symbolverzeichnis mit Einheiten Glossaries

Verfasst: So 4. Jan 2015, 22:42
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]

Verfasst: Mo 5. Jan 2015, 10:39
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?

Verfasst: Mo 5. Jan 2015, 11:18
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.

Verfasst: Mo 5. Jan 2015, 12:32
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.

Verfasst: Mo 5. Jan 2015, 13:44
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}

Verfasst: Mo 5. Jan 2015, 15:03
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.

Verfasst: Mo 5. Jan 2015, 15:03
von Besserwisser
PS: Du solltest die Eingabecodierung deklarieren.

Verfasst: Mo 5. Jan 2015, 16:36
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

Verfasst: Mo 5. Jan 2015, 20:24
von Besserwisser

Verfasst: Do 8. Jan 2015, 12:22
von misterx112
Vielen Dank für die Hilfe und die Tipps...