siunitx - Einheitendarstellung bei höheren Potenzen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: siunitx - Einheitendarstellung bei höheren Potenzen

von iTob » Di 6. Sep 2011, 13:03

Gut. Ich hab’s grad nochmal versucht und auch keine direkte Lösung gefunden. Du könntest bei tex.stackexchange nochmal fragen, wenn du willst. Dort ist der Paketautor auch aktiv …

von Willi » Di 6. Sep 2011, 11:55

Hallo iTob,

mit input-protect-tokens habe ich es nicht hinbekommen. Habe aber deinen Vorschlag für ein eigenes Makro umgesetzt, damit passt alles. Danke!

Grüße
Willi

von iTob » Mo 5. Sep 2011, 20:19

Hm …
Kannst du mit input-protec-tokens oder input-ignore was erreichen. Siehe Doku S. 24

Wenn das nicht geht, könnte man sich ein eigenes Makro bauen, alla
\xSI{<Zahl>}{<Exponent>}{<Einheit>}
mit
\newcommand{\xSI}[3]{%
    \ensuremath{%
        \num{#1}% Nummer
        ^{#2}% Exponent
        \,% Trennzeichen, ggf. anpassen
        \si{#3}% Einheit
    }%
}
Edit: @Irena:
\num ist nur für Zahlen ohne Einheiten, \si ist für Einheiten und \SI ist für Zahlen mit Einheiten. Außerdem ging die Frage auch eher in die Richtung, ob Dinge wir \num{2^4} oder ähnlich möglich sind … Also nicht nur angehängte Zehnerpotenzen, die man selbstverständlich am einfachsten mit \num{3e4} setzten sollte.

Exponentialschreibweise

von IrenaSekuta » Mo 5. Sep 2011, 20:18

\documentclass[ngerman,parskip]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel, xfrac, siunitx}

\begin{document}

%Geht
\num{10e3}{kg}   %   => Logisch, denn für Zahlen mit Einheiten..

%Geht nicht
\SI{10^{3}}{kg}  %   => ...  ist das \SI-Makro ja da  \SI{10E3}{kg}

\end{document}

von Willi » Mo 5. Sep 2011, 20:04

Hallo,

guter Hinweis! Habe es vorher nicht in der Anleitung gefunden. Das Problem mit Potenzen bei Units ist damit gelöst. Eine neue Frage ist aber aufgetaucht ;)

Erstmal die Lösung für Interessierte: es werden nur Makros akzeptiert! (Anleitung S. 11-13)
\documentclass[ngerman,parskip]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel, xfrac, siunitx}

\begin{document}

\si{\metre\per\second\squared} \\
\si{\metre\per\second\cubed} \\
\SI{10}{\kg\per\metre\tothe{5}} \\
\SI{10}{\raiseto{3}\kg\per\metre\tothe{5}} \\

\end{document}
Neue Frage: wie gebe ich bei der Zahl z.B. eine Potenz an? Soweit ich es sehe, werden nur Zahlen und Exponenten akzeptiert. Lösung wäre parse-numbers=false zu setzen, was natürlich weitere Auswirkungen hat. OK, man könnte das auch über die Einheit lösen, aber manchmal möchte man eine bestimmte Einheit haben, ohne den Prefix anzupassen. Z.B. kWh soll nicht zu GWh werden.
\documentclass[ngerman,parskip]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel, xfrac, siunitx}

\begin{document}

%Geht
\num{10e3}{kg}

%Geht nicht
\SI{10^{3}}{kg}

%Geht, Tausendertrennzeichen und weitere Formatierungen müssen manuell eingefügt werden
\SI[parse-numbers=false]{100000^3}{kg} \\

\end{document}
Man kann halt nicht alles haben, aber vielleicht habe ich da auch nur wieder was in der Anleitung übersehen :wink:

Grüße
Willi

von iTob » Mo 5. Sep 2011, 18:47

Ich kann’s jetzt grad nicht probieren, aber ich glaube, du musst die Potenzen (engl. power) selber definieren, und dann mit \square, \cubic (oder so sind voreingestellt) anwenden. Schau mal in die Anleitung.

Morgen kann ich nötigenfalls auch nochmal einBeispiel machen.

siunitx - Einheitendarstellung bei höheren Potenzen

von Willi » Mo 5. Sep 2011, 17:31

Hallo zusammen!

Nachdem mir das siunitx Paket gestern hier empfohlen wurde, bin ich nun am probieren. Generell scheint es mir sehr gut zu sein, vor allem auch die Tabular-Integration.

Ein Problem habe ich aber und bekomme es auch nicht gelöst. Ich nutze reziproke Darstellung statt Symbol bzw. fraction. Das klappt aber anscheinend nur, solange im Nenner max. die 2. Potenz auftaucht! Beispiele:
\documentclass[parskip,ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{xfrac}
\usepackage{siunitx}
\sisetup{
locale=DE,
per-mode= reciprocal,
sticky-per=true
}
\begin{document}
Richtig: \\
\si{\metre\per\second} \\
\si{\metre\per\second\squared}

Falsch:\\
\si{\metre\per\second^{3}}\\
\SI{10}{\kg\per\metre^{3}}\\
\SI[per-mode= fraction]{10}{\kg\per\metre^{3}}\\
\SI[per-mode= reciprocal]{10}{\kg\per\metre^{3}}

Manuell - richtig, aber nicht Sinn der Sache!?\\
\si{\metre.\second^{-3}}\\
\SI{10}{\kg.\metre^{-3}}\\

per-mode=fraction lässt sich gar nicht darstellen -- d.h. hierfür müsste ein anderes Paket herhalten!?
\end{document} 
Die fraction-Darstellung funktioniert so überhaupt nicht, die reziproke nur manuell. Habe ich einen Fehler gemacht, oder ist das das Verhalten des Pakets?

Grüße
Willi

Nach oben