Macros dv and pdv eat the subsequent parenthesis argument
Clash Royale CLAN TAG#URR8PPP
The physics package
has the macros dv
and pdv
which are great but I have a small problem with them.
If an argument with parenthesis included right after them they eat the whole argument. If there is a space in between the argument everything works fine but I want to prevent this happening all together. I checked the documentation but couldn't find a solution. So an example would be
documentclassarticle
usepackagephysics
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
I want the output of the equation on the left to be the same as the middle one.
brackets physics
add a comment |
The physics package
has the macros dv
and pdv
which are great but I have a small problem with them.
If an argument with parenthesis included right after them they eat the whole argument. If there is a space in between the argument everything works fine but I want to prevent this happening all together. I checked the documentation but couldn't find a solution. So an example would be
documentclassarticle
usepackagephysics
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
I want the output of the equation on the left to be the same as the middle one.
brackets physics
1
I cannot recommend using thephysics
package. See e.g. this post: tex.stackexchange.com/questions/453274
– Henri Menke
Jan 19 at 7:23
@HenriMenke Thanks for your answer below and recommendation. I didn't know anything about the poor practices that were done in physics package. I'll try to switch over toamsmath
as you suggested, especially after seeing your remarks about howev
is defined
– Calvin Kent
Jan 19 at 7:38
add a comment |
The physics package
has the macros dv
and pdv
which are great but I have a small problem with them.
If an argument with parenthesis included right after them they eat the whole argument. If there is a space in between the argument everything works fine but I want to prevent this happening all together. I checked the documentation but couldn't find a solution. So an example would be
documentclassarticle
usepackagephysics
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
I want the output of the equation on the left to be the same as the middle one.
brackets physics
The physics package
has the macros dv
and pdv
which are great but I have a small problem with them.
If an argument with parenthesis included right after them they eat the whole argument. If there is a space in between the argument everything works fine but I want to prevent this happening all together. I checked the documentation but couldn't find a solution. So an example would be
documentclassarticle
usepackagephysics
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
I want the output of the equation on the left to be the same as the middle one.
brackets physics
brackets physics
edited Jan 19 at 9:52
Bernard
169k773198
169k773198
asked Jan 19 at 6:44
Calvin KentCalvin Kent
907
907
1
I cannot recommend using thephysics
package. See e.g. this post: tex.stackexchange.com/questions/453274
– Henri Menke
Jan 19 at 7:23
@HenriMenke Thanks for your answer below and recommendation. I didn't know anything about the poor practices that were done in physics package. I'll try to switch over toamsmath
as you suggested, especially after seeing your remarks about howev
is defined
– Calvin Kent
Jan 19 at 7:38
add a comment |
1
I cannot recommend using thephysics
package. See e.g. this post: tex.stackexchange.com/questions/453274
– Henri Menke
Jan 19 at 7:23
@HenriMenke Thanks for your answer below and recommendation. I didn't know anything about the poor practices that were done in physics package. I'll try to switch over toamsmath
as you suggested, especially after seeing your remarks about howev
is defined
– Calvin Kent
Jan 19 at 7:38
1
1
I cannot recommend using the
physics
package. See e.g. this post: tex.stackexchange.com/questions/453274– Henri Menke
Jan 19 at 7:23
I cannot recommend using the
physics
package. See e.g. this post: tex.stackexchange.com/questions/453274– Henri Menke
Jan 19 at 7:23
@HenriMenke Thanks for your answer below and recommendation. I didn't know anything about the poor practices that were done in physics package. I'll try to switch over to
amsmath
as you suggested, especially after seeing your remarks about how ev
is defined– Calvin Kent
Jan 19 at 7:38
@HenriMenke Thanks for your answer below and recommendation. I didn't know anything about the poor practices that were done in physics package. I'll try to switch over to
amsmath
as you suggested, especially after seeing your remarks about how ev
is defined– Calvin Kent
Jan 19 at 7:38
add a comment |
3 Answers
3
active
oldest
votes
That's because dv
(which is a shorthand for derivative
) is defined as
DeclareDocumentCommandderivative s o m g d()
{ % Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
Even if the optional g
-type argument is given (as in your case) the command will scan further for an optional delimited d
-type argument which is delimited by (
and )
(maybe not the best choice in a mathematical context). To circumvent this you have to redefine derivative
to always flush #5
if it is present.
documentclassarticle
usepackagephysics
DeclareDocumentCommandderivative s o m g d()
% Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
IfBooleanTF#1
letfractypeflatfrac
letfractypefrac
IfNoValueTF#4
IfNoValueTF#5
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2 argopen(#5argclose)
fractypediffd IfNoValueTF#2^#2 #3diffd #4IfNoValueTF#2^#2IfValueT#5(#5)
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
At the same time I'd like to note that the physics
package does not really help me writing physics formulae and I'm usually much better off typing the stuff by hand using the amsmath
macros.
1
partialderivative
and thereforepdv
will probably have the same problem.
– Henri Menke
Jan 19 at 7:23
add a comment |
The package physics
abuses the possibilities afforded by xparse
to define commands having very weird syntax.
For instance, if you want to typeset the standard fracdxdt
, you have to type
dvxt
If you want instead fracddt(f(t))
you type
dvt(f(t))
which is where the syntax is weird: the variable you differentiate with respect to is no longer the second mandatory argument, but the first and a mandatory argument is missing altogether.
Of course this is achieved by actually making the second braced argument optional, which breaks all standard LaTeX conventions.
It is very counterintuitive having the independent variable first when the “long form” is desired and second for the “short (Leibniz) form”.
How can you do? My best advice is to keep at arm's length from physics
. It seems to provide many bells and whistles for typesetting math, but this is at the expense of syntax clarity.
If you are tied to the package, simply add a no-op; a simple one in this context is /
:
documentclassarticle
usepackagephysics
begindocument
[
dvxt/(y^2-5) qquad dvxt/ (y^2-5) qquad dvxt
]
enddocument
add a comment |
Renewing the commands in this way probably does it:
documentclassarticle
usepackagephysics
renewcommanddv[2]derivative#1#2
renewcommandpdv[3]partialderivative#1#2#3
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
[pdvxtz(y^2-5) qquad pdvxtz (y^2-5) qquad pdvxtz ]
enddocument
like this:
1
This breaks the starred variants.
– Henri Menke
Jan 19 at 7:20
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "85"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f470819%2fmacros-dv-and-pdv-eat-the-subsequent-parenthesis-argument%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
That's because dv
(which is a shorthand for derivative
) is defined as
DeclareDocumentCommandderivative s o m g d()
{ % Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
Even if the optional g
-type argument is given (as in your case) the command will scan further for an optional delimited d
-type argument which is delimited by (
and )
(maybe not the best choice in a mathematical context). To circumvent this you have to redefine derivative
to always flush #5
if it is present.
documentclassarticle
usepackagephysics
DeclareDocumentCommandderivative s o m g d()
% Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
IfBooleanTF#1
letfractypeflatfrac
letfractypefrac
IfNoValueTF#4
IfNoValueTF#5
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2 argopen(#5argclose)
fractypediffd IfNoValueTF#2^#2 #3diffd #4IfNoValueTF#2^#2IfValueT#5(#5)
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
At the same time I'd like to note that the physics
package does not really help me writing physics formulae and I'm usually much better off typing the stuff by hand using the amsmath
macros.
1
partialderivative
and thereforepdv
will probably have the same problem.
– Henri Menke
Jan 19 at 7:23
add a comment |
That's because dv
(which is a shorthand for derivative
) is defined as
DeclareDocumentCommandderivative s o m g d()
{ % Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
Even if the optional g
-type argument is given (as in your case) the command will scan further for an optional delimited d
-type argument which is delimited by (
and )
(maybe not the best choice in a mathematical context). To circumvent this you have to redefine derivative
to always flush #5
if it is present.
documentclassarticle
usepackagephysics
DeclareDocumentCommandderivative s o m g d()
% Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
IfBooleanTF#1
letfractypeflatfrac
letfractypefrac
IfNoValueTF#4
IfNoValueTF#5
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2 argopen(#5argclose)
fractypediffd IfNoValueTF#2^#2 #3diffd #4IfNoValueTF#2^#2IfValueT#5(#5)
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
At the same time I'd like to note that the physics
package does not really help me writing physics formulae and I'm usually much better off typing the stuff by hand using the amsmath
macros.
1
partialderivative
and thereforepdv
will probably have the same problem.
– Henri Menke
Jan 19 at 7:23
add a comment |
That's because dv
(which is a shorthand for derivative
) is defined as
DeclareDocumentCommandderivative s o m g d()
{ % Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
Even if the optional g
-type argument is given (as in your case) the command will scan further for an optional delimited d
-type argument which is delimited by (
and )
(maybe not the best choice in a mathematical context). To circumvent this you have to redefine derivative
to always flush #5
if it is present.
documentclassarticle
usepackagephysics
DeclareDocumentCommandderivative s o m g d()
% Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
IfBooleanTF#1
letfractypeflatfrac
letfractypefrac
IfNoValueTF#4
IfNoValueTF#5
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2 argopen(#5argclose)
fractypediffd IfNoValueTF#2^#2 #3diffd #4IfNoValueTF#2^#2IfValueT#5(#5)
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
At the same time I'd like to note that the physics
package does not really help me writing physics formulae and I'm usually much better off typing the stuff by hand using the amsmath
macros.
That's because dv
(which is a shorthand for derivative
) is defined as
DeclareDocumentCommandderivative s o m g d()
{ % Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
Even if the optional g
-type argument is given (as in your case) the command will scan further for an optional delimited d
-type argument which is delimited by (
and )
(maybe not the best choice in a mathematical context). To circumvent this you have to redefine derivative
to always flush #5
if it is present.
documentclassarticle
usepackagephysics
DeclareDocumentCommandderivative s o m g d()
% Total derivative
% s: star for flatfrac flat derivative
% o: optional n for nth derivative
% m: mandatory (x in df/dx)
% g: optional (f in df/dx)
% d: long-form d/dx(...)
IfBooleanTF#1
letfractypeflatfrac
letfractypefrac
IfNoValueTF#4
IfNoValueTF#5
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2
fractypediffd IfNoValueTF#2^#2diffd #3IfNoValueTF#2^#2 argopen(#5argclose)
fractypediffd IfNoValueTF#2^#2 #3diffd #4IfNoValueTF#2^#2IfValueT#5(#5)
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
enddocument
At the same time I'd like to note that the physics
package does not really help me writing physics formulae and I'm usually much better off typing the stuff by hand using the amsmath
macros.
answered Jan 19 at 7:15
Henri MenkeHenri Menke
73k8162272
73k8162272
1
partialderivative
and thereforepdv
will probably have the same problem.
– Henri Menke
Jan 19 at 7:23
add a comment |
1
partialderivative
and thereforepdv
will probably have the same problem.
– Henri Menke
Jan 19 at 7:23
1
1
partialderivative
and therefore pdv
will probably have the same problem.– Henri Menke
Jan 19 at 7:23
partialderivative
and therefore pdv
will probably have the same problem.– Henri Menke
Jan 19 at 7:23
add a comment |
The package physics
abuses the possibilities afforded by xparse
to define commands having very weird syntax.
For instance, if you want to typeset the standard fracdxdt
, you have to type
dvxt
If you want instead fracddt(f(t))
you type
dvt(f(t))
which is where the syntax is weird: the variable you differentiate with respect to is no longer the second mandatory argument, but the first and a mandatory argument is missing altogether.
Of course this is achieved by actually making the second braced argument optional, which breaks all standard LaTeX conventions.
It is very counterintuitive having the independent variable first when the “long form” is desired and second for the “short (Leibniz) form”.
How can you do? My best advice is to keep at arm's length from physics
. It seems to provide many bells and whistles for typesetting math, but this is at the expense of syntax clarity.
If you are tied to the package, simply add a no-op; a simple one in this context is /
:
documentclassarticle
usepackagephysics
begindocument
[
dvxt/(y^2-5) qquad dvxt/ (y^2-5) qquad dvxt
]
enddocument
add a comment |
The package physics
abuses the possibilities afforded by xparse
to define commands having very weird syntax.
For instance, if you want to typeset the standard fracdxdt
, you have to type
dvxt
If you want instead fracddt(f(t))
you type
dvt(f(t))
which is where the syntax is weird: the variable you differentiate with respect to is no longer the second mandatory argument, but the first and a mandatory argument is missing altogether.
Of course this is achieved by actually making the second braced argument optional, which breaks all standard LaTeX conventions.
It is very counterintuitive having the independent variable first when the “long form” is desired and second for the “short (Leibniz) form”.
How can you do? My best advice is to keep at arm's length from physics
. It seems to provide many bells and whistles for typesetting math, but this is at the expense of syntax clarity.
If you are tied to the package, simply add a no-op; a simple one in this context is /
:
documentclassarticle
usepackagephysics
begindocument
[
dvxt/(y^2-5) qquad dvxt/ (y^2-5) qquad dvxt
]
enddocument
add a comment |
The package physics
abuses the possibilities afforded by xparse
to define commands having very weird syntax.
For instance, if you want to typeset the standard fracdxdt
, you have to type
dvxt
If you want instead fracddt(f(t))
you type
dvt(f(t))
which is where the syntax is weird: the variable you differentiate with respect to is no longer the second mandatory argument, but the first and a mandatory argument is missing altogether.
Of course this is achieved by actually making the second braced argument optional, which breaks all standard LaTeX conventions.
It is very counterintuitive having the independent variable first when the “long form” is desired and second for the “short (Leibniz) form”.
How can you do? My best advice is to keep at arm's length from physics
. It seems to provide many bells and whistles for typesetting math, but this is at the expense of syntax clarity.
If you are tied to the package, simply add a no-op; a simple one in this context is /
:
documentclassarticle
usepackagephysics
begindocument
[
dvxt/(y^2-5) qquad dvxt/ (y^2-5) qquad dvxt
]
enddocument
The package physics
abuses the possibilities afforded by xparse
to define commands having very weird syntax.
For instance, if you want to typeset the standard fracdxdt
, you have to type
dvxt
If you want instead fracddt(f(t))
you type
dvt(f(t))
which is where the syntax is weird: the variable you differentiate with respect to is no longer the second mandatory argument, but the first and a mandatory argument is missing altogether.
Of course this is achieved by actually making the second braced argument optional, which breaks all standard LaTeX conventions.
It is very counterintuitive having the independent variable first when the “long form” is desired and second for the “short (Leibniz) form”.
How can you do? My best advice is to keep at arm's length from physics
. It seems to provide many bells and whistles for typesetting math, but this is at the expense of syntax clarity.
If you are tied to the package, simply add a no-op; a simple one in this context is /
:
documentclassarticle
usepackagephysics
begindocument
[
dvxt/(y^2-5) qquad dvxt/ (y^2-5) qquad dvxt
]
enddocument
answered Jan 19 at 11:18
egregegreg
717k8719023197
717k8719023197
add a comment |
add a comment |
Renewing the commands in this way probably does it:
documentclassarticle
usepackagephysics
renewcommanddv[2]derivative#1#2
renewcommandpdv[3]partialderivative#1#2#3
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
[pdvxtz(y^2-5) qquad pdvxtz (y^2-5) qquad pdvxtz ]
enddocument
like this:
1
This breaks the starred variants.
– Henri Menke
Jan 19 at 7:20
add a comment |
Renewing the commands in this way probably does it:
documentclassarticle
usepackagephysics
renewcommanddv[2]derivative#1#2
renewcommandpdv[3]partialderivative#1#2#3
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
[pdvxtz(y^2-5) qquad pdvxtz (y^2-5) qquad pdvxtz ]
enddocument
like this:
1
This breaks the starred variants.
– Henri Menke
Jan 19 at 7:20
add a comment |
Renewing the commands in this way probably does it:
documentclassarticle
usepackagephysics
renewcommanddv[2]derivative#1#2
renewcommandpdv[3]partialderivative#1#2#3
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
[pdvxtz(y^2-5) qquad pdvxtz (y^2-5) qquad pdvxtz ]
enddocument
like this:
Renewing the commands in this way probably does it:
documentclassarticle
usepackagephysics
renewcommanddv[2]derivative#1#2
renewcommandpdv[3]partialderivative#1#2#3
begindocument
[dvxt(y^2-5) qquad dvxt (y^2-5) qquad dvxt ]
[pdvxtz(y^2-5) qquad pdvxtz (y^2-5) qquad pdvxtz ]
enddocument
like this:
answered Jan 19 at 7:19
Partha D.Partha D.
76517
76517
1
This breaks the starred variants.
– Henri Menke
Jan 19 at 7:20
add a comment |
1
This breaks the starred variants.
– Henri Menke
Jan 19 at 7:20
1
1
This breaks the starred variants.
– Henri Menke
Jan 19 at 7:20
This breaks the starred variants.
– Henri Menke
Jan 19 at 7:20
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f470819%2fmacros-dv-and-pdv-eat-the-subsequent-parenthesis-argument%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
I cannot recommend using the
physics
package. See e.g. this post: tex.stackexchange.com/questions/453274– Henri Menke
Jan 19 at 7:23
@HenriMenke Thanks for your answer below and recommendation. I didn't know anything about the poor practices that were done in physics package. I'll try to switch over to
amsmath
as you suggested, especially after seeing your remarks about howev
is defined– Calvin Kent
Jan 19 at 7:38