Set command option with document wide newcommand












3















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.










share|improve this question









New contributor




Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    3















    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.










    share|improve this question









    New contributor




    Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      3












      3








      3


      1






      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.










      share|improve this question









      New contributor




      Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      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






      share|improve this question









      New contributor




      Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 59 mins ago









      Phelype Oleinik

      26.6k54792




      26.6k54792






      New contributor




      Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 1 hour ago









      Scotty1-Scotty1-

      1184




      1184




      New contributor




      Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Scotty1- is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          2 Answers
          2






          active

          oldest

          votes


















          5














          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}





          share|improve this answer


























          • 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



















          1














          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}





          share|improve this answer








          New contributor




          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.





















          • 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












          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.










          draft saved

          draft discarded


















          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









          5














          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}





          share|improve this answer


























          • 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
















          5














          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}





          share|improve this answer


























          • 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














          5












          5








          5







          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}





          share|improve this answer















          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}






          share|improve this answer














          share|improve this answer



          share|improve this answer








          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



















          • 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











          1














          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}





          share|improve this answer








          New contributor




          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.





















          • 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
















          1














          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}





          share|improve this answer








          New contributor




          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.





















          • 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














          1












          1








          1







          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}





          share|improve this answer








          New contributor




          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.










          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}






          share|improve this answer








          New contributor




          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.









          share|improve this answer



          share|improve this answer






          New contributor




          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.









          answered 1 hour ago









          jackfrostjackfrost

          825




          825




          New contributor




          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.





          New contributor





          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.






          jackfrost is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.













          • 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



















          • 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

















          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










          Scotty1- is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          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.




          draft saved


          draft discarded














          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





















































          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

          GameSpot

          日野市

          Tu-95轟炸機