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)?
Why does NASA publish all the results/data it gets?
An Algorithm Which Schedules Your Life
What is the lowest voltage that a microcontroller can successfully read on the analog pin?
How much damage can be done just by heating matter?
Conditionally execute a command if a specific package is loaded
Did Apollo carry and use WD40?
Where are they calling from?
Where Does VDD+0.3V Input Limit Come From on IC chips?
My 15 year old son is gay. How do I express my feelings about this?
Is it impolite to ask for halal food when traveling to and in Thailand?
Transforming 2D points on to a regular grid or lattice
Find missing number in the transformation
Can this word order be rearranged?
Is it true that, "just ten trading days represent 63 per cent of the returns of the past 50 years"?
I reverse the source code, you negate the input!
Going to France with limited French for a day
Hiking with a mule or two?
A high quality contribution but an annoying error is present in my published article
Do the villains know Batman has no superpowers?
Sparse columns, cpu time & filtered indexes
Non-cadential use of 6/4 chord
Hilbert's hotel, why can't I repeat it infinitely many times?
Is it more effective to add yeast before or after kneading?
Do all creatures have souls?
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;
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
add a comment
|
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
@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. theltxcmds
package worked great for me. Thank you!
– Krishna
8 hours ago
add a comment
|
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
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
packages conditionals condition
asked 9 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. theltxcmds
package worked great for me. Thank you!
– Krishna
8 hours ago
add a comment
|
@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. theltxcmds
package worked great for me. Thank you!
– Krishna
8 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
8 hours ago
@UlrikeFischer cool. the
ltxcmds
package worked great for me. Thank you!– Krishna
8 hours ago
add a comment
|
2 Answers
2
active
oldest
votes
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
add a comment
|
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.
thank you. It worked for me. However, I think theltxcmds
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
8 hours ago
@Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.
– egreg
8 hours 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/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
);
);
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%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
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
add a comment
|
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
add a comment
|
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
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
answered 8 hours ago
StrongBadStrongBad
13.6k6 gold badges50 silver badges107 bronze badges
13.6k6 gold badges50 silver badges107 bronze badges
add a comment
|
add a comment
|
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.
thank you. It worked for me. However, I think theltxcmds
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
8 hours ago
@Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.
– egreg
8 hours ago
add a comment
|
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.
thank you. It worked for me. However, I think theltxcmds
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
8 hours ago
@Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.
– egreg
8 hours ago
add a comment
|
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.
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.
answered 8 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 theltxcmds
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
8 hours ago
@Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.
– egreg
8 hours ago
add a comment
|
thank you. It worked for me. However, I think theltxcmds
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
8 hours ago
@Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.
– egreg
8 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
8 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
8 hours ago
@Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.
– egreg
8 hours ago
@Krishna I disagree about the flexibility and you're fill your document with extraneous bits of code.
– egreg
8 hours ago
add a comment
|
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%2f508952%2fconditionally-execute-a-command-if-a-specific-package-is-loaded%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
@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
8 hours ago