7
2

In meinem Text verwende ich physikalische Einheiten wie Gramm, Meter, Kilojoule u.a.

Wie schreibe ich sie richtig um wissenschaftlich-technischen Normen und typographischen Gepflogenheiten möglichst zu folgen? Mit geht es u.a. um

  • Abstand zwischen Zahl und Einheit
  • Schriftart der Einheiten (g für Gramm und m für Meter sehen bei mir aus wie die Variablen g und m)
  • Erleichterung und Konsistenz beim Schreiben wie durch Abkürzungen mit Makros

gefragt 08 Dez '13, 17:02

Student's gravatar image

Student
5807779104
Akzeptiert-Rate: 82%

bearbeitet 20 Feb '17, 19:03

stefan's gravatar image

stefan ♦♦
18.1k143048


Die richtige Antwort wird unzweifelhaft lauten: verwende siunitx :)

Wieso? Das Paket stellt grundsätzlich das Makro \SI{<Zahl>}{<Einheit>} bereit, mit dem schon mal zwei der Punkte geklärt werden: der Abstand zwischen Zahl und Einheit und die die richtige Schriftwahl für die Einheiten. Und das Makro selbst erfüllt dann Punkt drei Deiner Frage.

Open in writeLaTeX
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\[v=\SI{2.3}{\metre\per\second}\]
\end{document}

alt text

Das Paket stellt zahlreiche Möglichkeiten zur Anpassung bereit:

Open in writeLaTeX
\documentclass{article}
\usepackage{siunitx}
\sisetup{
  locale = DE ,
  per-mode = symbol
}
\begin{document}
\[v=\SI{2.3}{\metre\per\second}\]
\end{document}

alt text

Daneben hat das Paket noch eine ganze Reihe weiterer nützlicher Funktionen: Makros (\num) zum ebenso leichten Angeben von Zahlenwerten, die (auch bei \SI) z.B. gerundet werden können, in wissenschaftlicher Schreibweise ausgegeben werden können, ... Auch Gradzahlen kann man mit siunitx leicht als solche markieren (\ang).

Nicht zuletzt stellt es Möglichkeiten bereit, um Zahlen in Tabellen formatiert und ausgerichtet zu setzen.

Obwohl die Makros in den Beispielen im Mathemodus eingesetzt wurden, ist das keine Voraussetzung. Alle von siunitx' Makros funktionieren sowohl im Text- als auch im Mathe-Modus.

Das Paket ist der offizielle Nachfolger der Pakete SIstyle, si und siunits (sie werden alle vom gleichen Autor maintained). Andere Pakete in diesem Zusammenhang laufen IMHO unter ferner liefen. siunitx hat auch von dcolumn viele Anregungen übernommen, übertrifft es aber in einigen Bereichen.


@Johannes schlägt vor, sich außerdem für einzelne physikalische Größen Makros zu definieren, um die Verwendung zu vereinfachen (und Tipparbeit zu sparen):

Open in writeLaTeX
\DeclareSIUnit{\dichte}{\gram\per\cubic\centi\meter}
\DeclareDocumentCommand\Dichte{O{}m}{\SI[#1]{#2}{\dichte}}

Macht man das für viele verschiedene Größen, lohnt es sich, das etwas zu automatisieren. Der hier verwendete Befehl \NewDocumentCommand stammt vom Paket xparse, das von siunitx bereits geladen wird:

Open in writeLaTeX
\documentclass{article}
\usepackage{siunitx}

\NewDocumentCommand\DeclareNewQuantity{mmm}{%
  \DeclareSIUnit{#2}{#3}%
  \DeclareDocumentCommand{#1}{O{}m}{\SI[##1]{##2}{#2}}%
}

\DeclareNewQuantity
  \Dichte
  \dichte
  {\gram\per\cubic\centi\meter}
\DeclareNewQuantity
  \Stoffmenge
  \stoffmenge
  {\mole}
\DeclareNewQuantity
  \Molalitaet
  \molalitaet
  {\mole\per\kilo\gram}

\begin{document}

\[ \rho = \Dichte{1.02} \]

\end{document}
Permanenter link

beantwortet 08 Dez '13, 17:04

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 09 Feb '14, 11:00

1

@Clemens Kannst du vielleicht noch ein globales (semantisches) Makro definieren, um sich die ewige Tipperei zu ersparen? Beispielsweise \speed{2.3}.

(08 Dez '13, 20:17) Johannes

@Johannes obwohl ich voll für semantische Makros bin, hab ich das für Zahlenwerte mit Einheiten noch nie gemacht... keine Ahnung, wieso. Vielleicht, weil in meinen Dokumenten die verschiedenen physikalischen Größen zu uneinheitlich sind und die einzelne sich zu selten wiederholt.

(08 Dez '13, 20:27) cgnieder

@Clemens Ich definiere mir (auch erst seit kurzem) in meinen Dokumenten ungefähr sowas:

\DeclareSIUnit { \dichte }{ \gram\per\cubic\centi\meter }
\DeclareDocumentCommand \Dichte { O{} m } { \SI [ #1 ] { #2 } { \dichte} }

Ich bin mir allerdings noch nicht ganz sicher, ob mir das irgendwann Probleme bereitet.

Ich hab auch überlegt mir das ganze mit der Definition von \DeclareNewQuantity o. ä. zu vereinfachen, bin dazu aber noch nicht gekommen.

(08 Dez '13, 20:54) Johannes
1

Es sei erwähnt, dass alle siunitx-Makros auch im Text-Modus funktionieren (es sei auf die verschiedensten Font-Settings hingewiesen, die unter den Optionen detect-*, math-* und text-* zu finden sind).

Es sei auch erwähnt, dass die Pakete units sowie dcolumn mit der Einführung von siunitx quasi obsolet geworden sind.

(08 Dez '13, 21:24) Qrrbrbirlbel
1

@Johannes ich sehe nicht, wo das Probleme bereiten sollte? Ich habs jetzt mal in die Anwort aufgenommen

(09 Dez '13, 11:17) cgnieder

@Clemens Danke, die Verschachtelung verwirrt mich bisweilen.

(09 Dez '13, 15:03) Johannes

@Johannes: eigentlich ist es einfach: pro Verschachtelungstiefe muss man die # für die Parameter des inneren Makros verdoppeln.

(18 Dez '13, 20:36) cgnieder

@Qrrbrbirlbel - Ich kenne mich mit dem Paket units nicht aus, aber ich würde schon nicht sagen dass dcolumn durch siunitx obsolet gemacht worden ist. Insbesondere wenn die Einträge runde Klammern und andere nicht-numerische Elemente erhalten, ist es generell viel einfacher, gute Resultate via dcolumn-basierte anstatt duch siunitx-basierte Methoden zu erhalten.

(09 Feb '14, 10:57) Mico
Ergebnis 5 von 8 show 3 more comments
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:

×117
×34
×8

gestellte Frage: 08 Dez '13, 17:02

Frage wurde gesehen: 114,740 Mal

zuletzt geändert: 09 Feb '14, 11:00