plain IF structure with one def-ed token and one literal Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)ifthenelse with inequalities and expressions, using pgfmathparseChecking a command with equal and then using that command for another command?Getting started with latex and conditional typesetHow test value of a command with `ifthenelse` and `equal`?Conditionals used in a new environment of detection of how many lines of quotation and with the selection of a language in XeLaTeXhelp with nomenclature groups and ifthenelse
Does surprise arrest existing movement?
Is 1 ppb equal to 1 μg/kg?
Area of a 2D convex hull
Sorting numerically
When to stop saving and start investing?
How discoverable are IPv6 addresses and AAAA names by potential attackers?
Did Xerox really develop the first LAN?
Why does Python start at index 1 when iterating an array backwards?
Is it true that "carbohydrates are of no use for the basal metabolic need"?
What does the "x" in "x86" represent?
How to recreate this effect in Photoshop?
Why is there no army of Iron-Mans in the MCU?
How does a biquinary adder work?
Why did the IBM 650 use bi-quinary?
The logistics of corpse disposal
Withdrew £2800, but only £2000 shows as withdrawn on online banking; what are my obligations?
What's the purpose of writing one's academic bio in 3rd person?
ListPlot join points by nearest neighbor rather than order
Do you forfeit tax refunds/credits if you aren't required to and don't file by April 15?
Why was the term "discrete" used in discrete logarithm?
Does accepting a pardon have any bearing on trying that person for the same crime in a sovereign jurisdiction?
How do I keep my slimes from escaping their pens?
How can players work together to take actions that are otherwise impossible?
Right-skewed distribution with mean equals to mode?
plain IF structure with one def-ed token and one literal
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)ifthenelse with inequalities and expressions, using pgfmathparseChecking a command with equal and then using that command for another command?Getting started with latex and conditional typesetHow test value of a command with `ifthenelse` and `equal`?Conditionals used in a new environment of detection of how many lines of quotation and with the selection of a language in XeLaTeXhelp with nomenclature groups and ifthenelse
In some hand-me-down tex i inherited, a control sequence is used as a variable, for instance:
defaccessflavorats
it is used to generate postfixes on included tex files (called, i.e., image01_ats) and the like.
I want to use it in a conditional structure, i. e. something like
ifaccessflavor ats
This text is only shown if the Flavor of Access is 'ats'.
fi
I tried a a lot of variations, including various brackets, escape sequences and macros, but i cannot get it to work. Mostly, not even an error message appears. The online examples i found either deal with a more specific IF, like ifodd, ifx, etc., or more (seemingly) complex cases like testing two macros for identity.
Can somebody clear up the usage for me?
ifthenelse
add a comment |
In some hand-me-down tex i inherited, a control sequence is used as a variable, for instance:
defaccessflavorats
it is used to generate postfixes on included tex files (called, i.e., image01_ats) and the like.
I want to use it in a conditional structure, i. e. something like
ifaccessflavor ats
This text is only shown if the Flavor of Access is 'ats'.
fi
I tried a a lot of variations, including various brackets, escape sequences and macros, but i cannot get it to work. Mostly, not even an error message appears. The online examples i found either deal with a more specific IF, like ifodd, ifx, etc., or more (seemingly) complex cases like testing two macros for identity.
Can somebody clear up the usage for me?
ifthenelse
I can recommend themultiaudiencepackage which allows you to separate some parts of your text for different "audiences" and provides higher-level switches. As part of this, you can use itsCurrentAudiencevariable to get the audience you are currently writing for (e.g. for file names).
– TeXnician
7 hours ago
add a comment |
In some hand-me-down tex i inherited, a control sequence is used as a variable, for instance:
defaccessflavorats
it is used to generate postfixes on included tex files (called, i.e., image01_ats) and the like.
I want to use it in a conditional structure, i. e. something like
ifaccessflavor ats
This text is only shown if the Flavor of Access is 'ats'.
fi
I tried a a lot of variations, including various brackets, escape sequences and macros, but i cannot get it to work. Mostly, not even an error message appears. The online examples i found either deal with a more specific IF, like ifodd, ifx, etc., or more (seemingly) complex cases like testing two macros for identity.
Can somebody clear up the usage for me?
ifthenelse
In some hand-me-down tex i inherited, a control sequence is used as a variable, for instance:
defaccessflavorats
it is used to generate postfixes on included tex files (called, i.e., image01_ats) and the like.
I want to use it in a conditional structure, i. e. something like
ifaccessflavor ats
This text is only shown if the Flavor of Access is 'ats'.
fi
I tried a a lot of variations, including various brackets, escape sequences and macros, but i cannot get it to work. Mostly, not even an error message appears. The online examples i found either deal with a more specific IF, like ifodd, ifx, etc., or more (seemingly) complex cases like testing two macros for identity.
Can somebody clear up the usage for me?
ifthenelse
ifthenelse
edited 7 hours ago
Kurt
41.2k950164
41.2k950164
asked 7 hours ago
bukwyrmbukwyrm
1212
1212
I can recommend themultiaudiencepackage which allows you to separate some parts of your text for different "audiences" and provides higher-level switches. As part of this, you can use itsCurrentAudiencevariable to get the audience you are currently writing for (e.g. for file names).
– TeXnician
7 hours ago
add a comment |
I can recommend themultiaudiencepackage which allows you to separate some parts of your text for different "audiences" and provides higher-level switches. As part of this, you can use itsCurrentAudiencevariable to get the audience you are currently writing for (e.g. for file names).
– TeXnician
7 hours ago
I can recommend the
multiaudience package which allows you to separate some parts of your text for different "audiences" and provides higher-level switches. As part of this, you can use its CurrentAudience variable to get the audience you are currently writing for (e.g. for file names).– TeXnician
7 hours ago
I can recommend the
multiaudience package which allows you to separate some parts of your text for different "audiences" and provides higher-level switches. As part of this, you can use its CurrentAudience variable to get the audience you are currently writing for (e.g. for file names).– TeXnician
7 hours ago
add a comment |
2 Answers
2
active
oldest
votes
documentclassarticle
defatscomparetokenats
newcommanddomytest%
ifxatscomparetokenaccessflavor MATCHES atselse DOES NOT MATCH atsfi
begindocument
defaccessflavorats
domytest
defaccessflavorpdq
domytest
enddocument

