siunitx で新しいユニットを定義できません

siunitx で新しいユニットを定義できません

同じ問題を抱えていると思われるさまざまな投稿を 2 時間近く読んできましたが、どの解決策も私には役に立ちませんでした。
新しい単位を定義したいのですが (私の場合は \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参考として、バイナリ関係の周囲のスペースのデフォルトを変更するにはどうすればよいですか?

関連情報