일반 단위를 SI 단위로 변환하는 방법

일반 단위를 SI 단위로 변환하는 방법

문서에 사용된 모든 단위를 7가지 SI 단위 중 하나로 자동 변환할 수 있습니까?

예를 들어 내가 가지고 있는 곳 \unit{\pascal}

\unit{\newton\per\square\meter}어디에서나 조정할 필요 없이 로 렌더링하고 싶습니다 .

답변1

다음과 같이 전문에서 문제의 단위를 (재)선언할 수 있습니다.

\documentclass{article}

\usepackage{siunitx}
\DeclareSIUnit{\pascal}{\newton\per\square\meter}

\begin{document}

\unit{\pascal}

\end{document}

편집하다:사용자 매뉴얼, 14페이지에 이렇게 나와 있습니다.

미리 정의된 단위의 의미는 \DeclareSIUnitsiunitx를 로드한 후 사용하여 변경할 수 있습니다. 이렇게 하면 원래 정의를 최신 버전으로 덮어쓰게 됩니다.

따라서 이 방법을 사용하는 데 아무런 문제가 없어야 합니다.

siunitx편집 2: 패키지에서 의미가 있는 SI 파생 단위를 (재)선언하는 데 시간을 투자했습니다. (아래 참조, 표 10을 사용했습니다.이 장소참조용으로 Wikipedia를 통해 다시 확인했습니다.) b원본 매크로를 덮어쓰지 않기 위해 매크로 이름 앞에 를 추가했습니다 . 나는 그렇게 하기로 결정했습니다. 왜냐하면 모든 파생 단위가 7개의 SI 기본 단위로 표현되도록 선언하는 과정에서 한 가지 문제를 발견했기 때문입니다. 패키지에 정의된 MPa또는 같은 단위에 대한 약어가 있습니다 . kN재정의된 단위 매크로와 함께 약어가 있는 매크로를 사용하면 이중 접두사로 인한 오류뿐만 아니라 잘못된 단위(예: Mm^{-1}kgs^{-2}대신 ) 로 인해 오류가 발생할 수 있습니다 MPa. 결론적으로 기존 SI 파생 단위를 재정의하는 대신 새 단위를 사용하겠습니다. 그러나 기존 매크로를 사용하려면 주의하고 접두사와 함께 약어를 사용하거나(또는 적어도 어떤 것이 안전한지 확인) 덮어쓰지 마십시오.

\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}

단위 구성/순서를 선호한다면 m-kg-s-A-K-mol-cd아래 버전을 선택하는 것이 좋습니다.

\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그들의 \steradianSI 기본 단위는 1and also \lumen및 which를 사용하여 \lux파생되었기 때문에 변환 오류가 발생할 수 있습니다. (그러나 그것에 대해 완전히 확신할 수는 없습니다. 더 잘 아시는 분은 언제든지 알려 주시기 바랍니다. ). 또한 는 에 상대적인 파생 단위일 뿐이므로 직접 변환하면 절대 온도에 따라 잘못된 수량으로 이어질 수 있으므로 이 역시 포함하지 않았습니다.\candela\steradian\degreeCelsius273.15 K

답변2

여기에 이미지 설명을 입력하세요

\documentclass{article}

\usepackage{siunitx}

\DeclareSIUnit{\pascal}{\newton\per\square\meter}

\begin{document}

This is the distillation column pressure \SI{10}{\unit{\pascal}}.

\end{document}

참고: 이것이 이미 정의된 내용에 문제가 있는지 확실하지 않습니다. \pascal어쩌면 누군가가 더 적절한 답변을 제공할 수도 있지만 이는 명백한 오류 없이 작동하는 것으로 보입니다.

관련 정보