siunitx로 새 단위를 정의할 수 없습니다.

siunitx로 새 단위를 정의할 수 없습니다.

나는 같은 문제가 있는 것처럼 보이는 다양한 게시물을 거의 두 시간 동안 읽었지만 어떤 해결책도 나에게 도움이 되지 않았습니다.
나는 새로운 단위를 정의하고 싶다(내 경우에는 \thermal과 \electrical이다).
scrartcl이 그것과 관련이 있을 가능성이 있습니까?
아니면 패키지가 이를 방해합니까?
내 서문은 다음과 같습니다.

\documentclass{scrartcl}  
\usepackage[utf8]{inputenc}  

\usepackage{amsmath}  
\usepackage{amssymb}  
\usepackage[german]{babel}  
\usepackage{graphicx}  
\usepackage{floatrow}  
\usepackage{subfigure}  
%\pagestyle{empty}  
\linespread{1.5}  
\usepackage[margin=3.5cm]{geometry}  
\usepackage{color}  

\usepackage{siunitx}  
    \sisetup{inter-unit-product =$\cdot$}  

\usepackage{cancel}  
\usepackage{float}  
\usepackage{enumitem}  
\usepackage{caption}  
\usepackage{booktabs}  
\usepackage{cleveref}  
\usepackage{colortbl}  
\usepackage{csquotes}  
\usepackage{helvet}  
\usepackage{mathpazo}  
\usepackage{listings}  
\usepackage{pgfplots}  
\usepackage{xcolor}  
\usepackage{hyperref}  

\usepackage{multirow}  

\renewcommand{\labelitemii}{$\circ$}  
\renewcommand{\labelitemiii}{$\diamond$}  
\renewcommand{\labelitemiv}{$\ast$}  

\allowdisplaybreaks  

\numberwithin{equation}{subsection} %Gleichungen bekommen die     SubKapitelnummer  

\DeclareSIUnit{\thermal}{t}  
\DeclareSIUnit{\electrical}{e}  

다음 오류가 발생합니다.

! Missing } inserted.  
<inserted text>  
                }  
l.72 ...-1000 betrug \SI{3200}{\mega\watt\thermal}  

?  

나는 이미 다음을 시도했습니다:
\DeclareSIUnit{\thermal}{t}
\DeclareSIUnit\thermal{t}

등등; 공백, 공백 없음, 중괄호 등... \newunit\thermal{t}도 인식되지 않습니다.
추가 정보가 필요하면 게시하겠습니다. 읽어주셔서 감사합니다.

편집 : 전체 최소 예

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}  
\usepackage{siunitx}  
    \sisetup{inter-unit-product =$\cdot$}
\usepackage{amsmath}  
\usepackage{booktabs}  
\usepackage{cancel}  
\usepackage{caption}  
\usepackage{cleveref}  
\usepackage{colortbl}  
\usepackage{csquotes}  
\usepackage{helvet}  
\usepackage{mathpazo}  
\usepackage{multirow}  
\usepackage{listings}  
\usepackage{pgfplots}  
\usepackage{xcolor}  

\DeclareSIUnit{\thermal}{t}  
\DeclareSIUnit{\electrical}{e}  
\begin{document}  
\SI{3200}{\mega\watt} \\  
\SI{3200}{\mega\watt\thermal}  
\end{document}  

에러 메시지:

! Missing } inserted.  
<inserted text>   
                }  
l.23 \SI{3200}{\mega\watt\thermal}  

?   


업데이트: \sisetup{inter-unit-product =$\cdot$}을 포함하면 오류가 발생합니다.
또한 원래 서문에서도 삭제했는데 이제 작동합니다.

도움을 주신 모든 분들께 감사드립니다. (나와 같은 문제가 발생할 수 있는 사람들을 위해) 지금 사용하고 있는 줄은 다음과 같습니다.
\sisetup{inter-unit-product=\ensuremath{{}\cdot{}}}

답변1

siunitx\ensuremath(다른 구성 요소와 마찬가지로) 내부의 단위를 인쇄합니다 . 이를 통해 필요한 경우 수학 모드가 자동으로 활성화되는 수학 또는 텍스트 모드 내에서 출력을 조판할 수 있습니다. 하지만,강제내부의 수학 모드로 \ensuremath인해 문제가 발생합니다. 이는 다음과 같은 간단한 최소 예제로 복제됩니다.

\documentclass{article}
\begin{document}
$x \cdot y$

\ensuremath{x \cdot y}

%\ensuremath{x $\cdot$ y}% <---- this is a problem
\end{document}

이를 염두에 두고 SI 단위를 정의하세요.없이수학 모드로 전환:

\sisetup{inter-unit-product=\cdot}

곱의 피연산자 사이의 공간을 줄이려면 다음을 사용하십시오.

\sisetup{inter-unit-product=\mathord{\cdot}}

다음은 다양한 출력을 보여주는 최소한의 예입니다.

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

\documentclass{article}
\usepackage{siunitx}

\DeclareSIUnit{\thermal}{t}

\begin{document}

\sisetup{inter-unit-product=\cdot}

\SI{3200}{\mega\watt\thermal}

\sisetup{inter-unit-product=\mathord{\cdot}}

\SI{3200}{\mega\watt\thermal}

\end{document}

주변 간격 \cdot및 적용에 대한 참조는 \mathord다음을 참조하세요.이진 관계 주변의 간격 기본값을 변경하는 방법은 무엇입니까?

관련 정보