Fehler:[per-mode=fraction] für Achsenbeschriftung bei pgfplots

Tabellen und Grafiken erstellen und anordnen


Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

Fehler:[per-mode=fraction] für Achsenbeschriftung bei pgfplots

Beitrag von Zoid »

Moin moin, ich wollte Achsenbeschrfitung bei einem Diagramm vornehmen und eine Einheit als Bruch in diese aufnehmen. Leider bekomme ich bei der Verwendung von [per-mode=fraction] unter siunitx einen Fehler und weiß nicht, wie ich diesen beheben kann. Anbei ein Beispiel mit dem Fehler auf der y-Achse. Die x-Achse trägt eine alternative Beschriftung, welche ich aber wegen der einheitlichen Form im Dokument ungerne benutzen würde. Im Verlauf eines Textes tritt dieses Problem nicht auf (Beispiel habe ich ebenfalls im Quelltext eingebaut).

Ich verwende TeXworks mit LuaLaTeX.

\documentclass[ngerman,12pt,a4paper,toc=listof,parskip=full]{scrreprt}
\usepackage{pgfplots} % Säulendiagramm
\pgfplotsset{compat=newest} % =
\usepackage{fontspec}	% Schriftart
	\setmainfont{Arial}	% =
\usepackage[locale=DE,range-units = single]{siunitx}
\usepackage{tikz}
	


\begin{document}

\SI[per-mode=fraction]{}{\gram\per\meter\squared}

\SI{}{\frac{\gram}{\meter\squared}}

\begin{tikzpicture}
\begin{axis}[
ybar stacked,nodes near coords,
bar width=0.4,
xlabel=Klebstoffmenge $\lbrack$ \SI{}{\frac{\gram}{\meter\squared}} $\rbrack$,
ylabel=Klebstoffmenge $\lbrack$ \SI[per-mode=fraction]{}{\gram\per\meter\squared} $\rbrack$
]
\addplot coordinates
{(0,1) (1,1) (2,3) (3,2) (4,1.5)};
\addplot coordinates
{(0,1) (1,1) (2,3) (3,2) (4,1.5)};
\addplot coordinates
{(0,1) (1,1) (2,3) (3,2) (4,1.5)};
\end{axis}
\end{tikzpicture}

\end{document}

Die Fehlermeldung enthält Folgendes:

Undefined control sequence.
\gram ->\ERROR


l.21 ...nge $\lbrack$ \SI[per-mode=fraction]{}{\gram

Hat jemand einen Rat, wie ich das Problem beheben könnte?

Vielen Dank und viele Grüße :D


Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Fehler:[per-mode=fraction] für Achsenbeschriftung bei pgfplots

Beitrag von Bartman »

Du darfst die eckigen Klammern nicht verschachteln. Die Klammern des optionalen Arguments des Befehls \SI müssen mit geschweiften Klammern umgeben werden, damit sie mit den Klammern des optionalen Arguments der axis-Umgebung nicht in einen Konflikt geraten.

Aufgrund Deines Beispiels möchte ich Dir empfehlen, Dich noch etwas tiefer in die Dokumentation von siunitx einzulesen.

Meine Änderungsvorschläge ergeben das folgende Beispiel:

\documentclass{scrreprt}
\usepackage{fontspec}% Schriftart
\setmainfont{Arial}
\usepackage{pgfplots}% lädt tikz
\usepackage[locale=DE,range-units=single]{siunitx}

\pgfplotsset{compat=newest}

\begin{document}
\si[per-mode=fraction]{\gram\per\meter\squared}

\si{\gram\per\meter\squared}

\begin{center}
    \sisetup{per-mode=fraction}
    \begin{tikzpicture}
    \begin{axis}[
        ybar stacked,
        nodes near coords,
        bar width=0.4,
        xlabel={Klebstoffmenge $\left[\si{\gram\per\meter\squared}\right]$},
        ylabel={Klebstoffmenge $\left[\si{\gram\per\meter\squared}\right]$}
    ]
    \addplot coordinates {(0,1) (1,1) (2,3) (3,2) (4,1.5)};
    \addplot coordinates {(0,1) (1,1) (2,3) (3,2) (4,1.5)};
    \addplot coordinates {(0,1) (1,1) (2,3) (3,2) (4,1.5)};
    \end{axis}
    \end{tikzpicture}
\end{center}
\end{document}

Antworten