Macros dv and pdv eat the subsequent parenthesis argument












2















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



documentclass{article}
usepackage{physics}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}




I want the output of the equation on the left to be the same as the middle one.










share|improve this question




















  • 1





    I cannot recommend using the physics package. See e.g. this post: tex.stackexchange.com/questions/453274

    – Henri Menke
    2 hours ago













  • @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
    2 hours ago
















2















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



documentclass{article}
usepackage{physics}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}




I want the output of the equation on the left to be the same as the middle one.










share|improve this question




















  • 1





    I cannot recommend using the physics package. See e.g. this post: tex.stackexchange.com/questions/453274

    – Henri Menke
    2 hours ago













  • @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
    2 hours ago














2












2








2








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



documentclass{article}
usepackage{physics}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}




I want the output of the equation on the left to be the same as the middle one.










share|improve this question
















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



documentclass{article}
usepackage{physics}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}




I want the output of the equation on the left to be the same as the middle one.







brackets physics






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 18 mins ago









Bernard

167k770195




167k770195










asked 3 hours ago









Calvin KentCalvin Kent

206




206








  • 1





    I cannot recommend using the physics package. See e.g. this post: tex.stackexchange.com/questions/453274

    – Henri Menke
    2 hours ago













  • @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
    2 hours ago














  • 1





    I cannot recommend using the physics package. See e.g. this post: tex.stackexchange.com/questions/453274

    – Henri Menke
    2 hours ago













  • @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
    2 hours ago








1




1





I cannot recommend using the physics package. See e.g. this post: tex.stackexchange.com/questions/453274

– Henri Menke
2 hours ago







I cannot recommend using the physics package. See e.g. this post: tex.stackexchange.com/questions/453274

– Henri Menke
2 hours ago















@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
2 hours ago





@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
2 hours ago










2 Answers
2






active

oldest

votes


















4














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.



documentclass{article}
usepackage{physics}

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}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}}}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}} argopen(#5argclose)}
}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}} #3}{diffd #4IfNoValueTF{#2}{}{^{#2}}}IfValueT{#5}{(#5)}}
}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}


enter image description here



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.






share|improve this answer



















  • 1





    partialderivative and therefore pdv will probably have the same problem.

    – Henri Menke
    2 hours ago



















1














Renewing the commands in this way probably does it:



documentclass{article}
usepackage{physics}
renewcommanddv[2]{derivative{#1}{#2}{}}
renewcommandpdv[3]{partialderivative{#1}{#2}{#3}{}}
begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

[pdv{x}{t}{z}(y^2-5) qquad pdv{x}{t}{z} (y^2-5) qquad pdv{x}{t}{z} ]

end{document}


like this:



enter image description here






share|improve this answer
























  • This breaks the starred variants.

    – Henri Menke
    2 hours ago











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
});


}
});














draft saved

draft discarded


















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

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









4














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.



documentclass{article}
usepackage{physics}

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}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}}}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}} argopen(#5argclose)}
}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}} #3}{diffd #4IfNoValueTF{#2}{}{^{#2}}}IfValueT{#5}{(#5)}}
}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}


enter image description here



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.






share|improve this answer



















  • 1





    partialderivative and therefore pdv will probably have the same problem.

    – Henri Menke
    2 hours ago
















4














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.



documentclass{article}
usepackage{physics}

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}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}}}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}} argopen(#5argclose)}
}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}} #3}{diffd #4IfNoValueTF{#2}{}{^{#2}}}IfValueT{#5}{(#5)}}
}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}


enter image description here



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.






share|improve this answer



















  • 1





    partialderivative and therefore pdv will probably have the same problem.

    – Henri Menke
    2 hours ago














4












4








4







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.



documentclass{article}
usepackage{physics}

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}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}}}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}} argopen(#5argclose)}
}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}} #3}{diffd #4IfNoValueTF{#2}{}{^{#2}}}IfValueT{#5}{(#5)}}
}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}


enter image description here



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.






share|improve this answer













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.



documentclass{article}
usepackage{physics}

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}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}}}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}}}{diffd #3IfNoValueTF{#2}{}{^{#2}}} argopen(#5argclose)}
}
{fractype{diffd IfNoValueTF{#2}{}{^{#2}} #3}{diffd #4IfNoValueTF{#2}{}{^{#2}}}IfValueT{#5}{(#5)}}
}

begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

end{document}


enter image description here



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.







share|improve this answer












share|improve this answer



share|improve this answer










answered 2 hours ago









Henri MenkeHenri Menke

71.3k8157264




71.3k8157264








  • 1





    partialderivative and therefore pdv will probably have the same problem.

    – Henri Menke
    2 hours ago














  • 1





    partialderivative and therefore pdv will probably have the same problem.

    – Henri Menke
    2 hours ago








1




1





partialderivative and therefore pdv will probably have the same problem.

– Henri Menke
2 hours ago





partialderivative and therefore pdv will probably have the same problem.

– Henri Menke
2 hours ago











1














Renewing the commands in this way probably does it:



documentclass{article}
usepackage{physics}
renewcommanddv[2]{derivative{#1}{#2}{}}
renewcommandpdv[3]{partialderivative{#1}{#2}{#3}{}}
begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

[pdv{x}{t}{z}(y^2-5) qquad pdv{x}{t}{z} (y^2-5) qquad pdv{x}{t}{z} ]

end{document}


like this:



enter image description here






share|improve this answer
























  • This breaks the starred variants.

    – Henri Menke
    2 hours ago
















1














Renewing the commands in this way probably does it:



documentclass{article}
usepackage{physics}
renewcommanddv[2]{derivative{#1}{#2}{}}
renewcommandpdv[3]{partialderivative{#1}{#2}{#3}{}}
begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

[pdv{x}{t}{z}(y^2-5) qquad pdv{x}{t}{z} (y^2-5) qquad pdv{x}{t}{z} ]

end{document}


like this:



enter image description here






share|improve this answer
























  • This breaks the starred variants.

    – Henri Menke
    2 hours ago














1












1








1







Renewing the commands in this way probably does it:



documentclass{article}
usepackage{physics}
renewcommanddv[2]{derivative{#1}{#2}{}}
renewcommandpdv[3]{partialderivative{#1}{#2}{#3}{}}
begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

[pdv{x}{t}{z}(y^2-5) qquad pdv{x}{t}{z} (y^2-5) qquad pdv{x}{t}{z} ]

end{document}


like this:



enter image description here






share|improve this answer













Renewing the commands in this way probably does it:



documentclass{article}
usepackage{physics}
renewcommanddv[2]{derivative{#1}{#2}{}}
renewcommandpdv[3]{partialderivative{#1}{#2}{#3}{}}
begin{document}

[dv{x}{t}(y^2-5) qquad dv{x}{t} (y^2-5) qquad dv{x}{t} ]

[pdv{x}{t}{z}(y^2-5) qquad pdv{x}{t}{z} (y^2-5) qquad pdv{x}{t}{z} ]

end{document}


like this:



enter image description here







share|improve this answer












share|improve this answer



share|improve this answer










answered 2 hours ago









Partha D.Partha D.

47816




47816













  • This breaks the starred variants.

    – Henri Menke
    2 hours ago



















  • This breaks the starred variants.

    – Henri Menke
    2 hours ago

















This breaks the starred variants.

– Henri Menke
2 hours ago





This breaks the starred variants.

– Henri Menke
2 hours ago


















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

Morgemoulin

Scott Moir

Souastre