Thank you! Can you explain what is going on? If i understand it correctly, you def-ed atscomparetoken so that the ifx could work on two tokens - is there a reason you packed the whole thing into a command? Also, do you know why one needs the string as an expansion inside a token (for the ifx case it is clear, but why dies if not work?)
– bukwyrm
7 hours ago
@bukwyrm Correct, theifxworks on two tokens, and the comparison is whether the substitution text (one level of expansion) for the two tokens matches or not. The problem with trying to do this withifis thatiffully expands and then compares the first two tokens; thus,ifaccessflavor atsexpands toif atsatsandais compared tot, with the remainingsatsextraneous.
– Steven B. Segletes
6 hours ago
add a comment |
If you want to maintain the if...else...fi structure, you can use
documentclassarticle
usepackagepdftexcmds
makeatletter
newcommandflavor[1]%
TTfi
ifnumpdf@strcmp#1accessflavor=z@
makeatother
begindocument
defaccessflavorats
Shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
defaccessflavornotats
Not shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
enddocument
The usage of pdftexcmds is to obtain engine independence, so the code works with pdftex, luatex and xetex.
The trick is that if expands tokens.
Note that this can be used inside other conditionals.

add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "85"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
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%2f484974%2fplain-if-structure-with-one-def-ed-token-and-one-literal%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
documentclassarticle
defatscomparetokenats
newcommanddomytest%
ifxatscomparetokenaccessflavor MATCHES atselse DOES NOT MATCH atsfi
begindocument
defaccessflavorats
domytest
defaccessflavorpdq
domytest
enddocument

