Set command option with document wide newcommand
I work a lot with the siunitx
package and I've got many numbers with a high decimal precision. Now I'd like to be able to just copy these numbers in full precision in the relevant positions in text, equations and tables and adjust the precision in the preamble of the document.
Is there any way to pass options to commands by predefining the option string? I can easily make it work when the string it is not used as a command option, but for command options it is not working...
My minimal example:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}{round-mode=places,round-precision=4}% command option string
newcommand{Tk}{Theta}% this works...
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
This is working: $Tk$
end{document}
Any idea how I can make this work? Best case would be to have something like newcommand{rndprc}[1]{round-mode=places,round-precision={#1}}
, so I can enter the precision in place.
macros siunitx key-value
New contributor
add a comment |
I work a lot with the siunitx
package and I've got many numbers with a high decimal precision. Now I'd like to be able to just copy these numbers in full precision in the relevant positions in text, equations and tables and adjust the precision in the preamble of the document.
Is there any way to pass options to commands by predefining the option string? I can easily make it work when the string it is not used as a command option, but for command options it is not working...
My minimal example:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}{round-mode=places,round-precision=4}% command option string
newcommand{Tk}{Theta}% this works...
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
This is working: $Tk$
end{document}
Any idea how I can make this work? Best case would be to have something like newcommand{rndprc}[1]{round-mode=places,round-precision={#1}}
, so I can enter the precision in place.
macros siunitx key-value
New contributor
add a comment |
I work a lot with the siunitx
package and I've got many numbers with a high decimal precision. Now I'd like to be able to just copy these numbers in full precision in the relevant positions in text, equations and tables and adjust the precision in the preamble of the document.
Is there any way to pass options to commands by predefining the option string? I can easily make it work when the string it is not used as a command option, but for command options it is not working...
My minimal example:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}{round-mode=places,round-precision=4}% command option string
newcommand{Tk}{Theta}% this works...
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
This is working: $Tk$
end{document}
Any idea how I can make this work? Best case would be to have something like newcommand{rndprc}[1]{round-mode=places,round-precision={#1}}
, so I can enter the precision in place.
macros siunitx key-value
New contributor
I work a lot with the siunitx
package and I've got many numbers with a high decimal precision. Now I'd like to be able to just copy these numbers in full precision in the relevant positions in text, equations and tables and adjust the precision in the preamble of the document.
Is there any way to pass options to commands by predefining the option string? I can easily make it work when the string it is not used as a command option, but for command options it is not working...
My minimal example:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}{round-mode=places,round-precision=4}% command option string
newcommand{Tk}{Theta}% this works...
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
This is working: $Tk$
end{document}
Any idea how I can make this work? Best case would be to have something like newcommand{rndprc}[1]{round-mode=places,round-precision={#1}}
, so I can enter the precision in place.
macros siunitx key-value
macros siunitx key-value
New contributor
New contributor
edited 59 mins ago
Phelype Oleinik
26.6k54792
26.6k54792
New contributor
asked 1 hour ago
Scotty1-Scotty1-
1184
1184
New contributor
New contributor
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Macros aren't expanded by the key-val parser. You can, instead of a macro, define a .meta
key which sets the options you want in one go. You can also give an argument and a default value to the key:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
ExplSyntaxOn
keys_define:nn { siunitx }
{
rndprc .meta:n =
{
round-mode = places,
round-precision = #1,
},
rndprc .default:n = 4,
}
ExplSyntaxOff
newcommand{Tk}{Theta}
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
num[rndprc=3]{12.34567890123}
This is working: $Tk$
end{document}
Thanks for your answer. Is this also working with an additional argument to locally set the precision?
– Scotty1-
1 hour ago
@Scotty1- Yes, it is :) I expanded the answer.
– Phelype Oleinik
1 hour ago
Awesome and thanks alot!
– Scotty1-
1 hour ago
add a comment |
Locally change the sisetup
:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}[1][4]{%
sisetup{round-mode=places,round-precision=#1}% # command option string
}
newcommand{Tk}{Theta}% # this works...
begin{document}
paragraph{testing commands...}
{rndprcnum{12.34567890123}}
{rndprc[3]num{12.34567890123}}
This is working: $Tk$
end{document}
New contributor
Thanks. Is there also any possibility to pass the command to the options ofnum
, as innum[rndprc[3]]{12.34567890123}
? Prepending the sisetup each time within brackets seems like a workaround.
– Scotty1-
1 hour ago
@Scotty1- No, this has to be done outside.
– jackfrost
1 hour ago
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
});
}
});
Scotty1- is a new contributor. Be nice, and check out our Code of Conduct.
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%2f488421%2fset-command-option-with-document-wide-newcommand%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
Macros aren't expanded by the key-val parser. You can, instead of a macro, define a .meta
key which sets the options you want in one go. You can also give an argument and a default value to the key:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
ExplSyntaxOn
keys_define:nn { siunitx }
{
rndprc .meta:n =
{
round-mode = places,
round-precision = #1,
},
rndprc .default:n = 4,
}
ExplSyntaxOff
newcommand{Tk}{Theta}
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
num[rndprc=3]{12.34567890123}
This is working: $Tk$
end{document}
Thanks for your answer. Is this also working with an additional argument to locally set the precision?
– Scotty1-
1 hour ago
@Scotty1- Yes, it is :) I expanded the answer.
– Phelype Oleinik
1 hour ago
Awesome and thanks alot!
– Scotty1-
1 hour ago
add a comment |
Macros aren't expanded by the key-val parser. You can, instead of a macro, define a .meta
key which sets the options you want in one go. You can also give an argument and a default value to the key:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
ExplSyntaxOn
keys_define:nn { siunitx }
{
rndprc .meta:n =
{
round-mode = places,
round-precision = #1,
},
rndprc .default:n = 4,
}
ExplSyntaxOff
newcommand{Tk}{Theta}
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
num[rndprc=3]{12.34567890123}
This is working: $Tk$
end{document}
Thanks for your answer. Is this also working with an additional argument to locally set the precision?
– Scotty1-
1 hour ago
@Scotty1- Yes, it is :) I expanded the answer.
– Phelype Oleinik
1 hour ago
Awesome and thanks alot!
– Scotty1-
1 hour ago
add a comment |
Macros aren't expanded by the key-val parser. You can, instead of a macro, define a .meta
key which sets the options you want in one go. You can also give an argument and a default value to the key:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
ExplSyntaxOn
keys_define:nn { siunitx }
{
rndprc .meta:n =
{
round-mode = places,
round-precision = #1,
},
rndprc .default:n = 4,
}
ExplSyntaxOff
newcommand{Tk}{Theta}
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
num[rndprc=3]{12.34567890123}
This is working: $Tk$
end{document}
Macros aren't expanded by the key-val parser. You can, instead of a macro, define a .meta
key which sets the options you want in one go. You can also give an argument and a default value to the key:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
ExplSyntaxOn
keys_define:nn { siunitx }
{
rndprc .meta:n =
{
round-mode = places,
round-precision = #1,
},
rndprc .default:n = 4,
}
ExplSyntaxOff
newcommand{Tk}{Theta}
begin{document}
paragraph{testing commands...}
num[rndprc]{12.34567890123}
num[rndprc=3]{12.34567890123}
This is working: $Tk$
end{document}
edited 1 hour ago
answered 1 hour ago
Phelype OleinikPhelype Oleinik
26.6k54792
26.6k54792
Thanks for your answer. Is this also working with an additional argument to locally set the precision?
– Scotty1-
1 hour ago
@Scotty1- Yes, it is :) I expanded the answer.
– Phelype Oleinik
1 hour ago
Awesome and thanks alot!
– Scotty1-
1 hour ago
add a comment |
Thanks for your answer. Is this also working with an additional argument to locally set the precision?
– Scotty1-
1 hour ago
@Scotty1- Yes, it is :) I expanded the answer.
– Phelype Oleinik
1 hour ago
Awesome and thanks alot!
– Scotty1-
1 hour ago
Thanks for your answer. Is this also working with an additional argument to locally set the precision?
– Scotty1-
1 hour ago
Thanks for your answer. Is this also working with an additional argument to locally set the precision?
– Scotty1-
1 hour ago
@Scotty1- Yes, it is :) I expanded the answer.
– Phelype Oleinik
1 hour ago
@Scotty1- Yes, it is :) I expanded the answer.
– Phelype Oleinik
1 hour ago
Awesome and thanks alot!
– Scotty1-
1 hour ago
Awesome and thanks alot!
– Scotty1-
1 hour ago
add a comment |
Locally change the sisetup
:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}[1][4]{%
sisetup{round-mode=places,round-precision=#1}% # command option string
}
newcommand{Tk}{Theta}% # this works...
begin{document}
paragraph{testing commands...}
{rndprcnum{12.34567890123}}
{rndprc[3]num{12.34567890123}}
This is working: $Tk$
end{document}
New contributor
Thanks. Is there also any possibility to pass the command to the options ofnum
, as innum[rndprc[3]]{12.34567890123}
? Prepending the sisetup each time within brackets seems like a workaround.
– Scotty1-
1 hour ago
@Scotty1- No, this has to be done outside.
– jackfrost
1 hour ago
add a comment |
Locally change the sisetup
:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}[1][4]{%
sisetup{round-mode=places,round-precision=#1}% # command option string
}
newcommand{Tk}{Theta}% # this works...
begin{document}
paragraph{testing commands...}
{rndprcnum{12.34567890123}}
{rndprc[3]num{12.34567890123}}
This is working: $Tk$
end{document}
New contributor
Thanks. Is there also any possibility to pass the command to the options ofnum
, as innum[rndprc[3]]{12.34567890123}
? Prepending the sisetup each time within brackets seems like a workaround.
– Scotty1-
1 hour ago
@Scotty1- No, this has to be done outside.
– jackfrost
1 hour ago
add a comment |
Locally change the sisetup
:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}[1][4]{%
sisetup{round-mode=places,round-precision=#1}% # command option string
}
newcommand{Tk}{Theta}% # this works...
begin{document}
paragraph{testing commands...}
{rndprcnum{12.34567890123}}
{rndprc[3]num{12.34567890123}}
This is working: $Tk$
end{document}
New contributor
Locally change the sisetup
:
documentclass[10pt,a4paper,twosided]{article}
usepackage{siunitx}
newcommand{rndprc}[1][4]{%
sisetup{round-mode=places,round-precision=#1}% # command option string
}
newcommand{Tk}{Theta}% # this works...
begin{document}
paragraph{testing commands...}
{rndprcnum{12.34567890123}}
{rndprc[3]num{12.34567890123}}
This is working: $Tk$
end{document}
New contributor
New contributor
answered 1 hour ago
jackfrostjackfrost
825
825
New contributor
New contributor
Thanks. Is there also any possibility to pass the command to the options ofnum
, as innum[rndprc[3]]{12.34567890123}
? Prepending the sisetup each time within brackets seems like a workaround.
– Scotty1-
1 hour ago
@Scotty1- No, this has to be done outside.
– jackfrost
1 hour ago
add a comment |
Thanks. Is there also any possibility to pass the command to the options ofnum
, as innum[rndprc[3]]{12.34567890123}
? Prepending the sisetup each time within brackets seems like a workaround.
– Scotty1-
1 hour ago
@Scotty1- No, this has to be done outside.
– jackfrost
1 hour ago
Thanks. Is there also any possibility to pass the command to the options of
num
, as in num[rndprc[3]]{12.34567890123}
? Prepending the sisetup each time within brackets seems like a workaround.– Scotty1-
1 hour ago
Thanks. Is there also any possibility to pass the command to the options of
num
, as in num[rndprc[3]]{12.34567890123}
? Prepending the sisetup each time within brackets seems like a workaround.– Scotty1-
1 hour ago
@Scotty1- No, this has to be done outside.
– jackfrost
1 hour ago
@Scotty1- No, this has to be done outside.
– jackfrost
1 hour ago
add a comment |
Scotty1- is a new contributor. Be nice, and check out our Code of Conduct.
Scotty1- is a new contributor. Be nice, and check out our Code of Conduct.
Scotty1- is a new contributor. Be nice, and check out our Code of Conduct.
Scotty1- is a new contributor. Be nice, and check out our Code of Conduct.
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%2f488421%2fset-command-option-with-document-wide-newcommand%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