Estou lendo há quase duas horas vários posts que parecem ter o mesmo problema, mas nenhuma das soluções funcionou para mim.
Quero definir novas unidades (no meu caso é \térmica e \elétrica).
É possível que o scartcl tenha algo a ver com isso?
Ou um pacote interfere nisso?
Aqui está meu preâmbulo:
\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}
Estou tendo o erro a seguir:
! Missing } inserted.
<inserted text>
}
l.72 ...-1000 betrug \SI{3200}{\mega\watt\thermal}
?
Já tentei o seguinte:
\DeclareSIUnit{\thermal}{t}
\DeclareSIUnit\thermal{t}
e assim por diante; espaços, sem espaços, colchetes,... \newunit\thermal{t} nem é reconhecido.
Se precisar de informações adicionais eu postarei. Obrigado por ler isso.
EDIT: exemplo mínimo completo
\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}
Mensagem de erro:
! Missing } inserted.
<inserted text>
}
l.23 \SI{3200}{\mega\watt\thermal}
?
Atualização: recebo um erro se incluir
\sisetup{inter-unit-product =$\cdot$}
Também o excluí do meu preâmbulo original e funciona agora.
Obrigado a todos pela ajuda, aqui está a linha que estou usando agora (para aqueles que podem encontrar o mesmo problema que eu):
\sisetup{inter-unit-product=\ensuremath{{}\cdot{}}}
Responder1
siunitx
imprime as unidades internas \ensuremath
(como os outros componentes). Isso permite compor a saída dentro do modo matemático ou de texto, onde o modo matemático seria ativado automaticamente, se necessário. No entanto,forçandoo modo matemático interno \ensuremath
causa um problema, como é replicado por este exemplo mínimo simples:
\documentclass{article}
\begin{document}
$x \cdot y$
\ensuremath{x \cdot y}
%\ensuremath{x $\cdot$ y}% <---- this is a problem
\end{document}
Com isso em mente, defina sua unidade SIsemmudando para o modo matemático:
\sisetup{inter-unit-product=\cdot}
Se desejar diminuir o espaço entre os operandos do produto, utilize
\sisetup{inter-unit-product=\mathord{\cdot}}
Aqui está um exemplo mínimo mostrando a saída diferente:
\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}
Como referência para o espaçamento \cdot
e aplicação de \mathord
, vejaComo alterar o padrão de espaçamento em torno das relações binárias?