Thank you! Can you explain what is going on? If i understand it correctly, you def-ed atscomparetoken so that the ifx could work on two tokens - is there a reason you packed the whole thing into a command? Also, do you know why one needs the string as an expansion inside a token (for the ifx case it is clear, but why dies if not work?)
– bukwyrm
7 hours ago
@bukwyrm Correct, theifxworks on two tokens, and the comparison is whether the substitution text (one level of expansion) for the two tokens matches or not. The problem with trying to do this withifis thatiffully expands and then compares the first two tokens; thus,ifaccessflavor atsexpands toif atsatsandais compared tot, with the remainingsatsextraneous.
– Steven B. Segletes
6 hours ago
add a comment |
documentclassarticle
defatscomparetokenats
newcommanddomytest%
ifxatscomparetokenaccessflavor MATCHES atselse DOES NOT MATCH atsfi
begindocument
defaccessflavorats
domytest
defaccessflavorpdq
domytest
enddocument

Thank you! Can you explain what is going on? If i understand it correctly, you def-ed atscomparetoken so that the ifx could work on two tokens - is there a reason you packed the whole thing into a command? Also, do you know why one needs the string as an expansion inside a token (for the ifx case it is clear, but why dies if not work?)
– bukwyrm
7 hours ago
@bukwyrm Correct, theifxworks on two tokens, and the comparison is whether the substitution text (one level of expansion) for the two tokens matches or not. The problem with trying to do this withifis thatiffully expands and then compares the first two tokens; thus,ifaccessflavor atsexpands toif atsatsandais compared tot, with the remainingsatsextraneous.
– Steven B. Segletes
6 hours ago
add a comment |
documentclassarticle
defatscomparetokenats
newcommanddomytest%
ifxatscomparetokenaccessflavor MATCHES atselse DOES NOT MATCH atsfi
begindocument
defaccessflavorats
domytest
defaccessflavorpdq
domytest
enddocument

documentclassarticle
defatscomparetokenats
newcommanddomytest%
ifxatscomparetokenaccessflavor MATCHES atselse DOES NOT MATCH atsfi
begindocument
defaccessflavorats
domytest
defaccessflavorpdq
domytest
enddocument

