Fragen zu siunitx (\SIrange, mathmode<->displaymathmod

Formelsatz für Mathematik, Naturwissenschaften und Technik


flofli
Forum-Anfänger
Forum-Anfänger
Beiträge: 23
Registriert: Sa 13. Mär 2010, 19:03

Fragen zu siunitx (\SIrange, mathmode<->displaymathmod

Beitrag von flofli »

Hallo

ich habe ein paar Fragen zu siunitx:

1) \SIrange liefert bei mir Ergebnisse in der Form 8bis9, also ohne Leerzeichen und wenn ich versuche die Option
\sisetup{tophrase={{ bis }}}
zu ändern, hat dies keine Änderung zur Folge.

2) Außerdem würde ich gerne bei \SIrange die Einheiten wiederholt haben, also 8 m bis 10 m, allerdings bei Fehlern nicht ( 1.234±0.005 m). Die Option
\sisetup{repeatunits=false}
scheint sich allerdings auf beides (\SIrange & Fehler) auszuwirken. Gibt es eine andere Möglichkeit?

3) Ich verwende Minuskelziffern (OldStyle Ziffern) und würde diese gerne nicht nur im Textmodus sonder auch im Mathemodus (textstyle) allerdings nicht im Mathemodus (displaystyle) angezeigt bekommen. Ist dies möglich?

4) Bei der verwendung von "°C" als Einheit bekomme ich die Warnmeldung
Command \textdegree invalid in math mode
und es wird nur "C" angezeigt. Ich hatte bisher immer "gensymb" als Paket geladen aber dies verursacht einen Fehler mit siunitx.
edit: wenn man anstatt von °C den Befehl \celsius verwendet tritt der Fehler nicht auf!

5) Ist es möglich die nicefrac Ausgabe auch bei Verwendung von "literal" Einheiten zu verwenden. Also, bei Eingabe von
\SI{44}{m/s}
soll ebenso wie bei
\SI{44}{\meter\per\second}
die Ausgabe im nicefrac Format efolgen.



Viele Fragen ;-) Wäre super wenn jemand auf das ein oder andere eine Antwort weiß...

Grüße
Florian[/i]
Zuletzt geändert von flofli am Fr 19. Mär 2010, 16:07, insgesamt 1-mal geändert.

Syralist
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 71
Registriert: Di 8. Jul 2008, 09:26
Wohnort: Bremen

Beitrag von Syralist »

Ich hab da mal ein paar Anworten:

1) Bei mir funktioniert es. Sowohl als globale Option als auch mit \sisetup.

2) Die Option repeatunits=true setzt sich bei der Fehlerdarstellung leider durch (siehe Anleitung). Wenn du also bei \SIrange wiederholende Einheiten haben möchtest aber bei Fehlern nicht, musst du entweder so wie ich unten bei Fehlern die Option repeatunits=false von Hand setzten oder bei \SIrange eben repeatunits=true und global repeatunits=false einstellen.

3) da kann ich grad nichts zu sagen...

4) Warum benutzt du denn nicht \celsius wenn du schon siunitx benutzt? :shock:

Hier nochmal alles zusammen als Minimalbeispiel. Bei der nächsten Frage solltest du übrigens dein eigenes Minimalbeispiel machen.
\documentclass{scrartcl}

\usepackage[ngerman]{babel}

\usepackage[locale=DE,seperr,repeatunits=true,trapambigerr=false,tophrase={{ bis }}]{siunitx}

\begin{document}

\SI{2}{\celsius} $\SI{3}{\celsius}$

\SI[repeatunits=false]{2.3(1)}{\gram}

\SIrange{2}{3}{\meter}
\sisetup{tophrase={{ bla }}}
\SIrange{3}{4}{\meter}

\end{document}
Ubuntu 11.10 / Windows 7
TexLive 2011 / MikTeX 2.8
vim / TeXworks 0.3
---
Dass jemand paranoid ist heißt nicht, dass er nicht verfolgt wird.

flofli
Forum-Anfänger
Forum-Anfänger
Beiträge: 23
Registriert: Sa 13. Mär 2010, 19:03

Beitrag von flofli »

Danke

zu 1):

Da ich die Sprachauswahl Babel überlassen wollte habe ich die Locale wie folgt gesetzt:
\sisetup{loctolang={UK:UKenglish,DE:ngerman,DE:german}}
dadurch scheint aus irgendeinem Grund die Option tophrase auser Gefecht gesetzt zu werden....

mite \newcommand... kann man sich dann auch gleich noch die Option für den "range" Befehl sparen.

nun gehts:
\usepackage[fix-cm]{hfoldsty} % minuskelziffern (old-style)

