When writing an integral, it seems like something should be done to separate the "d", as in \int f(x) dx
, so as not to confuse it with a variable. I've seen it left as-is, bolded, and straightened. Even among those options there are several ways to accomplish each task; e.g., I could do a \mathrm
or a \operatorname
. What is the preferred method of dealing with the "d"?
6 Answers
\documentclass{article}
\usepackage{amsmath}
\newcommand*\diff{\mathop{}\!\mathrm{d}}
\newcommand*\Diff[1]{\mathop{}\!\mathrm{d^#1}}
\begin{document}
\begin{align*}
\biggl(\int_{-\infty}^\infty e^{-x^2}\diff x\biggr)^2
&= \int_{-\infty}^\infty\int_{-\infty}^\infty e^{-(x^2+y^2)}\diff x\diff y \\
&= \int_0^{2\pi}\int_0^\infty e^{-r^2}r\diff r\diff\theta \\
&= \int_0^{2\pi}\biggl(-{e^{-r^2}\over2}\bigg\vert_{r=0}^{r=\infty}\,\biggr)\diff\theta\\
&= \pi \tag*{q.e.d.}\\
\end{align*}
%
\[ V(\mathbf{x}) = -\int_{\mathbf{R}^3}
\frac{G}{|\mathbf{x}-\mathbf{y}|}\,\rho(\mathbf{y})\,\Diff3\mathbf{y} \]
\end{document}
-
2Herbert, are you recommending what's on the rhs? It looks odd to me, especially when I have an inline $dy/dx$. Jun 20, 2012 at 13:07
-
97IMO it makes sense to add a small explanation of why this solution was chosen, rather than just providing uncommented source code.– MarcoJun 20, 2012 at 13:09
-
10if i'm not mistaken, the upright "d" is an iso standard. but it's not common practice in the u.s. (and perhaps elsewhere). certainly knuth uses -- intentionally -- an italic "d" as can be inferred from the italic correction "d" is given in the cmmi fonts, namely none. what i find peculiar in @Herbert's example is the italic "d" on the left side while upright is used on the right. in my opinion, whichever is chosen should be used consistently. Jun 20, 2012 at 13:19
-
1@JimHefferon: in inline mode I use only
\mathrm{d}
– user2478Jun 21, 2012 at 6:39 -
1Thank you, but (1) I think it should be
\newcommand*\Diff[1]{\mathop{}\!\mathrm{d}^#1}
, because then
in my example should not be in roman. (2) I still find the distance between thed^n
and thex
too large. Thex
looks like a regular variable. I think I would rather write\newcommand*\Diff[2]{\mathop{}\!\mathrm{d}^{#1}\!{#2}}
, although it is a tad too close.– JostNov 5, 2013 at 13:16
I found a TUGboat article some years ago which seems to deal with the spacing around the differential operator in the correct way (at least to me).
Example
\documentclass{article}
\makeatletter
\providecommand*{\dif}%
{\@ifnextchar^{\DIfF}{\DIfF^{}}}
\def\DIfF^#1{%
\mathop{\mathrm{\mathstrut d}}%
\nolimits^{#1}\gobblespace
}
\def\gobblespace{%
\futurelet\diffarg\opspace}
\def\opspace{%
\let\DiffSpace\!%
\ifx\diffarg(%
\let\DiffSpace\relax
\else
\ifx\diffarg\[%
\let\DiffSpace\relax
\else
\ifx\diffarg\{%
\let\DiffSpace\relax
\fi\fi\fi\DiffSpace}
\makeatother
\begin{document}
\[
\int x \dif x
\]
\end{document}
Update
As pointed out by Enrico Gregorio and implemented by Herbert Voß, the following will do:
\documentclass{article}
\newcommand*\dif{\mathop{}\!\mathrm{d}}
\begin{document}
\[
\int x \dif x
\]
\end{document}
-
11Claudio Beccari later discovered that
\newcommand\dif{\mathop{}\!\mathrm{d}}
does the same with much less effort.– egregJan 28, 2013 at 16:37 -
According to tug.org/pipermail/texhax/2009-August/013018.html, the following by Morten Høgholm is an improved version of the large code chunk I posted:
\newcommand*\dif{ \mathop{}\nobreak \mskip-\thinmuskip\nobreak \mathrm{d} }
what is best of Morten's code and the code posted by @egreg ? Jan 28, 2013 at 17:03 -
4It's just the same, with two redundant
\nobreak
that do exactly nothing, because a line break is not possible in a math formula after a mathop atom or after\mskip
glue.– egregJan 28, 2013 at 17:07 -
Besides the fact that there is apparently a much shorter equivalent for the code: I believe
\ifx\diffarg\[%
should be\ifx\diffarg[%
,– cgniederJan 28, 2013 at 23:28 -
6@SvendTveskæg
\mathop{}
provides the thin space at the left when preceded by an ordinary symbol or a closing delimiter; the “d” after it inserts another thin space that's removed with\!
.– egregSep 8, 2014 at 9:19
Have a look at
http://ctan.sharelatex.com/tex-archive/macros/latex/contrib/physics/physics.pdf
2.5 Derivatives
I use it and i am very happy with this package.
EDIT:
\documentclass{article}
\usepackage{amsmath}
\usepackage{physics}
\usepackage{amssymb}
\begin{document}
\begin{align}
\left(\int\limits_{-\infty}^\infty e^{-x^2} \dd{x} \right)^2
&=\int\limits_{-\infty}^\infty \int\limits_{-\infty}^\infty {e^{-(x^2+y^2)}}\dd{x}\dd{y} \\
&=\int\limits_{0}^{2\pi} \int\limits_{0}^\infty e^{-r^2}r \dd{r}\dd{\theta} \\
&=\int\limits_{0}^{2\pi} {\left(\left.-\frac{e^{-r^2}}2\right|_{r=0}^{r=\infty}\right)}\dd{\theta} \\
&=\pi
\end{align}
\begin{equation}
V(x)=-\int\limits_{\mathbb R^3} \frac G{|x-y|}\rho(y) \dd[3]{y}
\end{equation}
\end{document}
-
1Note that we can italicise the d's using
\usepackage[italicdiff]{physics}
Apr 9, 2017 at 5:22
I usually do this (which I've shamefully stolen from Niel de Beaudrap and modified):
\makeatletter \renewcommand\d[1]{\ensuremath{%
\;\mathrm{d}#1\@ifnextchar\d{\!}{}}}
\makeatother
It renders nicely, especially with multiple integrals:
-
4I find this wrong under many respects. The
\;
space is too much. The definition proposed by Herbert is certainly better.– egregJun 20, 2012 at 13:08 -
@egreg: I'm curious if there are other reasons aside from
\;
(perhaps you can replace it with\:
, or with\mathop{}\!
as in Herbet's solution) why you find the definition "wrong". As someone who is regularly doing all sorts of ad-hoc fooling around with spacing to try and better suggest logical groupings of symbols in my math typesetting, I'm interested in other people's notions of best practises. Jun 20, 2012 at 13:35 -
1I like this definition of
\d
(taking care of subsequent differentials). Just IMO: (1)\ensuremath
is completely wrong here, (2) the space is indeed to large and\mathop{}\!
gives some nice-looking result.– yo'Jun 20, 2012 at 13:42 -
1@tohecz If
\mathop{}\!d
is used, then the spacing for subsequent differentials will be automatically added.– egregJun 20, 2012 at 13:44 -
1
Presumable you are trying to both save on typing, and to exert some consistent notation throughout you article (good idea).
If you are making a macro for infinitesimals, you might as well make a marco for a derivative and an integral with limits.
Avoid single letter macros e.g. \d
because they are often already defined.
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\newcommand \dd[1] { \,\textrm d{#1} } % infintesimal
\newcommand \de[2] { \frac{\mathrm d{#1}}{\mathrm d{#2}} } % first order derivative
\newcommand \intl[4]{ \int\limits_{#1}^{#2}{#3}\dd{#4} } % integral with limits
\begin{document}
$$ \dd x=-\dd u $$
$$ y'=\de yx $$
$$ \intl0\infty{f(t)}t $$
\begin{align*}
\left(\intl{-\infty}\infty{e^{-x^2}}x\right)^2
&=\intl{-\infty}\infty{\intl{-\infty}\infty{e^{-(x^2+y^2)}}x}y \\
&=\intl0{2\pi}{\left(\left.-\frac{e^{-r^2}}2\right|_{r=0}^{r=\infty}\right)}\theta \\
&=\pi
\end{align*}
$$ V(x)=-\intl{\mathbb R^3}{}{\frac G{|x-y|}\rho(y)}{^3}y $$
\end{document}
As user69453 already said, I'd recommend you to use the Physics package.
Instead of using macros and dealing with spaces, you can just use \dd
for the non-italic d. But, as barbara beeton stated, it's more important to write consistently than following a standard, which may not be used universally. Most of my college teachers (UPM, Spain) write the italic d for differentials.
Usage
Differential of x will be written as \dd{x}
, while the nth differential of x would be \dd[n]{x}
.
Example
\documentclass{article}
\usepackage{amsmath}
\usepackage{physics}
\begin{document}
\begin{align*}
\biggl(\int_{-\infty}^\infty e^{-x^2}\dd{x}\biggr)^2
&= \int_{-\infty}^\infty\int_{-\infty}^\infty e^{-(x^2+y^2)}\dd{x}\dd{y} \\
&= \int_0^{2\pi}\int_0^\infty e^{-r^2}r\dd{r}\dd{\theta} \\
&= \int_0^{2\pi}\biggl(-{e^{-r^2}\over2}\bigg\vert_{r=0}^{r=\infty}\,\biggr)\dd{\theta}\\
&= \pi \tag*{q.e.d.}\\
\end{align*}
%
\[ V(\mathbf{x}) = -\int_{\mathbf{R}^3}
\frac{G}{|\mathbf{x}-\mathbf{y}|}\,\rho(\mathbf{y})\,\dd[3]{\mathbf{y}} \]
\end{document}
Output
Advantages
The main advantages of using this solution:
- When using brackets, it chooses the ideal separation depending on neighbours. If you write it without brackets, for example
\dd x
, there will be no separation. - By default, it follows the ISO 80000-2:2019 standard. However, you can add a package option to set italic as default style:
\usepackage[italicdiff]{physics}
Further Reading
-
This seems to be covered already in another answer; your additions are probably better-suited as a comment.– Werner ♦Feb 2, 2021 at 20:26
-
Sorry, but I disagree. The definition of
\dd
is uselessly complicated and doesn't work as it should.– egregFeb 2, 2021 at 20:37 -
Thanks both, Werner and egreg. I agree with Werner, this should be a comment. However, I have little reputation for now and decided to make an answer as I can't comment. I thought it would be useful. Anyway, I apologise if it wasn't supposed to be like this. Should I delete the answer? Or maybe fix it? And, well... I didn't know that the definition of
\dd
was so complicated :( I don't want to start a chat here, so is there anyway you could explain me that out of here, egreg? Again, thank you! Feb 2, 2021 at 21:40
\mathrm
or not depends on the traditions in your field. A thin space before the "d" in integrals is certainly required, Herbert's solution shows how to get it automatically (but using a macro for getting the "d").amsmath
manual does not\rm
it's integral d's: mirrors.ctan.org/macros/latex/required/amsmath/amsldoc.pdf