Conditionally execute a command if a specific package is loadedHow to conditionally load a package only if shell-escape (write18) is passedLoading a package conditionallyHow do I conditionally execute something based on a documentclass option?How do I execute some commands conditionally?How to implement a command that checks for loaded packages?How to warn if a package hasn't been loadedConditionally use package and define commandMaking a beamer section appear conditionally in TOC (on specific slide)?

Can Northern Ireland's border issue be solved by repartition?

How use custom order in folder on Windows 7 and 10

Will Proving or Disproving of any of the following have effects on Chemistry in general?

What is the meaning of word 'crack' in chapter 33 of A Game of Thrones?

Where Does VDD+0.3V Input Limit Come From on IC chips?

Way of the bicycle

Going to France with limited French for a day

Is it really necessary to have a four hour meeting in Sprint planning?

Is it true that, "just ten trading days represent 63 per cent of the returns of the past 50 years"?

Norwegian refuses EU delay (4.7 hours) compensation because it turned out there was nothing wrong with the aircraft

Is there any actual security benefit to restricting foreign IP addresses?

What is the lowest voltage that a microcontroller can successfully read on the analog pin?

Is it impolite to ask for halal food when traveling to and in Thailand?

Can the U.S. president make military decisions without consulting anyone?

Examples of "unsuccessful" theories with afterlives

Should I complain to HR about being mocked for request I made

How can I repair this gas leak on my new range? Teflon tape isn't working

Safely hang a mirror that does not have hooks

Guitar tuning (EADGBE), "perfect" fourths?

Is it right to extend flaps only in the white arc?

Is the mass of paint relevant in rocket design?

What are the benefits and disadvantages if a creature has multiple tails, e.g., Kyuubi or Nekomata?

Do we know the situation in Britain before Sealion (summer 1940)?

Allocating credit card points



Conditionally execute a command if a specific package is loaded


How to conditionally load a package only if shell-escape (write18) is passedLoading a package conditionallyHow do I conditionally execute something based on a documentclass option?How do I execute some commands conditionally?How to implement a command that checks for loaded packages?How to warn if a package hasn't been loadedConditionally use package and define commandMaking a beamer section appear conditionally in TOC (on specific slide)?






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








2















I am loading the gitver package based on the expl3 solution accepted for my question here.



However, I need to use some commands depending on whether the package has actually been loaded. For instance, using a combination of hyperxmp, hyperref and gitver, one can provide an option pdfversionid = gitVer to the hypersetup command (see code below).



The question is, how do I conditionally detect the presence of a package loaded (gitver in my example) and set up this conditional compilation?



Minimal conceptual example:



documentclassarticle
usepackageexpl3
csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
usepackagehyperxmp
usepackagehyperref


% this commented paragraph is conceptual & needs fixing through a solution from this forum
% hypersetup%
% pdfversionid = detect if gitver has been loaded & set to gitVer if so; otherwise set to empty
% %

begindocument
Hello world!

% The following again describes my intended requirements in words
% detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"

enddocument









share|improve this question
























  • @UlrikeFischer. Breaks and complains loudly with error messages

    – Krishna
    8 hours ago











  • did you use makeatletter?

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer yes. works inside the preamble, but breaks within the document

    – Krishna
    8 hours ago











  • the ltxcmds package has ltx@ifpackageloaded, that works in the document too.

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer cool. the ltxcmds package worked great for me. Thank you!

    – Krishna
    7 hours ago

















2















I am loading the gitver package based on the expl3 solution accepted for my question here.



However, I need to use some commands depending on whether the package has actually been loaded. For instance, using a combination of hyperxmp, hyperref and gitver, one can provide an option pdfversionid = gitVer to the hypersetup command (see code below).



The question is, how do I conditionally detect the presence of a package loaded (gitver in my example) and set up this conditional compilation?



Minimal conceptual example:



documentclassarticle
usepackageexpl3
csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
usepackagehyperxmp
usepackagehyperref


% this commented paragraph is conceptual & needs fixing through a solution from this forum
% hypersetup%
% pdfversionid = detect if gitver has been loaded & set to gitVer if so; otherwise set to empty
% %

begindocument
Hello world!

% The following again describes my intended requirements in words
% detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"

enddocument









