Seite 1 von 2

Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: Fr 25. Feb 2022, 13:39
von Schimmelpilz
Hallo,
könnte mir vielleicht jemand helfen, ein Glossar mit dem folgenden Layout hinzubekommen?
\documentclass[]{scrreprt}
\usepackage{siunitx}

\begin{document}
\section*{Text}
	Ich möchte gerne diesen Text erzeugen in dem z.B. eine Abkürzung haarige Sache (HS) oder krummes Ding (KD); sowie ein Symbolverzeichnis, etwa mit der \textsc{Boltzmann}-Konstante ($k_B$) oder dem elektrischen potential $\Phi$ vorkommen. Die Einträge sollen wie im unten gezeigten Glossar dargestellt werden, wobei es mir hier auf eine serifenlose und fettgedruckte Abkürzung ankommt. Die ausgeschriebenen Listeneinträge sollen immer mit einem Großbuchstaben beginnen, im Text aber nur bei Bedarf. Und natiürlich ist eine Verlinkung zwichen der Abkürzung im Text und dem Verzeichnis erwünscht.

\chapter{Glossar}

\section{Acronyme}

	\begin{table}[h]
		\centering
		\begin{tabular}{p{0.1\textwidth}p{0.7\textwidth}}
			{\sffamily \textbf{HS}} & Haarige Sache\\
			{\sffamily \textbf{KD}} & Krummes Ding\\
		\end{tabular}
	\end{table}

\section{Symbole}
	\begin{table}[h]
		\centering
		\begin{tabular}{p{0.1\textwidth}p{0.7\textwidth}}
			{$\mathbf{k_B}$} & \textsc{Boltzmann}-Konstante $k_B$ = \SI{1.380649e-23}{\joule\per\kelvin}\\
			{$\mathbf{\Phi}$} & Elektrisches potential in \si{\volt}\\
		\end{tabular}
	\end{table}

\end{document}
Ich benutze zur Zeit das \acronym-Paket, etwa so:
\documentclass[]{scrreprt}
\usepackage{amsmath}
\usepackage{acronym}

\begin{document}
	\chapter{Test}
	Hier bitte klein: \ac{Test}. Aber unten bitte mit großem Anfangsbuchstaben, fett  und in \texttt{\textbackslash sffamily}.
	\chapter{Glossary}
	
	\begin{acronym}[Alle Malachen]
		\acro{Test}[Test]{das ist ein Test}
	\end{acronym}
	
\end{document}
Da gibt es aber einige Schwierugkeiten mit der Formatierung der Liste.

Beste Grüße,
SchiPi

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: Sa 26. Feb 2022, 11:29
von cgnieder
Ein Beispiel mit acro:
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\usepackage{acro}
\usepackage{hyperref}

\NewAcroTemplate[list]{custom}{%
  \acronymsmapF{%
    \AcroAddRow{
      \acrowrite{short} &
      \acrowrite{list}%
      \acroifT{extra}{ }%
      \acrowrite{extra}%
      \tabularnewline
    }%
  }{\AcroRerun}%
  \acroheading
  \acropreamble
  \par \noindent
  \begin{tabular}{>{\sffamily\bfseries\boldmath}p{0.1\textwidth}p{.7\linewidth}}
    \AcronymTable
  \end{tabular}
}