% \usepackage{amsfonts}
\usepackage[emulate=units]{siunitx}
\sisetup{
        locale=DE,
%          loctolang={UK:UKenglish,DE:ngerman,DE:german},    % Sprachen zuweisen --- VERURSACHT DEN FEHLER!
         seperr=true,                    % Fehler anzeigen
         tightpm,                        % Abstand zwischen Fehler verringern
         repeatunits=false,              % Einheiten bei Fehlern und Range nicht wiederholen
         trapambigerr=false,             % keine Klammern um Fehler setzen
         trapambigrange=false,           % keine Klammern bei Range setzen
         tophrase={{ bis }},             % muss trotzdem nochmal definiert werden!!
%          mode=text,                    % Oldstyle Zahlen (nur wenn entsprechende Schrift geladen ist -> hfoldsty)
         valuemode=text,unitmode=maths,  % Old Style nicht für Hochzahlen
         colourall,colour=blue,
         fraction=nice
         }


% Neudefinition des Bereichs
\newcommand{\SIr}[4][repeatunits=true]{\SIrange[#1]{#2}{#3}{#4}}

\begin{document}

\SI{2.123456}{\celsius}  --- $\SI{2.123456}{\celsius} + 122$
\[ \SI{2.123456}{\celsius} + 1.23 \]

\SI[repeatunits=false]{2.31(1)}{\gram}

\SIr{2}{3}{\meter}
\SIr[repeatunits=false]{2}{3}{\meter}


\end{document}
zu 3)
wenn emulate=units gesetzt ist werden die Minuskel Ziffern nur im reinen Textmode Verwendet, ohne diese Option werden die Minuskelziffern immer verwendet. - Verstehe ich nicht so ganz :?
Aber leider klappt es damit immer noch nicht, dass nur im Text und Mathe Textstyle Modus die Minuskelziffern verwendet werden. :-(

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Ich hoffe, es wird nicht als unverschämt empfunden, wenn ich mich mit einer Frage hier kurz einbringe:

Gibt es bei bei siunitx auch die Möglichkeit die Zahlen in wissenschaftlicher Form, d.h. 1,46E-7 darstellen zu lassen?

Damit ich auch etwas hier beitragen kann:


Gruß,

Irena
\newcommand{\SIr}[4][true]{\SIrange[repeatunits=#1]{#2}{#3}{#4}}
\SIr[false]{2.31(1)}{\gram} 
\SIr{2}{3}{\meter}  
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

flofli hat geschrieben:Danke

zu 1):

Da ich die Sprachauswahl Babel überlassen wollte habe ich die Locale wie folgt gesetzt:
\sisetup{loctolang={UK:UKenglish,DE:ngerman,DE:german}}
dadurch scheint aus irgendeinem Grund die Option tophrase auser Gefecht gesetzt zu werden....
Ja, die babel-Sprachauswahl überschreibt die globalen Einstellungen. Ich verwende in diesem Fall folgendes Muster:
\addto\extrasngerman{\sisetup{locale=DE,…}}
\addto\extras…
zu 3)
wenn emulate=units gesetzt ist werden die Minuskel Ziffern nur im reinen Textmode Verwendet, ohne diese Option werden die Minuskelziffern immer verwendet. - Verstehe ich nicht so ganz :?
Der Optionsname deutet darauf hin, dass dies zur Emulation des units-Pakets dient, welches wohl dieses Verhalten (aus welchen Gründen auch immer) zeigt.
Aber leider klappt es damit immer noch nicht, dass nur im Text und Mathe Textstyle Modus die Minuskelziffern verwendet werden. :-(
Frage doch einfach Joseph Wright direkt. Möglicherweise baut er diese Möglichkeit beim nächsten Update dann ein.

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

IrenaSekuta hat geschrieben:Gibt es bei bei siunitx auch die Möglichkeit die Zahlen in wissenschaftlicher Form, d.h. 1,46E-7 darstellen zu lassen?
Klar, wieso nicht?
\num{1,46E-7}

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Bei mir gibt es bei \SI{1,23E-5}{1/a} Folgendes: 1,23 *10^(-5) 1/a
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

flofli
Forum-Anfänger
Forum-Anfänger
Beiträge: 23
Registriert: Sa 13. Mär 2010, 19:03

Beitrag von flofli »

Hallo

ich habe mein Problem [b[3)[/b] nun auch über die Neudefinition eines Befehls gelöst:
\newcommand{\ei}[3][]{%
\ifmmode
 {\mathchoice{%
     {\sisetup{mode=math} \SI[#1]{#2}{#3}}}{ % Mathemodus  (displaystyle)
     {\SI[#1]{#2}{#3}}}{                     % Zahlen im Text Mathemodus (textstyle)
     {\sisetup{mode=math} \SI[#1]{#2}{#3}}}{ % Scriptstyle
     {\sisetup{mode=math} \SI[#1]{#2}{#3}}}} % Scriptscriptstyle
\else
 {\SI[#1]{#2}{#3}}% dieser Teil gilt für den Textmodus
\fi
}
Damit kann man die Darstellung je nach Modus seinen Wünschen anpassen.

Wright habe ich auch geschrieben aber bisher kam keine Antwort.

Grüße
Florian

rico_em

Beitrag von rico_em »

\sisetup{tophrase={{~bis~}}} :wink:

Antworten