share|improve this question
























  • @UlrikeFischer. Breaks and complains loudly with error messages

    – Krishna
    8 hours ago











  • did you use makeatletter?

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer yes. works inside the preamble, but breaks within the document

    – Krishna
    8 hours ago











  • the ltxcmds package has ltx@ifpackageloaded, that works in the document too.

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer cool. the ltxcmds package worked great for me. Thank you!

    – Krishna
    7 hours ago













2












2








2








I am loading the gitver package based on the expl3 solution accepted for my question here.



However, I need to use some commands depending on whether the package has actually been loaded. For instance, using a combination of hyperxmp, hyperref and gitver, one can provide an option pdfversionid = gitVer to the hypersetup command (see code below).



The question is, how do I conditionally detect the presence of a package loaded (gitver in my example) and set up this conditional compilation?



Minimal conceptual example:



documentclassarticle
usepackageexpl3
csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
usepackagehyperxmp
usepackagehyperref


% this commented paragraph is conceptual & needs fixing through a solution from this forum
% hypersetup%
% pdfversionid = detect if gitver has been loaded & set to gitVer if so; otherwise set to empty
% %

begindocument
Hello world!

% The following again describes my intended requirements in words
% detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"

enddocument









share|improve this question














I am loading the gitver package based on the expl3 solution accepted for my question here.



However, I need to use some commands depending on whether the package has actually been loaded. For instance, using a combination of hyperxmp, hyperref and gitver, one can provide an option pdfversionid = gitVer to the hypersetup command (see code below).



The question is, how do I conditionally detect the presence of a package loaded (gitver in my example) and set up this conditional compilation?



Minimal conceptual example:



documentclassarticle
usepackageexpl3
csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
usepackagehyperxmp
usepackagehyperref


% this commented paragraph is conceptual & needs fixing through a solution from this forum
% hypersetup%
% pdfversionid = detect if gitver has been loaded & set to gitVer if so; otherwise set to empty
% %

begindocument
Hello world!

% The following again describes my intended requirements in words
% detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"

enddocument






packages conditionals condition






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 8 hours ago









KrishnaKrishna

1,2666 silver badges20 bronze badges




1,2666 silver badges20 bronze badges















  • @UlrikeFischer. Breaks and complains loudly with error messages

    – Krishna
    8 hours ago











  • did you use makeatletter?

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer yes. works inside the preamble, but breaks within the document

    – Krishna
    8 hours ago











  • the ltxcmds package has ltx@ifpackageloaded, that works in the document too.

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer cool. the ltxcmds package worked great for me. Thank you!

    – Krishna
    7 hours ago

















  • @UlrikeFischer. Breaks and complains loudly with error messages

    – Krishna
    8 hours ago











  • did you use makeatletter?

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer yes. works inside the preamble, but breaks within the document

    – Krishna
    8 hours ago











  • the ltxcmds package has ltx@ifpackageloaded, that works in the document too.

    – Ulrike Fischer
    8 hours ago











  • @UlrikeFischer cool. the ltxcmds package worked great for me. Thank you!

    – Krishna
    7 hours ago
















@UlrikeFischer. Breaks and complains loudly with error messages

– Krishna
8 hours ago





@UlrikeFischer. Breaks and complains loudly with error messages

– Krishna
8 hours ago













did you use makeatletter?

– Ulrike Fischer
8 hours ago





did you use makeatletter?

– Ulrike Fischer
8 hours ago













@UlrikeFischer yes. works inside the preamble, but breaks within the document

– Krishna
8 hours ago





@UlrikeFischer yes. works inside the preamble, but breaks within the document

– Krishna
8 hours ago













the ltxcmds package has ltx@ifpackageloaded, that works in the document too.

– Ulrike Fischer
8 hours ago





the ltxcmds package has ltx@ifpackageloaded, that works in the document too.

– Ulrike Fischer
8 hours ago













@UlrikeFischer cool. the ltxcmds package worked great for me. Thank you!

– Krishna
7 hours ago





@UlrikeFischer cool. the ltxcmds package worked great for me. Thank you!

– Krishna
7 hours ago










2 Answers
2






active

oldest

votes


















3
















Normally you would just use @ifpackageloaded, but the command is limited to the preamble. To use it in the document body you need ltx@ifpackageloaded from the ltxcmds package. Since the macro has an @ in the name, you need to wrap it in makeatletter and makeatother.



documentclassarticle
usepackageexpl3
usepackageltxcmds
%csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
usepackagehyperxmp
usepackagehyperref