\DeclareAcroEnding{dativ}{}{}
\NewAcroCommand\acd{m}{\acrodativ\UseAcroTemplate{first}{#1}}
\NewAcroCommand\acsd{m}{\acrodativ\UseAcroTemplate{short}{#1}}
\NewAcroCommand\acld{m}{\acrodativ\UseAcroTemplate{long}{#1}}

\newcommand\name[1]{\textsc{#1}}

\acsetup{
  list/template=custom,
  list/heading=section,
  uppercase/list = true,
  make-links
}

\DeclareAcronym{hs}{
  short = HS ,
  long  = haarige Sache ,
  long-plural = n ,
  tag   = ac
}
\DeclareAcronym{kd}{
  short = KD ,
  long  = krummes Ding ,
  long-dativ-form = krummen Ding ,
  long-plural-form = krumme Dinger ,
  tag   = ac
}
\DeclareAcronym{kB}{
  short = \ensuremath{k_B} ,
  sort  = kB ,
  long  = \name{Boltzmann}-Konstante ,
  extra = {$k_B = \qty{1.380649e-23}{\joule\per\kelvin}$} ,
  tag   = sym
}

\DeclareAcronym{eP}{
  short = \ensuremath{\Phi} ,
  sort  = Phi ,
  long  = elektrisches Potential ,
  extra = in \unit{\volt} ,
  long-dativ-form = elektrischen Potential ,
  tag   = sym
}

\begin{document}

\section*{Text}
Ich möchte gerne diesen Text erzeugen in dem z.B. eine Abkürzung \ac{hs} oder
\ac{kd}; sowie ein Symbolverzeichnis, etwa mit der \ac{kB} oder dem \acd{eP}
vorkommen. Die Einträge sollen wie im unten gezeigten Glossar dargestellt
werden, wobei es mir hier auf eine serifenlose und fettgedruckte Abkürzung
ankommt. Die ausgeschriebenen Listeneinträge sollen immer mit einem
Großbuchstaben beginnen, im Text aber nur bei Bedarf. Und natürlich ist eine
Verlinkung zwischen der Abkürzung im Text und dem Verzeichnis erwünscht.

\chapter{Glossar}
\printacronyms[include=ac,name=Akronyme]
\printacronyms[include=sym,name=Symbole]

\end{document}

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: So 27. Feb 2022, 15:09
von Schimmelpilz
Ja cool, danke soweit! Jetzt habe ich noch ein Problem, die Abkürzungen in eine externe Datei zu packen. Sagen wir mal so:
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\usepackage{acro}
\usepackage{hyperref}
\input{./Glossary}

\begin{document}
	
	\section*{Text}
	Ich möchte gerne diesen Text erzeugen in dem z.B. eine Abkürzung \ac{hs} oder
	\ac{kd}; sowie ein Symbolverzeichnis, etwa mit der \ac{kB} oder dem \acd{eP}
	vorkommen. Die Einträge sollen wie im unten gezeigten Glossar dargestellt
	werden, wobei es mir hier auf eine serifenlose und fettgedruckte Abkürzung
	ankommt. Die ausgeschriebenen Listeneinträge sollen immer mit einem
	Großbuchstaben beginnen, im Text aber nur bei Bedarf. Und natürlich ist eine
	Verlinkung zwischen der Abkürzung im Text und dem Verzeichnis erwünscht.
	
	\chapter{Glossar}
	\printacronyms[include=ac,name=Akronyme]
	\printacronyms[include=sym,name=Symbole]
	
\end{document}
mit einer Glossary-File:
\NewAcroTemplate[list]{custom}{%
	\acronymsmapF{%
		\AcroAddRow{
			\acrowrite{short} &
			\acrowrite{list}%
			\acroifT{extra}{ }%
			\acrowrite{extra}%
			\tabularnewline
		}%
	}{\AcroRerun}%
	\acroheading
	\acropreamble
	\par \noindent
	\begin{tabular}{>{\sffamily\bfseries\boldmath}p{0.1\textwidth}p{.7\linewidth}}
		\AcronymTable
	\end{tabular}
}

\DeclareAcroEnding{dativ}{}{}
\NewAcroCommand\acd{m}{\acrodativ\UseAcroTemplate{first}{#1}}
\NewAcroCommand\acsd{m}{\acrodativ\UseAcroTemplate{short}{#1}}
\NewAcroCommand\acld{m}{\acrodativ\UseAcroTemplate{long}{#1}}

\newcommand\name[1]{\textsc{#1}}

\acsetup{
	list/template=custom,
	list/heading=section,
	uppercase/list = true,
	make-links
}

\DeclareAcronym{hs}{
	short = HS ,
	long  = haarige Sache ,
	long-plural = n ,
	tag   = ac
}
\DeclareAcronym{kd}{
	short = KD ,
	long  = krummes Ding ,
	long-dativ-form = krummen Ding ,
	long-plural-form = krumme Dinger ,
	tag   = ac
}
\DeclareAcronym{kB}{
	short = \ensuremath{k_B} ,
	sort  = kB ,
	long  = \name{Boltzmann}-Konstante ,
	extra = {$k_B = \qty{1.380649e-23}{\joule\per\kelvin}$} ,
	tag   = sym
}

\DeclareAcronym{eP}{
	short = \ensuremath{\Phi} ,
	sort  = Phi ,
	long  = elektrisches Potential ,
	extra = in \unit{\volt} ,
	long-dativ-form = elektrischen Potential ,
	tag   = sym
}
gibt es dann reichlich Fehlermeldungen.

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: So 27. Feb 2022, 17:40
von cgnieder
Ich vermute doch, die Fehler gibt es auch ohne externe Datei? Die alleine dürfte nämlich keine Probleme machen

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: So 27. Feb 2022, 18:42
von Schimmelpilz
Für dieses MWE bekomme ich

"Missing number, treated as zero. \printacronyms[include=ac,name=Akronyme]"

Zweimal für jeden Eintrag.

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: So 27. Feb 2022, 18:44
von Schimmelpilz
Aber nach einenem Minimum an Recherche werede ich mich wohl erstmal um ein Update bemühen...

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: So 27. Feb 2022, 19:39
von Schimmelpilz
Jawoll! Das klappt und sieht genau so aus, wie gewünscht! Allerbesten Dank!

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: So 27. Feb 2022, 20:48
von Schimmelpilz
Vielleicht noch eine Abschließende Bemerkung: Bei längeren Listen müsste man ein Tablellenformat wählen, das Seitenumbrüche erlaubt. Ich habe das hier wie folgt mir longtable gelöst.
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\usepackage{acro}
\usepackage{hyperref}
\usepackage{longtable}

\NewAcroTemplate[list]{custom}{%
  \acronymsmapF{%
    \AcroAddRow{
      \acrowrite{short} &
      \acrowrite{list}%
      \acroifT{extra}{ }%
      \acrowrite{extra}%
      \tabularnewline
    }%
  }{\AcroRerun}%
  \acroheading
  \acropreamble
  \par \noindent
  \begin{longtable}{>{\sffamily\bfseries\boldmath}p{0.2\textwidth}p{.8\linewidth}}
    \AcronymTable
  \end{longtable}
}

\DeclareAcroEnding{dativ}{}{}
\NewAcroCommand\acd{m}{\acrodativ\UseAcroTemplate{first}{#1}}
\NewAcroCommand\acsd{m}{\acrodativ\UseAcroTemplate{short}{#1}}
\NewAcroCommand\acld{m}{\acrodativ\UseAcroTemplate{long}{#1}}

\newcommand\name[1]{\textsc{#1}}

\acsetup{
  list/template=custom,
  list/heading=section,
  uppercase/list = true,
  make-links
}

\DeclareAcronym{hs}{
  short = HS ,
  long  = haarige Sache ,
  long-plural = n ,
  tag   = ac
}
\DeclareAcronym{kd}{
  short = KD ,
  long  = krummes Ding ,
  long-dativ-form = krummen Ding ,
  long-plural-form = krumme Dinger ,
  tag   = ac
}
\DeclareAcronym{kB}{
  short = \ensuremath{k_B} ,
  sort  = kB ,
  long  = \name{Boltzmann}-Konstante ,
  extra = {$k_B = \qty{1.380649e-23}{\joule\per\kelvin}$} ,
  tag   = sym
}

\DeclareAcronym{eP}{
  short = \ensuremath{\Phi} ,
  sort  = Phi ,
  long  = elektrisches Potential ,
  extra = in \unit{\volt} ,
  long-dativ-form = elektrischen Potential ,
  tag   = sym
}

\begin{document}

\section*{Text}
Ich möchte gerne diesen Text erzeugen in dem z.B. eine Abkürzung \ac{hs} oder
\ac{kd}; sowie ein Symbolverzeichnis, etwa mit der \ac{kB} oder dem \acd{eP}
vorkommen. Die Einträge sollen wie im unten gezeigten Glossar dargestellt
werden, wobei es mir hier auf eine serifenlose und fettgedruckte Abkürzung
ankommt. Die ausgeschriebenen Listeneinträge sollen immer mit einem
Großbuchstaben beginnen, im Text aber nur bei Bedarf. Und natürlich ist eine
Verlinkung zwischen der Abkürzung im Text und dem Verzeichnis erwünscht.

\chapter{Glossar}
\printacronyms[include=ac,name=Akronyme]
\printacronyms[include=sym,name=Symbole]

\end{document}

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: Mo 28. Feb 2022, 01:13
von Schimmelpilz
Ach, jetzt ist mir dich noch was aufgefallen: Wie kann ich dafür sorgen, dass die Symbole nicht grundsätzlich fett gedruckt werden? Es sollen sich halt noch die Vektoren in fett von skalaren Größen abheben.

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Verfasst: Mo 28. Feb 2022, 11:51
von cgnieder
Wenn die Symbole alle im Mathemodus definiert werden, dann reicht es \boldmath aus der Template-Definition zu entfernen.