Acronym oder Glossaries mit definiertem Listeneintrag Thema ist als GELÖST markiert

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


Schimmelpilz
Forum-Century
Forum-Century
Beiträge: 133
Registriert: Sa 3. Aug 2013, 20:08

Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag 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

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag 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}
Clemens
Paketauthor

Schimmelpilz
Forum-Century
Forum-Century
Beiträge: 133
Registriert: Sa 3. Aug 2013, 20:08

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag 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.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag von cgnieder »

Ich vermute doch, die Fehler gibt es auch ohne externe Datei? Die alleine dürfte nämlich keine Probleme machen
Clemens
Paketauthor

Schimmelpilz
Forum-Century
Forum-Century
Beiträge: 133
Registriert: Sa 3. Aug 2013, 20:08

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag von Schimmelpilz »

Für dieses MWE bekomme ich

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

Zweimal für jeden Eintrag.

Schimmelpilz
Forum-Century
Forum-Century
Beiträge: 133
Registriert: Sa 3. Aug 2013, 20:08

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag von Schimmelpilz »

Aber nach einenem Minimum an Recherche werede ich mich wohl erstmal um ein Update bemühen...

Schimmelpilz
Forum-Century
Forum-Century
Beiträge: 133
Registriert: Sa 3. Aug 2013, 20:08

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag von Schimmelpilz »

Jawoll! Das klappt und sieht genau so aus, wie gewünscht! Allerbesten Dank!

Schimmelpilz
Forum-Century
Forum-Century
Beiträge: 133
Registriert: Sa 3. Aug 2013, 20:08

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag 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}

Schimmelpilz
Forum-Century
Forum-Century
Beiträge: 133
Registriert: Sa 3. Aug 2013, 20:08

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag 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.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Re: Acronym oder Glossaries mit definiertem Listeneintrag

Beitrag von cgnieder »

Wenn die Symbole alle im Mathemodus definiert werden, dann reicht es \boldmath aus der Template-Definition zu entfernen.
Clemens
Paketauthor

Antworten