makeatletter
% this commented paragraph is conceptual & needs fixing through a solution from this forum
@ifpackageloadedgitver
hypersetuppdfversionid = gitVer

hypersetuppdfversionid =

makeatother

begindocument
Hello world!

meaninggitVer
% The following again describes my intended requirements in words
% detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"
makeatletter
ltx@ifpackageloadedgitverversionBoxgitver not loaded
makeatother

enddocument





share|improve this answer
































    5
















    Assuming that gitVer and VersionBox are defined by gitver, just add



    providecommandgitVer
    providecommandVersionBox[1]gitver not loaded


    after the conditional loading.



    This exploits the fact that providecommand does nothing if the command is already defined.






    share|improve this answer

























    • thank you. It worked for me. However, I think the ltxcmds package is a bit more flexible, and hence I'd like to accept that answer. However, yours is a valid solution and I am upvoting this.

      – Krishna
      7 hours ago











    • @Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.

      – egreg
      7 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/4.0/"u003ecc by-sa 4.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%2f508952%2fconditionally-execute-a-command-if-a-specific-package-is-loaded%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









    3
















    Normally you would just use @ifpackageloaded, but the command is limited to the preamble. To use it in the document body you need ltx@ifpackageloaded from the ltxcmds package. Since the macro has an @ in the name, you need to wrap it in makeatletter and makeatother.



    documentclassarticle
    usepackageexpl3
    usepackageltxcmds
    %csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
    usepackagehyperxmp
    usepackagehyperref

    makeatletter
    % this commented paragraph is conceptual & needs fixing through a solution from this forum
    @ifpackageloadedgitver
    hypersetuppdfversionid = gitVer

    hypersetuppdfversionid =

    makeatother

    begindocument
    Hello world!

    meaninggitVer
    % The following again describes my intended requirements in words
    % detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"
    makeatletter
    ltx@ifpackageloadedgitverversionBoxgitver not loaded
    makeatother

    enddocument





    share|improve this answer





























      3
















      Normally you would just use @ifpackageloaded, but the command is limited to the preamble. To use it in the document body you need ltx@ifpackageloaded from the ltxcmds package. Since the macro has an @ in the name, you need to wrap it in makeatletter and makeatother.



      documentclassarticle
      usepackageexpl3
      usepackageltxcmds
      %csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
      usepackagehyperxmp
      usepackagehyperref

      makeatletter
      % this commented paragraph is conceptual & needs fixing through a solution from this forum
      @ifpackageloadedgitver
      hypersetuppdfversionid = gitVer

      hypersetuppdfversionid =

      makeatother

      begindocument
      Hello world!

      meaninggitVer
      % The following again describes my intended requirements in words
      % detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"
      makeatletter
      ltx@ifpackageloadedgitverversionBoxgitver not loaded
      makeatother

      enddocument





      share|improve this answer



























        3














        3










        3









        Normally you would just use @ifpackageloaded, but the command is limited to the preamble. To use it in the document body you need ltx@ifpackageloaded from the ltxcmds package. Since the macro has an @ in the name, you need to wrap it in makeatletter and makeatother.



        documentclassarticle
        usepackageexpl3
        usepackageltxcmds
        %csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
        usepackagehyperxmp
        usepackagehyperref

        makeatletter
        % this commented paragraph is conceptual & needs fixing through a solution from this forum
        @ifpackageloadedgitver
        hypersetuppdfversionid = gitVer

        hypersetuppdfversionid =

        makeatother

        begindocument
        Hello world!

        meaninggitVer
        % The following again describes my intended requirements in words
        % detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"
        makeatletter
        ltx@ifpackageloadedgitverversionBoxgitver not loaded
        makeatother

        enddocument





        share|improve this answer













        Normally you would just use @ifpackageloaded, but the command is limited to the preamble. To use it in the document body you need ltx@ifpackageloaded from the ltxcmds package. Since the macro has an @ in the name, you need to wrap it in makeatletter and makeatother.



        documentclassarticle
        usepackageexpl3
        usepackageltxcmds
        %csname sys_if_shell_unrestricted:Tendcsnameusepackagegitver
        usepackagehyperxmp
        usepackagehyperref

        makeatletter
        % this commented paragraph is conceptual & needs fixing through a solution from this forum
        @ifpackageloadedgitver
        hypersetuppdfversionid = gitVer

        hypersetuppdfversionid =

        makeatother

        begindocument
        Hello world!

        meaninggitVer
        % The following again describes my intended requirements in words
        % detect if gitver has been loaded & print versionBox if so; otherwise print "gitver not loaded"
        makeatletter
        ltx@ifpackageloadedgitverversionBoxgitver not loaded
        makeatother

        enddocument






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 7 hours ago









        StrongBadStrongBad

        13.6k6 gold badges50 silver badges107 bronze badges




        13.6k6 gold badges50 silver badges107 bronze badges


























            5
















            Assuming that gitVer and VersionBox are defined by gitver, just add



            providecommandgitVer
            providecommandVersionBox[1]gitver not loaded


            after the conditional loading.



            This exploits the fact that providecommand does nothing if the command is already defined.






            share|improve this answer

























            • thank you. It worked for me. However, I think the ltxcmds package is a bit more flexible, and hence I'd like to accept that answer. However, yours is a valid solution and I am upvoting this.

              – Krishna
              7 hours ago











            • @Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.

              – egreg
              7 hours ago
















            5
















            Assuming that gitVer and VersionBox are defined by gitver, just add



            providecommandgitVer
            providecommandVersionBox[1]gitver not loaded


            after the conditional loading.



            This exploits the fact that providecommand does nothing if the command is already defined.






            share|improve this answer

























            • thank you. It worked for me. However, I think the ltxcmds package is a bit more flexible, and hence I'd like to accept that answer. However, yours is a valid solution and I am upvoting this.

              – Krishna
              7 hours ago











            • @Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.

              – egreg
              7 hours ago














            5














            5










            5









            Assuming that gitVer and VersionBox are defined by gitver, just add



            providecommandgitVer
            providecommandVersionBox[1]gitver not loaded


            after the conditional loading.



            This exploits the fact that providecommand does nothing if the command is already defined.






            share|improve this answer













            Assuming that gitVer and VersionBox are defined by gitver, just add



            providecommandgitVer
            providecommandVersionBox[1]gitver not loaded


            after the conditional loading.



            This exploits the fact that providecommand does nothing if the command is already defined.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 7 hours ago









            egregegreg

            770k91 gold badges2011 silver badges3367 bronze badges




            770k91 gold badges2011 silver badges3367 bronze badges















            • thank you. It worked for me. However, I think the ltxcmds package is a bit more flexible, and hence I'd like to accept that answer. However, yours is a valid solution and I am upvoting this.

              – Krishna
              7 hours ago











            • @Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.

              – egreg
              7 hours ago


















            • thank you. It worked for me. However, I think the ltxcmds package is a bit more flexible, and hence I'd like to accept that answer. However, yours is a valid solution and I am upvoting this.

              – Krishna
              7 hours ago











            • @Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.

              – egreg
              7 hours ago

















            thank you. It worked for me. However, I think the ltxcmds package is a bit more flexible, and hence I'd like to accept that answer. However, yours is a valid solution and I am upvoting this.

            – Krishna
            7 hours ago





            thank you. It worked for me. However, I think the ltxcmds package is a bit more flexible, and hence I'd like to accept that answer. However, yours is a valid solution and I am upvoting this.

            – Krishna
            7 hours ago













            @Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.

            – egreg
            7 hours ago






            @Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.

            – egreg
            7 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%2f508952%2fconditionally-execute-a-command-if-a-specific-package-is-loaded%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

            Sahara Skak | Bilen | Luke uk diar | NawigatsjuunCommonskategorii: SaharaWikivoyage raisfeerer: Sahara26° N, 13° O

            The fall designs the understood secretary. Looking glass Science Shock Discovery Hot Everybody Loves Raymond Smile 곳 서비스 성실하다 Defas Kaloolon Definition: To combine or impregnate with sulphur or any of its compounds as to sulphurize caoutchouc in vulcanizing Flame colored Reason Useful Thin Help 갖다 유명하다 낙엽 장례식 Country Iron Definition: A fencer a gladiator one who exhibits his skill in the use of the sword Definition: The American black throated bunting Spiza Americana Nostalgic Needy Method to my madness 시키다 평가되다 전부 소설가 우아하다 Argument Tin Feeling Representative Gym Music Gaur Chicken 일쑤 코치 편 학생증 The harbor values the sugar. Vasagle Yammoe Enstatite Definition: Capable of being limited Road Neighborly Five Refer Built Kangaroo 비비다 Degree Release Bargain Horse 하루 형님 유교 석 동부 괴롭히다 경제력

            19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу