Problem mit \glossaryentryfield

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: Problem mit \glossaryentryfield

Re: Problem mit \glossaryentryfield

von Bartman » Do 27. Okt 2022, 23:32

Ein Vorschlag mit siunitx für die Maßeinheiten:
\documentclass[ngerman]{scrbook}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{longtable}
\usepackage{array}
\usepackage[locale=DE]{siunitx}
\usepackage{collcell}
\usepackage[automake]{glossaries}
\usepackage{showframe}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}

% Eintragungen der Glossar-Symbole
\newglossary[svl]{symbolslist1}{syi1}{syg1}{Symbolverzeichnis}
% oder
%\newglossary*{symbolslist1}{Symbolverzeichnis}

%Glossaries erstellen
\makeglossaries

\newglossaryentry{symb:a_1}{
  type=symbolslist1,
  name={A}, 
  sort=i,
  description={Fläche1}, 
  symbol={\m\squared}
}
\newglossaryentry{symb:a_2}{
  type=symbolslist1,
  name={a}, 
  sort=i,
  description={Fläche2}, 
  symbol={\square\m}
}
\newglossaryentry{symb:a_3}{
  type=symbolslist1,
  name={Aa}, 
  sort=i,
  description={Fläche3}, 
  symbol={\m\squared}
}

