
Estoy creando una lista con comandos matemáticos comunes que uso, pero \newcommand y \DeclareMathOperator agregan un espacio después del símbolo que acabo de definir. Por ejemplo, comparando los dos comandos definidos a continuación,
\DeclareMathOperator{\dd}{d}
% Derivartive in Leibniz notation d{#1}/d{#2}
\newcommand{\deriv}[2]{ \frac{\mathrm{d}}#1 }{ \mathrm{d}#2^} }
\newcommand{\dderiv}[2]{ \frac{\dd #1 }{ \dd #2 } }
\deriv{f}{x} me da lo de siempre
mientras que \dderiv{f}{x} se compila en
Estoy usando al dorso. Hay alguna manera de evitar esto?
Respuesta1
El \DeclareMathOperator
comando proporciona el \mathop
espaciado de las cadenas, como los operadores \log
o \cos
.
Para obtener \mathord
el espaciado (átomo matemático ordinario), envuélvalo entre llaves:
\newcommand{\dderiv}[2]{ \frac{{\dd} #1 }{{\dd} #2 } }
El \mathord{\dd}
comando también funcionará, por lo que depende de usted si esto complica demasiado las cosas o facilita la comprensión de por qué está envolviendo \dd
.
Entonces, para una MWE:
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\dd}{d}
% Derivative in Leibniz notation d{#1}/d{#2}
\newcommand{\deriv}[2]{ \frac{\mathrm{d}#1 }{ \mathrm{d}#2} }
\newcommand{\dderiv}[2]{ \frac{{\dd} #1 }{{\dd} #2 } }
\begin{document}
\[ \dderiv{x}{t}
\]
\end{document}
Sin embargo, es posible que desee un espaciado similar al de un operador a la izquierda pero un espaciado normal a la derecha de \dd
, para casos de uso como \dd x \dd y
, por ejemplo:
\documentclass{article}
\usepackage{amsmath}
\newcommand\dd{\mathop{}\mathrm{d}}
% Derivartive in Leibniz notation d{#1}/d{#2}
\newcommand{\deriv}[2]{ \frac{\mathrm{d}#1 }{ \mathrm{d}#2} }
\newcommand{\dderiv}[2]{ \frac{\dd #1 }{\dd #2 } }
\begin{document}
\[ \iint 1 \dd x \dd y
\]
\end{document}
Hora estimada de llegada:
Varios comentaristas pensaron que el segundo ejemplo agregaba espacio excesivo, por lo que reimprimiré el ajuste de Henri Menke a partir de los comentarios:
\newcommand\dd{\mathop{}\!\mathrm{d}}
Respuesta2
Perdón pero
\DeclareMathOperator{\dd}{d}
está mal en muchos aspectos y no funcionaráen cualquier lugarComo era la intención.
No me refiero a la “d vertical” (que considero matemáticamente incorrecta, pero ese no es el punto), sino al espacio \dd
queautomáticamenteagregar cuando va seguido de un símbolo ordinario.
lo que quieres es
\newcommand{\dd}{\mathop{}\!\mathrm{d}}
y todo irá bien.
\documentclass{article}
\usepackage{amsmath}
\newcommand\dd{\mathop{}\!\mathrm{d}}
% Derivartive in Leibniz notation d{#1}/d{#2}
\newcommand{\dderiv}[2]{ \frac{\dd #1 }{\dd #2 } }
\begin{document}
\[
\dderiv{f}{t} + \iint f(x,y) \dd x \dd y
\]
\end{document}