Kann mir jemand sagen, wieso ich diese Fehlermeldung in folgendem Minimalbeispiel bekomme?

\SI[product-units=power]{1 x 2 x 3}{\mm}

\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
\SI[product-units=power]{1 x 2 x 3}{\mm}
\end{document}

gefragt 01 Sep '21, 15:53

wiewowas's gravatar image

wiewowas
437203040
Akzeptiert-Rate: 40%

bearbeitet 01 Sep '21, 15:54


Der Fehler kommt daher, dass das Argument in den ersten geschweiften Klammern eine Zahl sein muss. 1 x 2 x 3 ist aber keine Zahl, sondern besteht aus Ziffern, Leerzeichen und dem Buchstaben x. Funktionieren würde beispielsweise:

\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
1 x 2 x \SI[product-units=power]{3}{\mm}
\end{document}

oder

\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
1 \texttimes{} 2 \texttimes{} \SI[product-units=power]{3}{\mm}
\end{document}

oder

\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
$1 \times 2 \times \SI[product-units=power]{3}{\mm}$
\end{document}

Die Anweisung \SI ist übrigens veraltet. Mit einem aktuellen siunitx sollte man stattdessen qty verwenden, also beispielsweise

\documentclass[pdftex,]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\begin{document}
$1 \times 2 \times \qty[product-units=power]{3}{\mm}$
\end{document}

Übrigens ist Option pdftex, soweit mir bekannt, grundsätzlich überflüssig. KOMA-Script und auch andere Pakete erkennen die Verwendung von pdflatex selbst. Dagegen kann es sinnvoll sein, Option ngerman nicht nur beim Laden von babel anzugeben, sondern direkt bei \documentclass. Dann bekommen andere Pakete, die diese Option kennen, sie ebenfalls mit. Außerdem könnte es für Deutsch sinnvoll sein, siunitx mit Option locale=DE zu laden bzw. diese Option per \sisetup zu setzen. In Abschnitt 9.12 der Anleitung ist auch angegeben, wie man locale mit der Sprache verknüpfen kann. Für ein einsprachiges Dokument wie hier, bringt eine solche Verknüpfung aber keinen Zusatznutzen.

Permanenter link

beantwortet 01 Sep '21, 16:00

huibub's gravatar image

huibub
3.1k410
Akzeptiert-Rate: 51%

bearbeitet 01 Sep '21, 17:01

Danke für die schnelle Hilfe!

(01 Sep '21, 16:11) wiewowas

Man berücksichtige, dass keine der hier gezeigten Möglichkeiten die erwünschte Ausgabe erzeugt (die Einheit des Ergebnisses sollte mm³ sein, nicht mm).

(01 Sep '21, 16:20) Skillmon

@Skillmon Das lese ich aus der frage nicht ab, da dort nirgendwo angegeben ist, was das ergebnis sein soll, lässt sich aber ggf. mit \cubic\mm einfach erreichen.

(01 Sep '21, 16:32) huibub

@huibub, das erwünschte Ergebnis ergibt sich aus dem Verhalten von siunitx Version 2 und nicht unmittelbar aus der Frage.

(01 Sep '21, 16:36) Skillmon

@Skillmon Sorry, aber das kann ich nicht ahnen. Ich habe version 2 nie in dieser Weise verwendet. Deshalb fände ich es besser, wenn in der frage ggf. angegeben würde, was das ergebnis sein soll.

(01 Sep '21, 16:53) huibub
1

@huibub Ja, die Frage könnte in der Tat mehr auf die Verwendung von Produkten in \SI eingehen. Mein Kommentar war auch nie als direkte Kritik gedacht, mehr als ein allgemeiner Hinweis für zukünftige Besucher. Tut mir Leid, wenn hier ein falscher Eindruck entstanden ist.

(01 Sep '21, 23:12) Skillmon
Ergebnis 5 von 6 show 1 more comments

In siunitx version 3 wird für die Notation von Produkten nicht \SI, sondern der Befehl \qtyproduct verwendet:

\documentclass[]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage{siunitx}

\begin{document}
\qtyproduct[product-units=power]{1 x 2 x 3}{\mm}
\end{document}

Nebenbei bemerkt: Der Befehl \SI wird nur für die (eingeschränkte) Abwärtskompatibilität zu älteren Versionen bereitgestellt und sollte nicht mehr verwendet werden. Stattdessen wird nun die Verwendung von \qty bevorzugt.


Man könnte aber auch die alte Version von siunitx laden, um dort den Befehl \SI wie gewohnt zu verwenden (für alte Dokumente eine gute Idee, neue Dokumente sollte man besser für Version 3 von siunitx schreiben):

\documentclass[]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage{siunitx}[=v2]

\begin{document}
\SI[product-units=power]{1 x 2 x 3}{\mm}
\end{document}
Permanenter link

beantwortet 01 Sep '21, 16:01

Skillmon's gravatar image

Skillmon
1.2k6
Akzeptiert-Rate: 46%

bearbeitet 01 Sep '21, 16:07

Danke! Nutze jetzt \qtyproduct. Ich dachte mir schon, dass sich was bei siunitx geändert haben muss, weil das dokument vor den Updates noch lief =)

(01 Sep '21, 16:17) wiewowas
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:

×34
×2
×1

gestellte Frage: 01 Sep '21, 15:53

Frage wurde gesehen: 3,731 Mal

zuletzt geändert: 01 Sep '21, 23:12