Llevo casi dos horas leyendo varias publicaciones que parecen tener el mismo problema pero ninguna de las soluciones funcionó para mí.
Quiero definir nuevas unidades (en mi caso son \térmicas y \eléctricas).
¿Es posible que scrartcl tenga algo que ver con eso?
¿O algún paquete interfiere con ello?
Aquí está mi 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}
Obtuve el siguiente error:
! Missing } inserted.
<inserted text>
}
l.72 ...-1000 betrug \SI{3200}{\mega\watt\thermal}
?
Ya probé lo siguiente:
\DeclareSIUnit{\thermal}{t}
\DeclareSIUnit\thermal{t}
etcétera; espacios, sin espacios, llaves,... \newunit\thermal{t} ni siquiera se reconoce.
Si necesitas información adicional la publicaré. Gracias por leer esto.
EDITAR: ejemplo 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}
Mensaje de error:
! Missing } inserted.
<inserted text>
}
l.23 \SI{3200}{\mega\watt\thermal}
?
Actualización: aparece un error si incluyo
\sisetup{inter-unit-product =$\cdot$}
También lo eliminé de mi preámbulo original y ahora funciona.
Gracias a todos por ayudar, aquí está la línea que estoy usando ahora (para aquellos que puedan encontrar el mismo problema que yo):
\sisetup{inter-unit-product=\ensuremath{{}\cdot{}}}
Respuesta1
siunitx
imprime las unidades en el interior\ensuremath
(como los demás componentes). Esto permite componer la salida dentro del modo matemático o de texto, donde el modo matemático se habilitaría automáticamente si fuera necesario. Sin embargo,forzandoEl modo matemático interno \ensuremath
causa un problema, como se replica en este simple ejemplo mínimo:
\documentclass{article}
\begin{document}
$x \cdot y$
\ensuremath{x \cdot y}
%\ensuremath{x $\cdot$ y}% <---- this is a problem
\end{document}
Con esto en mente, define tu unidad SIsincambiar al modo matemático:
\sisetup{inter-unit-product=\cdot}
Si desea reducir el espacio entre los operandos del producto, utilice
\sisetup{inter-unit-product=\mathord{\cdot}}
Aquí hay un ejemplo mínimo que muestra los diferentes resultados:
\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 referencia para el espaciamiento \cdot
y la aplicación de\mathord
, consulte¿Cómo cambiar el espaciado predeterminado alrededor de las relaciones binarias?