So konvertieren Sie allgemeine Einheiten in SI-Einheiten

So konvertieren Sie allgemeine Einheiten in SI-Einheiten

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 \DeclareSIUnitnach 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 siunitxPaket (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 bvor 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 MPaoder kNdefiniert. 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-cdist 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}

\radianIch habe und weggelassen , \steradianda ihre SI-Basiseinheit und ist 1, und auch \lumenund , \luxdie von abgeleitet sind, wobei die \candelaVerwendung \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 \degreeCelsiusnur 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

Bildbeschreibung hier eingeben

\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 \pascalbereits definiert, etwas kaputt macht. Vielleicht hat jemand eine passendere Antwort, aber es scheint ohne offensichtliche Fehler zu funktionieren.

verwandte Informationen