answered 7 hours ago
Steven B. SegletesSteven B. Segletes
162k9206418
162k9206418
Thank you! Can you explain what is going on? If i understand it correctly, you def-ed atscomparetoken so that the ifx could work on two tokens - is there a reason you packed the whole thing into a command? Also, do you know why one needs the string as an expansion inside a token (for the ifx case it is clear, but why dies if not work?)
– bukwyrm
7 hours ago
@bukwyrm Correct, theifxworks on two tokens, and the comparison is whether the substitution text (one level of expansion) for the two tokens matches or not. The problem with trying to do this withifis thatiffully expands and then compares the first two tokens; thus,ifaccessflavor atsexpands toif atsatsandais compared tot, with the remainingsatsextraneous.
– Steven B. Segletes
6 hours ago
add a comment |
Thank you! Can you explain what is going on? If i understand it correctly, you def-ed atscomparetoken so that the ifx could work on two tokens - is there a reason you packed the whole thing into a command? Also, do you know why one needs the string as an expansion inside a token (for the ifx case it is clear, but why dies if not work?)
– bukwyrm
7 hours ago
@bukwyrm Correct, theifxworks on two tokens, and the comparison is whether the substitution text (one level of expansion) for the two tokens matches or not. The problem with trying to do this withifis thatiffully expands and then compares the first two tokens; thus,ifaccessflavor atsexpands toif atsatsandais compared tot, with the remainingsatsextraneous.
– Steven B. Segletes
6 hours ago
Thank you! Can you explain what is going on? If i understand it correctly, you def-ed atscomparetoken so that the ifx could work on two tokens - is there a reason you packed the whole thing into a command? Also, do you know why one needs the string as an expansion inside a token (for the ifx case it is clear, but why dies if not work?)
– bukwyrm
7 hours ago
Thank you! Can you explain what is going on? If i understand it correctly, you def-ed atscomparetoken so that the ifx could work on two tokens - is there a reason you packed the whole thing into a command? Also, do you know why one needs the string as an expansion inside a token (for the ifx case it is clear, but why dies if not work?)
– bukwyrm
7 hours ago
@bukwyrm Correct, the
ifx works on two tokens, and the comparison is whether the substitution text (one level of expansion) for the two tokens matches or not. The problem with trying to do this with if is that if fully expands and then compares the first two tokens; thus, ifaccessflavor ats expands to if atsats and a is compared to t, with the remaining sats extraneous.– Steven B. Segletes
6 hours ago
@bukwyrm Correct, the
ifx works on two tokens, and the comparison is whether the substitution text (one level of expansion) for the two tokens matches or not. The problem with trying to do this with if is that if fully expands and then compares the first two tokens; thus, ifaccessflavor ats expands to if atsats and a is compared to t, with the remaining sats extraneous.– Steven B. Segletes
6 hours ago
add a comment |
If you want to maintain the if...else...fi structure, you can use
documentclassarticle
usepackagepdftexcmds
makeatletter
newcommandflavor[1]%
TTfi
ifnumpdf@strcmp#1accessflavor=z@
makeatother
begindocument
defaccessflavorats
Shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
defaccessflavornotats
Not shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
enddocument
The usage of pdftexcmds is to obtain engine independence, so the code works with pdftex, luatex and xetex.
The trick is that if expands tokens.
Note that this can be used inside other conditionals.

add a comment |
If you want to maintain the if...else...fi structure, you can use
documentclassarticle
usepackagepdftexcmds
makeatletter
newcommandflavor[1]%
TTfi
ifnumpdf@strcmp#1accessflavor=z@
makeatother
begindocument
defaccessflavorats
Shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
defaccessflavornotats
Not shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
enddocument
The usage of pdftexcmds is to obtain engine independence, so the code works with pdftex, luatex and xetex.
The trick is that if expands tokens.
Note that this can be used inside other conditionals.

add a comment |
If you want to maintain the if...else...fi structure, you can use
documentclassarticle
usepackagepdftexcmds
makeatletter
newcommandflavor[1]%
TTfi
ifnumpdf@strcmp#1accessflavor=z@
makeatother
begindocument
defaccessflavorats
Shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
defaccessflavornotats
Not shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
enddocument
The usage of pdftexcmds is to obtain engine independence, so the code works with pdftex, luatex and xetex.
The trick is that if expands tokens.
Note that this can be used inside other conditionals.

If you want to maintain the if...else...fi structure, you can use
documentclassarticle
usepackagepdftexcmds
makeatletter
newcommandflavor[1]%
TTfi
ifnumpdf@strcmp#1accessflavor=z@
makeatother
begindocument
defaccessflavorats
Shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
defaccessflavornotats
Not shown
ifflavorats
This text is only shown if the Flavor of Access is `ats'.
fi
enddocument
The usage of pdftexcmds is to obtain engine independence, so the code works with pdftex, luatex and xetex.
The trick is that if expands tokens.
Note that this can be used inside other conditionals.

answered 7 hours ago
egregegreg
734k8919333257
734k8919333257
add a comment |
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%2f484974%2fplain-if-structure-with-one-def-ed-token-and-one-literal%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
I can recommend the
multiaudiencepackage which allows you to separate some parts of your text for different "audiences" and provides higher-level switches. As part of this, you can use itsCurrentAudiencevariable to get the audience you are currently writing for (e.g. for file names).– TeXnician
7 hours ago