Hallo

Ich nutze das glossaries Paket und hab mir auch schon erfolgreich ein symbolverzeichnis damit erstellen können. Verwende den gls{xxx} Befehl um in Formeln oder im Test diese Symbole zu verwenden. Nun wollte ich dies auch für Tabellen nutzen. Dort sollten diese Fett erscheinen. Ein etwas längeres Minimalcodebeispiel:

Open in Online-Editor
\documentclass[ngerman,a4paper]{scrartcl}

%Einbinden des Glossaries Pakets mit notwendigen Formatierungen
\usepackage[
    nonumberlist, %keine Seitenzahlen anzeigen
    acronym,      %ein Abkürzungsverzeichnis erstellen
    toc,          %Einträge im Inhaltsverzeichnis
    section]      %im Inhaltsverzeichnis auf section-Ebene erscheinen
            {glossaries}

\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis} %Symbolverzeichnis erstellen

\renewcommand*{\glspostdescription}{} %Den Punkt am Ende (Beschreibung) deaktivieren

\newglossarystyle{MyStyle}{
\glossarystyle{long3colheader}
\renewenvironment{theglossary}
{\begin{longtable}{lp{2cm}p{\glsdescwidth}}}
{\end{longtable}}
\renewcommand*{\glossaryheader}{\textbf{Symbol} & \textbf{Einheit} &
\textbf{Beschreibung}\\[3ex]}%
\renewcommand*{\glossaryentryfield}[5]{%
\glsentryitem{##1}\glstarget{##1}{##2} & ##4 & ##3  \\[1ex]}%
}

\newglossaryentry{symb:x}{
    name={\ensuremath{x}},
    symbol=\SI{}{\second\per\meter},
    description={Meine x Zahl},
    sort=symbolx, type=symbolslist
}

\newglossaryentry{symb:R}{
    name={\ensuremath{R}},
    symbol=\SI{}{\joule\per\mol\per\kelvin},
    description={Gaskonstante},
    sort=symbolR, type=symbolslist
}

\usepackage{siunitx}
\sisetup{}

\makeglossaries %Glossar-Befehle anschalten

\begin{document}
Irgendwelcher Text

Die Gaskonstante \gls{symb:R}...

Hier möchte ich das Symbol \textbf{\gls{symb:x}} gern Fett...

Eine Gleichung:

\begin{equation}
    Blablub=\gls{symb:x} \cdot \gls{symb:R}
    \label{equ:MyGLN}
\end{equation}

Eine Tabelle

\begin{table}[htbp]
  \centering
  \caption{Sinnfreie Tabelle}
    \begin{tabular}{cc}
    %\toprule
    \textbf{\gls{symb:x}} & \textbf{\gls{symb:R}}\\
    %\midrule
    \textbf{0} & 1\\
    \textbf{10} & 256\\
    \textbf{100} & 305\\
    %\bottomrule
    \end{tabular}%
  \label{tab:MyTab}%
\end{table}%

\printglossary[type=symbolslist,style=MyStyle]

\end{document}

Die Verwendung im Test und in Formeln geht ohne Probleme, nur eben nicht Fett. Das testbf{} wird einfach ignoriert. Hat jemand eine Idee wie man das ändern kann?

gefragt 29 Jan '15, 12:26

metzelmax's gravatar image

metzelmax
27235
Akzeptiert-Rate: 0%


Da die Symbol x und R im Mathemodus gesetzt werden (\ensuremath) muss man \boldmath verwenden um sie Fett zu machen. Eine einfache Lösung wäre als statt

\textbf{\gls{symb:x}}

immer

{\boldmath\gls{symb:x}}

zu schreiben. Im folgenden MWE habe ich eine automatisierte Lösung implementiert, die es erlaubt via \glsbf das Symbol immer fett zu setzen. Außerdem werden Symbole, die innerhalb von table mit \gls referenziert werden auch immer fett gesetzt.

Open in Online-Editor
% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
% arara: pdflatex
\documentclass[ngerman,a4paper]{scrartcl}
\pagestyle{empty}

% Einbinden des Glossaries Pakets mit notwendigen Formatierungen
\usepackage[
nonumberlist, %keine Seitenzahlen anzeigen
acronym,      %ein Abkürzungsverzeichnis erstellen
toc,          %Einträge im Inhaltsverzeichnis
section]      %im Inhaltsverzeichnis auf section-Ebene erscheinen
{glossaries}

\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis} %Symbolverzeichnis erstellen

\renewcommand*{\glspostdescription}{} %Den Punkt am Ende (Beschreibung) deaktivieren

\newglossarystyle{MyStyle}{
  \glossarystyle{long3colheader}
  \renewenvironment{theglossary}
  {\begin{longtable}{lp{2cm}p{\glsdescwidth}}}
    {\end{longtable}}
  \renewcommand*{\glossaryheader}{\textbf{Symbol} & \textbf{Einheit} &
    \textbf{Beschreibung}\\[3ex]}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glsentryitem{##1}\glstarget{##1}{##2} & ##4 & ##3  \\[1ex]}%
}

\newglossaryentry{symb:x}{
  name={\ensuremath{x}},
  symbol=\si{\second\per\meter},
  description={Meine x Zahl},
  sort=symbolx, type=symbolslist
}

\newglossaryentry{symb:R}{
  name={\ensuremath{R}},
  symbol=\si{\joule\per\mol\per\kelvin},
  description={Gaskonstante},
  sort=symbolR, type=symbolslist
}

\usepackage{siunitx}
\usepackage{array}
\usepackage{etoolbox}
\makeatletter
% Backend for bold face
\let\saved@gls@=\@gls@
\newcommand*{\bf@gls}[2][]{%
  \new@ifnextchar[{\bf@gls@{#1}{#2}}{\bf@gls@{#1}{#2}[]}%
}
\newcommand*{\bf@sgls}[1][]{\bf@gls[hyper=false,#1]}
\def\bf@gls@#1#2[#3]{%
  \textbf{\boldmath\saved@gls@{#1}{#2}[#3]}%
}

% Interface
\newrobustcmd*{\glsbf}{\@ifstar\bf@sgls\bf@gls}
\AtBeginEnvironment{table}{\let\@gls@=\bf@gls@}
\makeatother

\makeglossaries %Glossar-Befehle anschalten

\begin{document}
Irgendwelcher Text

Die Gaskonstante \gls{symb:R}...

Hier möchte ich das Symbol \glsbf{symb:x} gern Fett...

Eine Gleichung:

\begin{equation}
    Blablub=\gls{symb:x} \cdot \gls{symb:R}
    \label{equ:MyGLN}
\end{equation}

Eine Tabelle

\begin{table}[htbp]
  \centering
  \caption{Sinnfreie Tabelle}
    \begin{tabular}{>{\bfseries}cc}
    %\toprule
    \gls{symb:x} & \gls{symb:R}\\
    %\midrule
    0 & 1\\
    10 & 256\\
    100 & 305\\
    %\bottomrule
    \end{tabular}%
  \label{tab:MyTab}%
\end{table}%

\printglossary[type=symbolslist,style=MyStyle]

\end{document}

alt text

Permanenter link

beantwortet 29 Jan '15, 13:50

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 29 Jan '15, 13:51

Ok, nach längerem Probieren hab ich es vielleciht hinbekommen. Es liegt offensichtlich daran das es sich bei den Symbolen um mathematische ausdrücke handelt. Diese können nicht mit testbf Fett dargestellt werden. Hier hilft das pmb aus dem paket amsmath. Damit ist eine Fett-Darstellung möglich. anstelle textbf{xxx} schreibt man einfach pmb{xxx}.

Einzige unschönheit wäre jetzt noch das die Symbole kursiv angezeigt werden (weil mathe). gibts eine möglichkeit das über eine option zu ändern oder ist das so Typographisch OK?

(29 Jan '15, 13:44) metzelmax

Vielen Dank für die Hilfe. Das funktioniert sehr gut. Ich hab allerdings die automatische Fettschrift in Tabellen rausgenommen da dies auch für die Überschriften galt.

Also danke nochmal:)

(29 Jan '15, 17:51) metzelmax
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×254
×45
×5
×2

gestellte Frage: 29 Jan '15, 12:26

Frage wurde gesehen: 11,134 Mal

zuletzt geändert: 29 Jan '15, 20:49