What do these commands specifically do?What do @firstoftwo and @secondoftwo do?Advantages and disadvantages of fully expandable macrosRemove macro from list like LOFProblem with csname macro expansionReport all duplicate macro names defined by newcommandDefining a command that starts with “@”Can I inject xspace in all commands from the complexity package?Combine `map` and `use` expl3 macrosAre there guidelines for finding good names for LaTeX 2e packages and control sequences defined in these packages?

Does Yeshayahu 43:10b / 43:13a imply HaShem was created?

Changing JPEG to RAW to use on Lightroom?

How much does Commander Data weigh?

How can I download a file through 2 SSH connections?

Macro inserted via everypar in obeylines context doesn't see some commands

Should I stick with American terminology in my English set young adult book?

Anyone else seeing white rings in the Undead parish?

How do proponents of Sola Scriptura address the ministry of those Apostles who authored no parts of Scripture?

The Wires Underground

What names do Cormyr's people use?

How to obtain a polynomial with these conditions?

Why did Khan ask Admiral James T. Kirk about Project Genesis?

How long do you think advanced cybernetic implants would plausibly last?

Why do banks “park” their money at the European Central Bank?

When one problem is added to the previous one

Can $! cause race conditions when used in scripts running in parallel?

What are the occurences of total war in the Native Americans?

Breaker Mapping Questions

What is the loud noise of a helicopter when the rotors are not yet moving?

Where does learning new skills fit into Agile?

Immediate Smaller Element Time Limit Exceeded

Ordering a list of integers

Why are non-collision-resistant hash functions considered insecure for signing self-generated information

Higman's lemma and a manuscript of Erdős and Rado



What do these commands specifically do?


What do @firstoftwo and @secondoftwo do?Advantages and disadvantages of fully expandable macrosRemove macro from list like LOFProblem with csname macro expansionReport all duplicate macro names defined by newcommandDefining a command that starts with “@”Can I inject xspace in all commands from the complexity package?Combine `map` and `use` expl3 macrosAre there guidelines for finding good names for LaTeX 2e packages and control sequences defined in these packages?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








4















makeatletter
providecommand*input@path
g@addto@macroinput@path./level1//./level1/level2//./level2//
makeatother


I understand:



makeatletter
makeatother


are just necessary for redefining macros or something.



providecommand


just takes the current macro input@path and clears it.



g@addto@macro


I do not fully understand what this does.



./level1//./level1/level2//./level2//}


Nor this. Does it tell the input path that these are all directories which may be invoked directly?










share|improve this question









