Ist es möglich, alle verwendeten Einheiten in einem Dokument automatisch in eine der 7 SI-Einheiten umzurechnen?
Wo ich zum Beispiel habe
\unit{\pascal}
,
Ich möchte es als rendern lassen
\unit{\newton\per\square\meter}
, ohne überall Anpassungen vornehmen zu müssen.
Antwort1
Du könntest die betreffenden Einheiten in deiner Präambel einmal (neu) deklarieren, und zwar wie folgt:
\documentclass{article}
\usepackage{siunitx}
\DeclareSIUnit{\pascal}{\newton\per\square\meter}
\begin{document}
\unit{\pascal}
\end{document}
Bearbeiten: ImBenutzerhandbuchheißt es auf Seite 14:
Die Bedeutung einer vordefinierten Einheit kann
\DeclareSIUnit
nach dem Laden von siunitx geändert werden. Dadurch wird die ursprüngliche Definition durch die neuere Version überschrieben.
Daher sollte es bei der Verwendung dieses Ansatzes keine Probleme geben.
Edit 2: Ich habe mir die Zeit genommen, die SI-abgeleiteten Einheiten im siunitx
Paket (neu) zu deklarieren, wo es Sinn machte (siehe unten, ich habe Tabelle 10 verwendet).Diese Seiteals Referenz und mit Wikipedia noch einmal geprüft). Beachten Sie, dass ich b
vor den Makronamen ein hinzugefügt habe, um die ursprünglichen Makros nicht zu überschreiben. Ich habe mich dafür entschieden, weil ich auf ein Problem beim Deklarieren aller abgeleiteten Einheiten als durch die sieben SI-Basiseinheiten dargestellt gestoßen bin. Im Paket sind Abkürzungen für Einheiten wie MPa
oder kN
definiert. Die Verwendung dieser mit Abkürzungen mit neu definierten Einheitenmakros kann nicht nur zu Fehlern aufgrund doppelter Präfixe führen, sondern auch zu falschen Einheiten, zB Mm^{-1}kgs^{-2}
statt MPa
. Fazit: Ich würde eine Neudefinition der bestehenden abgeleiteten SI-Einheiten vermeiden und stattdessen neue verwenden. Wenn Sie jedoch die bestehenden Makros verwenden möchten, seien Sie vorsichtig und verwenden Sie keine Abkürzungen mit Präfixen (oder prüfen Sie zumindest, welche sicher sind) oder überschreiben Sie diese auch.
\DeclareSIUnit{\bhertz}{\per\second}
\DeclareSIUnit{\bnewton}{\kilo\gram\metre\per\square\second}
\DeclareSIUnit{\bpascal}{\kilo\gram\per\metre\per\square\second}
\DeclareSIUnit{\bjoule}{\kilo\gram\square\metre\per\square\second}
\DeclareSIUnit{\bwatt}{\kilo\gram\square\metre\per\cubic\second}
\DeclareSIUnit{\bcoulomb}{\ampere\second}
\DeclareSIUnit{\bvolt}{\kilo\gram\square\metre\per\ampere\per\cubic\second}
\DeclareSIUnit{\bfarad}{\per\kilo\gram\per\square\metre\square\ampere\second\tothe{4}}
\DeclareSIUnit{\bohm}{\kilo\gram\square\metre\per\square\ampere\per\cubic\second}
\DeclareSIUnit{\bsiemens}{\per\kilo\gram\per\square\metre\square\ampere\cubic\second}
\DeclareSIUnit{\bweber}{\kilo\gram\square\metre\per\ampere\per\square\second}
\DeclareSIUnit{\btesla}{\kilo\gram\per\ampere\per\square\second}
\DeclareSIUnit{\bhenry}{\kilo\gram\square\metre\per\square\ampere\per\square\second}
% wouldn't recommend using:
\DeclareSIUnit{\bbecquerel}{\per\second}
\DeclareSIUnit{\bgray}{\square\metre\per\square\second}
\DeclareSIUnit{\bsievert}{\square\metre\per\square\second}
\DeclareSIUnit{\bkatal}{\mole\per\second}
Wenn Sie das Schema/die Reihenfolge der Einheiten bevorzugen, m-kg-s-A-K-mol-cd
ist die folgende Version die richtige Wahl.
\DeclareSIUnit{\bhertz}{\per\second}
\DeclareSIUnit{\bnewton}{\metre\kilo\gram\per\square\second}
\DeclareSIUnit{\bpascal}{\per\metre\kilo\gram\per\square\second}
\DeclareSIUnit{\bjoule}{\square\metre\kilo\gram\per\square\second}
\DeclareSIUnit{\bwatt}{\square\metre\kilo\gram\per\cubic\second}
\DeclareSIUnit{\bcoulomb}{\second\ampere}
\DeclareSIUnit{\bvolt}{\square\metre\kilo\gram\per\cubic\second\per\ampere}
\DeclareSIUnit{\bfarad}{\per\square\metre\per\kilo\gram\second\tothe{4}\square\ampere}
\DeclareSIUnit{\bohm}{\square\metre\kilo\gram\per\cubic\second\per\square\ampere}
\DeclareSIUnit{\bsiemens}{\per\square\metre\per\kilo\gram\cubic\second\square\ampere}
\DeclareSIUnit{\bweber}{\square\metre\kilo\gram\per\square\second\per\ampere}
\DeclareSIUnit{\btesla}{\kilo\gram\per\square\second\per\ampere}
\DeclareSIUnit{\bhenry}{\square\metre\kilo\gram\per\square\second\per\square\ampere}
\radian
Ich habe und weggelassen , \steradian
da ihre SI-Basiseinheit und ist 1
, und auch \lumen
und , \lux
die von abgeleitet sind, wobei die \candela
Verwendung \steradian
(glaube ich) zu Transformationsfehlern führen könnte (aber ich bin mir da nicht ganz sicher, wenn Sie es besser wissen, lassen Sie es mich gerne wissen). Da außerdem \degreeCelsius
nur eine abgeleitete Einheit relativ zu ist 273.15 K
, würde eine direkte Transformation zu falschen Mengen bei absoluten Temperaturen führen, also habe ich es auch nicht aufgenommen.
Antwort2
\documentclass{article}
\usepackage{siunitx}
\DeclareSIUnit{\pascal}{\newton\per\square\meter}
\begin{document}
This is the distillation column pressure \SI{10}{\unit{\pascal}}.
\end{document}
Hinweis: Ich bin nicht sicher, ob dies, wie \pascal
bereits definiert, etwas kaputt macht. Vielleicht hat jemand eine passendere Antwort, aber es scheint ohne offensichtliche Fehler zu funktionieren.