\newglossarystyle{style1}{
  \renewenvironment{theglossary}{%
    \vspace{-3.5mm}
    \begin{longtable}{
      L{0.15\textwidth}
      L{\glsdescwidth}% Länge ersetzt, damit die Tabelle innerhalb der Seitenränder bleibt
      >{\collectcell\unit}L{0.15\textwidth}<{\endcollectcell}
    }
  }{\end{longtable}}
  % Kopf der Tabelle
  \renewcommand*{\glossaryheader}{%
    \bfseries Symbol: 
    & \bfseries Beschreibung: 
    % wegen siunitx und collcell geändert
    & \multicolumn{1}{>{\bfseries}l}{SI-Einheit:}\\[2mm]
    \endhead
  }
  % Kein Abstand zwischen Gruppen
  \renewcommand*{\glsgroupheading}[1]{}
  \renewcommand*{\glossarypreamble}{}
  % Eigenschaften für die Tabelle
  \renewcommand*{\glossentry}[2]{%
    \glstarget{##1}{\glossentryname{##1}} % Name
    & \glsentrydesc{##1}\dotfill          % Beschreibung
    & \glsentrysymbol{##1}                % Symbol (wird als Maßeinheit verwendet)
    \tabularnewline
  }%
}

\begin{document}
\printglossary[style=style1,type=symbolslist1]
Text mit Eintägen: \gls{symb:a_1}, \gls{symb:a_2} und \gls{symb:a_3}
\end{document}

Re: Problem mit \glossaryentryfield

von der-Danner » Do 27. Okt 2022, 22:16

Guten Abend liebes Forum,

ich habe jetzt eine Lösung für mein Problem gefunden (mit den neusten Funktionen):
\documentclass[]{scrbook}

%Pakete für meinen eigenen Glossariestyle
\usepackage{longtable}
\usepackage{amssymb}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}

%Glossarie Paket laden
\usepackage[]{glossaries}

%Eintragungen der Glossarie-Symbole
\newglossary[svl]{symbolslist1}{syi1}{syg1}{Minimalbeispiel}
\newglossaryentry{symb:a_1}	{type=symbolslist1,name={A}, sort=i,description=	{Fläche1}, symbol={Quadratmeter}}
\newglossaryentry{symb:a_2}	{type=symbolslist1,name={a}, sort=i,description=	{Fläche2}, symbol={Quadratmeter}}
\newglossaryentry{symb:a_3}	{type=symbolslist1,name={Aa}, sort=i,description=	{Fläche3}, symbol={Quadratmeter}}

%Glossaries erstellen
\makeglossaries

%Mein eigener Style-->Hier ist ein Fehler nach dem Update
\newglossarystyle{style1}{
\renewenvironment{theglossary}{\vspace{-0.35cm}\begin{longtable}{L{0.15\textwidth}L{0.65\textwidth}L{0.15\textwidth}}}{\end{longtable}}
% Kopf der Tabelle
\renewcommand*{\glossaryheader}{\bfseries Symbol: & \bfseries Beschreibung: & \bfseries SI-Einheit:\vspace{0,2cm}\endhead}
% Kein Abstand zwischen Gruppen
\renewcommand*{\glsgroupheading}[1]{}\renewcommand*{\glossarypreamble}{}
%Eigenschaften für die Tabelle
\renewcommand*{\glossaryentryfield}[5]{
\glstarget{##1}{##2}					%Name
&##3\dotfill							%Beschreibung
&##4									%Symbol (wird von mir als Unit verwendet)
\\										%Ende
}%
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Neuer überarbeiteter Style der auch nach dem Update funktioniert
\newglossarystyle{style2}{%
%Longtable für die Spaltenbreite
\renewenvironment{theglossary}% 
{\vspace{-0.35cm}\begin{longtable}{L{0.15\textwidth}L{0.65\textwidth}L{0.15\textwidth}}}{\end{longtable}}
% Kopf der Tabelle
\renewcommand*{\glossaryheader}{\bfseries Symbol: & \bfseries Beschreibung: & \bfseries SI-Einheit:\vspace{0,2cm}\endhead}% 
% Kein Abstand zwischen Gruppen
\renewcommand*{\glsgroupheading}[1]{}% 
\renewcommand*{\glossarypreamble}{}

%Eigenschaften für die Tabelle
\renewcommand*{\glossentry}[2]{% 
\glstarget{##1}{\glossentryname{##1}}		%Name
& \glossentrydesc{##1}\dotfill				%Beschreibung
& \glossentrysymbol{##1}					%Symbol (wird von mir als Unit verwendet)
\tabularnewline								%Ende
}%
}

%Anfang des Dokumentes
\begin{document}
%Glossarie mit meinem Style und den Symbolden aus dem entsprechenden Einträgen (symbolslist1)
\printglossary[style=style2,type=symbolslist1]
Text mit Einträgen: \gls{symb:a_1}, \gls{symb:a_2} und \gls{symb:a_3}
\end{document}
Vielleicht hat ja jemand auch diesen Fehler gehabt :)

Re: Problem mit \glossaryentryfield

von der-Danner » Do 27. Okt 2022, 15:31

Hallo Stefan,

vielen Dank für deine schnelle Antwort! Sorry, dass du mich so viele Sachen fragen musstest. Ich hoffe ich kann es jetzt besser beschreiben:

Dieser Fehler tritt auf:
Command \glossaryentryfield undefined. ...ntglossary[style=style1,type=symbolslist1]
Dieser verhindert den kompletten Latex-Lauf bereits zu beginn.

Hier das Minimalbeispiel (ich habe versucht es so klein wie möglich zu halten und trotzdem alle Pakete zu verwenden, die ich auch in meiner Arbeit verwende):
%Mein Dokument ist wirklich ein Buch ;)
\documentclass[]{scrbook}

%Pakete für meinen eigenen Glossariestyle
\usepackage{longtable}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}

%Glossarie Paket laden
\usepackage[]{glossaries}%[=v4.49] alles funktioniert, sobald man hier das %-entfernt

%Eintragungen der Glossarie-Symbole
\newglossary[svl]{symbolslist1}{syi1}{syg1}{Minimalbeispiel}
\newglossaryentry{symb:a_1}	{type=symbolslist1,name={A}, sort=i,description=	{Fläche1}, symbol={Quadratmeter}}
\newglossaryentry{symb:a_2}	{type=symbolslist1,name={a}, sort=i,description=	{Fläche2}, symbol={Quadratmeter}}
\newglossaryentry{symb:a_3}	{type=symbolslist1,name={Aa}, sort=i,description=	{Fläche3}, symbol={Quadratmeter}}

%Glossaries erstellen
\makeglossaries

%Mein eigener Style-->Hier ist ein Fehler nach dem Update bedingt durch \glossaryentryfield
\newglossarystyle{style1}{
\renewenvironment{theglossary}{\vspace{-0.35cm}\begin{longtable}{L{0.15\textwidth}L{0.65\textwidth}L{0.15\textwidth}}}{\end{longtable}}
% Kopf der Tabelle
\renewcommand*{\glossaryheader}{\bfseries Symbol: & \bfseries Beschreibung: & \bfseries SI-Einheit:\vspace{0,2cm}\endhead}
% Kein Abstand zwischen Gruppen
\renewcommand*{\glsgroupheading}[1]{}\renewcommand*{\glossarypreamble}{}
%Eigenschaften für die Tabelle
\renewcommand*{\glossaryentryfield}[5]{
\glstarget{##1}{##2}					%Name
&##3\dotfill							%Beschreibung
&##4									%Symbol (wird von mir als Unit verwendet)
\\										%Ende
}%
}

%Anfang des Dokumentes
\begin{document}
%Glossarie mit meinem Style und den Symbolden aus dem entsprechenden Einträgen (symbolslist1)
\printglossary[style=style1,type=symbolslist1]
Text mit Eintägen: \gls{symb:a_1}, \gls{symb:a_2} und \gls{symb:a_3}
\end{document}
Das Programm läuft ohne Probleme mit dem Zusatz [=v4.49] also
\usepackage[]{glossaries}[=v4.49]

Ich hoffe, das Minimalbeispiel ist hilfreich?

Ich freue mich schon auf deine Antwort! Solltest du noch etwas benötigen, dann einfach schreiben.

Viele Grüße von der Ostsee

Re: Problem mit \glossaryentryfield

von Stefan Kottwitz » Do 27. Okt 2022, 08:50

Hallo Daniel,
der-Danner hat geschrieben:
Do 27. Okt 2022, 00:30
nach dem letzten Update des glossaries Paketes (v1.5) ein Problem mit dem Befehl \glossaryentryfield
was ist denn das Problem? Falsche Ausgabe, eine Warnung, eine Fehlermeldung (wie lautet sie?), kommt kein Glossar mehr, irgendwas anderes?

Weiterhin lässt es sich vllt. erst nachvollziehen, wenn Du ein Minimalbeispiel hier postest, was das Problem nachvollziehbar macht.

Stefan

Problem mit \glossaryentryfield

von der-Danner » Do 27. Okt 2022, 00:30

Guten Abend liebe Community,
ich habe nach dem letzten Update des glossaries Paketes (v1.5) ein Problem mit dem Befehl \glossaryentryfield. Ich konnte dieses Problem lösen, indem ich das Paket so lade:
\usepackage[]{glossaries}[=v4.49] trotzdem würde ich das eigentliche Problem gern lösen.

Ich habe bereits herausgefunden, dass es an diesem Codeblock scheitert:
\renewcommand*{\glossaryentryfield}[5]{
\glstarget{##1}{##2}					%Name
&##3\dotfill							%Beschreibung
&##4							        %Symbol (wird von mir als Unit verwendet)
\\									%Ende
}%
Laut Dokumentation soll dieser Befehl durch \glossentry{label}{numberlist} ersetzt werden. Ich verstehe diesen Befehl allerdings nicht. Könnt ihr mir helfen, wie ich das Problem lösen kann?

Viele Grüße
Daniel

Nach oben