New contributor



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



























    4















    makeatletter
    providecommand*input@path
    g@addto@macroinput@path./level1//./level1/level2//./level2//
    makeatother


    I understand:



    makeatletter
    makeatother


    are just necessary for redefining macros or something.



    providecommand


    just takes the current macro input@path and clears it.



    g@addto@macro


    I do not fully understand what this does.



    ./level1//./level1/level2//./level2//}


    Nor this. Does it tell the input path that these are all directories which may be invoked directly?










    share|improve this question









    New contributor



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























      4












      4








      4








      makeatletter
      providecommand*input@path
      g@addto@macroinput@path./level1//./level1/level2//./level2//
      makeatother


      I understand:



      makeatletter
      makeatother


      are just necessary for redefining macros or something.



      providecommand


      just takes the current macro input@path and clears it.



      g@addto@macro


      I do not fully understand what this does.



      ./level1//./level1/level2//./level2//}


      Nor this. Does it tell the input path that these are all directories which may be invoked directly?










      share|improve this question









      New contributor



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











      makeatletter
      providecommand*input@path
      g@addto@macroinput@path./level1//./level1/level2//./level2//
      makeatother


      I understand:



      makeatletter
      makeatother


      are just necessary for redefining macros or something.



      providecommand


      just takes the current macro input@path and clears it.



      g@addto@macro


      I do not fully understand what this does.



      ./level1//./level1/level2//./level2//}


      Nor this. Does it tell the input path that these are all directories which may be invoked directly?







      macros input paths






      share|improve this question









      New contributor



      julkarham 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



      julkarham 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 7 hours ago









      Sveinung

      13.8k2 gold badges36 silver badges63 bronze badges




      13.8k2 gold badges36 silver badges63 bronze badges






      New contributor



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








      asked 10 hours ago









      julkarhamjulkarham

      232 bronze badges




      232 bronze badges




      New contributor



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




      New contributor




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

























          1 Answer
          1






          active

          oldest

          votes


















          9















          You provide several interpretations of what various commands do.




          makeatletter and makeatother are just necessary for redefining macros or something.




          Not quite. By default, the character @ is not allowed to occur in the name of a TeX or LaTeX macro; instead, valid multi-character macro names must consist of uppercase and lowercase letters exclusively or, more precisely, of characters with category code "letter". (By default, the only characters with catcode "letter" are, you guessed, uppercase and lowercase letters.) The instruction makeatletter changes the catcode of @ from "other" to "letter", making it syntactically legal to use the @ character in multi-character macro names.



          Why go through these steps? For by-now mostly historic reasons, LaTeX-internal commands often (but not exclusively) use one or more @ characters; this presumably makes it much less likely that "ordinary" users execute them by accident. makeatletter lets you get over this (admittedly not very high) hurdle, and makeatother restores the default catcode of @.




          providecommand just takes the current macro input@path and clears it.




          No! (You may be thinking of renewcommand<some existing command>.) providecommand acts like newcommand if the first argument isn't already a valid macro name, and it does nothing if a macro by that name already exists. The purpose of



          providecommand*input@path


          is to make sure that the next instruction, viz., g@addto@macroinput@path./level1//./level1/level2//./level2//, doesn't crash and burn in case a macro by the name input@path hasn't been defined.



          Let's now turn to




          g@addto@macroinput@path./level1//./level1/level2//./level2//




          The macro g@addto@macro -- note the presence of two [2!] @ characters -- is a low-level LaTeX kernel command that takes two arguments: The first is the name of an existing macro (here: input@path); the second is some additional material to be appended to the macro named in the first argument.



          Assuming that the macro input@path is either blank (because it was created by the preceding providecommand instruction) or contains a syntactically valid path. The g@addto@macro instruction appends



          ./level1//./level1/level2//./level2//


          to that macro.



          Not knowing where you obtained this code snippet from, or what it is supposed to do, I'm afraid I can't add anything more in terms of explanation or interpretation.






          share|improve this answer






















          • 2





            Very good explanation.

            – Sveinung
            7 hours ago











          • @Sveinung - Many thanks for the compliment -- and for the typo fixes!

            – Mico
            6 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
          );



          );






          julkarham 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%2f505686%2fwhat-do-these-commands-specifically-do%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          9















          You provide several interpretations of what various commands do.




          makeatletter and makeatother are just necessary for redefining macros or something.




          Not quite. By default, the character @ is not allowed to occur in the name of a TeX or LaTeX macro; instead, valid multi-character macro names must consist of uppercase and lowercase letters exclusively or, more precisely, of characters with category code "letter". (By default, the only characters with catcode "letter" are, you guessed, uppercase and lowercase letters.) The instruction makeatletter changes the catcode of @ from "other" to "letter", making it syntactically legal to use the @ character in multi-character macro names.



          Why go through these steps? For by-now mostly historic reasons, LaTeX-internal commands often (but not exclusively) use one or more @ characters; this presumably makes it much less likely that "ordinary" users execute them by accident. makeatletter lets you get over this (admittedly not very high) hurdle, and makeatother restores the default catcode of @.




          providecommand just takes the current macro input@path and clears it.




          No! (You may be thinking of renewcommand<some existing command>.) providecommand acts like newcommand if the first argument isn't already a valid macro name, and it does nothing if a macro by that name already exists. The purpose of



          providecommand*input@path


          is to make sure that the next instruction, viz., g@addto@macroinput@path./level1//./level1/level2//./level2//, doesn't crash and burn in case a macro by the name input@path hasn't been defined.



          Let's now turn to




          g@addto@macroinput@path./level1//./level1/level2//./level2//




          The macro g@addto@macro -- note the presence of two [2!] @ characters -- is a low-level LaTeX kernel command that takes two arguments: The first is the name of an existing macro (here: input@path); the second is some additional material to be appended to the macro named in the first argument.



          Assuming that the macro input@path is either blank (because it was created by the preceding providecommand instruction) or contains a syntactically valid path. The g@addto@macro instruction appends



          ./level1//./level1/level2//./level2//


          to that macro.



          Not knowing where you obtained this code snippet from, or what it is supposed to do, I'm afraid I can't add anything more in terms of explanation or interpretation.






          share|improve this answer






















          • 2





            Very good explanation.

            – Sveinung
            7 hours ago











          • @Sveinung - Many thanks for the compliment -- and for the typo fixes!

            – Mico
            6 hours ago















          9















          You provide several interpretations of what various commands do.




          makeatletter and makeatother are just necessary for redefining macros or something.




          Not quite. By default, the character @ is not allowed to occur in the name of a TeX or LaTeX macro; instead, valid multi-character macro names must consist of uppercase and lowercase letters exclusively or, more precisely, of characters with category code "letter". (By default, the only characters with catcode "letter" are, you guessed, uppercase and lowercase letters.) The instruction makeatletter changes the catcode of @ from "other" to "letter", making it syntactically legal to use the @ character in multi-character macro names.



          Why go through these steps? For by-now mostly historic reasons, LaTeX-internal commands often (but not exclusively) use one or more @ characters; this presumably makes it much less likely that "ordinary" users execute them by accident. makeatletter lets you get over this (admittedly not very high) hurdle, and makeatother restores the default catcode of @.




          providecommand just takes the current macro input@path and clears it.




          No! (You may be thinking of renewcommand<some existing command>.) providecommand acts like newcommand if the first argument isn't already a valid macro name, and it does nothing if a macro by that name already exists. The purpose of



          providecommand*input@path


          is to make sure that the next instruction, viz., g@addto@macroinput@path./level1//./level1/level2//./level2//, doesn't crash and burn in case a macro by the name input@path hasn't been defined.



          Let's now turn to




          g@addto@macroinput@path./level1//./level1/level2//./level2//




          The macro g@addto@macro -- note the presence of two [2!] @ characters -- is a low-level LaTeX kernel command that takes two arguments: The first is the name of an existing macro (here: input@path); the second is some additional material to be appended to the macro named in the first argument.



          Assuming that the macro input@path is either blank (because it was created by the preceding providecommand instruction) or contains a syntactically valid path. The g@addto@macro instruction appends



          ./level1//./level1/level2//./level2//


          to that macro.



          Not knowing where you obtained this code snippet from, or what it is supposed to do, I'm afraid I can't add anything more in terms of explanation or interpretation.






          share|improve this answer






















          • 2





            Very good explanation.

            – Sveinung
            7 hours ago











          • @Sveinung - Many thanks for the compliment -- and for the typo fixes!

            – Mico
            6 hours ago













          9














          9










          9









          You provide several interpretations of what various commands do.




          makeatletter and makeatother are just necessary for redefining macros or something.




          Not quite. By default, the character @ is not allowed to occur in the name of a TeX or LaTeX macro; instead, valid multi-character macro names must consist of uppercase and lowercase letters exclusively or, more precisely, of characters with category code "letter". (By default, the only characters with catcode "letter" are, you guessed, uppercase and lowercase letters.) The instruction makeatletter changes the catcode of @ from "other" to "letter", making it syntactically legal to use the @ character in multi-character macro names.



          Why go through these steps? For by-now mostly historic reasons, LaTeX-internal commands often (but not exclusively) use one or more @ characters; this presumably makes it much less likely that "ordinary" users execute them by accident. makeatletter lets you get over this (admittedly not very high) hurdle, and makeatother restores the default catcode of @.




          providecommand just takes the current macro input@path and clears it.




          No! (You may be thinking of renewcommand<some existing command>.) providecommand acts like newcommand if the first argument isn't already a valid macro name, and it does nothing if a macro by that name already exists. The purpose of



          providecommand*input@path


          is to make sure that the next instruction, viz., g@addto@macroinput@path./level1//./level1/level2//./level2//, doesn't crash and burn in case a macro by the name input@path hasn't been defined.



          Let's now turn to




          g@addto@macroinput@path./level1//./level1/level2//./level2//




          The macro g@addto@macro -- note the presence of two [2!] @ characters -- is a low-level LaTeX kernel command that takes two arguments: The first is the name of an existing macro (here: input@path); the second is some additional material to be appended to the macro named in the first argument.



          Assuming that the macro input@path is either blank (because it was created by the preceding providecommand instruction) or contains a syntactically valid path. The g@addto@macro instruction appends



          ./level1//./level1/level2//./level2//


          to that macro.



          Not knowing where you obtained this code snippet from, or what it is supposed to do, I'm afraid I can't add anything more in terms of explanation or interpretation.






          share|improve this answer















          You provide several interpretations of what various commands do.




          makeatletter and makeatother are just necessary for redefining macros or something.




          Not quite. By default, the character @ is not allowed to occur in the name of a TeX or LaTeX macro; instead, valid multi-character macro names must consist of uppercase and lowercase letters exclusively or, more precisely, of characters with category code "letter". (By default, the only characters with catcode "letter" are, you guessed, uppercase and lowercase letters.) The instruction makeatletter changes the catcode of @ from "other" to "letter", making it syntactically legal to use the @ character in multi-character macro names.



          Why go through these steps? For by-now mostly historic reasons, LaTeX-internal commands often (but not exclusively) use one or more @ characters; this presumably makes it much less likely that "ordinary" users execute them by accident. makeatletter lets you get over this (admittedly not very high) hurdle, and makeatother restores the default catcode of @.




          providecommand just takes the current macro input@path and clears it.




          No! (You may be thinking of renewcommand<some existing command>.) providecommand acts like newcommand if the first argument isn't already a valid macro name, and it does nothing if a macro by that name already exists. The purpose of



          providecommand*input@path


          is to make sure that the next instruction, viz., g@addto@macroinput@path./level1//./level1/level2//./level2//, doesn't crash and burn in case a macro by the name input@path hasn't been defined.



          Let's now turn to




          g@addto@macroinput@path./level1//./level1/level2//./level2//




          The macro g@addto@macro -- note the presence of two [2!] @ characters -- is a low-level LaTeX kernel command that takes two arguments: The first is the name of an existing macro (here: input@path); the second is some additional material to be appended to the macro named in the first argument.



          Assuming that the macro input@path is either blank (because it was created by the preceding providecommand instruction) or contains a syntactically valid path. The g@addto@macro instruction appends



          ./level1//./level1/level2//./level2//


          to that macro.



          Not knowing where you obtained this code snippet from, or what it is supposed to do, I'm afraid I can't add anything more in terms of explanation or interpretation.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 7 hours ago









          Sveinung

          13.8k2 gold badges36 silver badges63 bronze badges




          13.8k2 gold badges36 silver badges63 bronze badges










          answered 9 hours ago









          MicoMico

          303k33 gold badges414 silver badges825 bronze badges




          303k33 gold badges414 silver badges825 bronze badges










          • 2





            Very good explanation.

            – Sveinung
            7 hours ago











          • @Sveinung - Many thanks for the compliment -- and for the typo fixes!

            – Mico
            6 hours ago












          • 2





            Very good explanation.

            – Sveinung
            7 hours ago











          • @Sveinung - Many thanks for the compliment -- and for the typo fixes!

            – Mico
            6 hours ago







          2




          2





          Very good explanation.

          – Sveinung
          7 hours ago





          Very good explanation.

          – Sveinung
          7 hours ago













          @Sveinung - Many thanks for the compliment -- and for the typo fixes!

          – Mico
          6 hours ago





          @Sveinung - Many thanks for the compliment -- and for the typo fixes!

          – Mico
          6 hours ago










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









          draft saved

          draft discarded


















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












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











          julkarham 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%2f505686%2fwhat-do-these-commands-specifically-do%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

          Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

          Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

          Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її