{conditionals} is about macros like \if and \ifx that may execute other macros depending on whether certain conditions are true or not. Popular packages are {etoolbox} and {ifthen}.
23
votes
7answers
2k views
Conditional typesetting / build
Let's say I have .tex file which is a set of problems and solutions, of which I want to make two pdf files, one which includes the solutions and one which doesn't. so I need to build the .tex file ...
48
votes
4answers
17k views
LaTeX conditional expression
I would like to be able to set a flag at the beginning of the main flag (say output) that tells if I want to produce a paper document or an electronic document.
Then I should check this flag to ...
45
votes
2answers
11k views
Why is the ifthen package obsolete?
In the LaTeX companion, the authors recommend to use the package ifthen for complex conditional.
But in his answer to LaTeX conditional expression Will Robertson doesn't mention it, and in the ...
41
votes
6answers
1k views
Which document class is being used?
Is there a way to programmatically determine which document class is in effect?
I'd like to be able to write conditional macros that behave differently depending on which document class is currently ...
10
votes
2answers
709 views
Test if a paragraph has a page break in it?
I'm trying to use TikZ to make fancier frames. I'm using the clever \tikzmark thing that Andrew Stacey wrote to put nodes at the top left and bottom right of the body of an environment.
Then I use ...
24
votes
6answers
3k views
Is it possible to keep my translation together with original text?
I have an English article in LaTeX, which I'm going to translate to Russian. I want to keep my translation in sync with the original text. It means that I want every paragraph to stay as close to its ...
23
votes
2answers
972 views
Parametrize shading in table through TikZ
I wanted to do some shading in a table according to its values. For example, if you see the table below:
a b c d
a 90 10 0 0
b 0 80 10 10
c 0 0 95 5
d 0 10 5 85
I want to ...
13
votes
2answers
876 views
How to programmatically make tabular rows using `\whiledo` ?
The following code snippet does not work:
\documentclass{minimal}
\usepackage{longtable}
\usepackage{ifthen}
\newcounter{xyz}
\setcounter{xyz}{0}
\begin{document}
\begin{longtable}{|*2{c|}}
\hline
...
5
votes
1answer
503 views
Changbars to indicate location of conditional text
I am using etoolbox as per this question on LaTeX conditional expression, and would like to modify the conditional to print some sort of indicator (like a vertical change bar in the margin) to show ...
13
votes
5answers
408 views
Command behavior depending on current environment
I would like to write a LaTeX macro whose code depends on the parent environment such as:
\newcommand\test{
%if current_environment=env1
test1
%elseif current_environment=env2
test2
%else
}
...
14
votes
2answers
977 views
Use “default” figure if file is missing?
I was recently in charge of organizing all of the references and labels in a very large scientific proposal document. My workflow typically involved compiling the document, seeing a "There were ...
10
votes
2answers
500 views
Conditional “if a package is available”
I'd like to do something like the following (in pseudo-TeX)
\ifpackageavailable{packagefoo}
\usefoo
\else
\usefooreplacement
\fi
For example, I know that a template file I wrote is used by people ...
11
votes
5answers
5k views
If Then Else for odd page/even page
How to use if-then-else structure in LaTeX?
I need a example of odd and even page.
if odd then
command 1
else
command 2
11
votes
3answers
687 views
Is there a way to detect from inside a package that MiKTeX is used?
Is there a way to detect that the MiKTeX TeX LaTeX executable is used?
Something like \ifmiktex or even \IfFileExists{<some file only present in MiKTeX>}{}{}?
The reason is that in one of my ...
5
votes
2answers
227 views
biblatex conditional for printing an extradate
This is a follow-up question to biblatex format for online sources. I have the following biblatex configuration file. Thanks to Guido for the inputs. I have also taken some code for the ...
27
votes
1answer
294 views
How can I know if a node is already defined?
I think I've seen this question before, but I can't find it. The problem is simple; before I assign a name to a node I would like to know if the name is already used.
I think when a node is created ...
30
votes
2answers
3k views
What does \ifx\\#1\\ stand for?
The following usage of \ifx can be found in several packages and also in answers on this site. What does this syntax exactly mean? Are there any alternatives and drawbacks?
...
22
votes
1answer
2k views
Test if a package (or package option) is loaded
[french]{babel} (aka frenchb) is incompatible with some other packages, such as tikz, since it tries to insert \thinspace before semi-colons.
In order to make these two play nice, you have to call ...
12
votes
2answers
692 views
Define a Macro via Macro if Given Macro is not defined
I want to define a macro if it is not already defined. I can do this inline as the example below shows. But I would like to have a macro to do this functionality for me. My attempt to make this work ...
12
votes
2answers
715 views
How can I test for the current font?
The situation is the following, I have one font a with one feature and another font b with another feature and I am writing a command that if the current font is a need to switch to font b but if the ...
24
votes
4answers
2k views
How to check if a macro value is empty or will not create text with plain TeX conditionals?
I have a macro which holds some text value, e.g. \macro{some text}. If it is empty, I would like for nothing to appear in the document, but it has some content of any kind which would produce text ...
4
votes
2answers
303 views
how do I use the \input command on windows, combined with \IfFileExists?
I'm trying to use a command in my LaTeX file that inputs a file if it exists, and if it doesn't exit, inputs another one. This is the command:
...
19
votes
4answers
1k views
Redundancy in bib file: conditionally suppress url if same as doi?
Mathscinet gives bibtex entries with both a doi and a url field included. Typically they look something like
@article {some-article,
[…]
DOI = {10.1016/j.apal.2008.12.003},
URL = ...
16
votes
2answers
2k views
How to form “if … or … then” conditionals in TeX?
I feel really stupid for asking this, but how do you form more complex if conditionals in TeX? I'm looking for something like:
\ifnum\x=1 OR \ifnum\x=14
{do this}
\else
{do that}
\fi
I ...
18
votes
4answers
1k views
How I can automatically add a page if the total number of pages is odd?
I need automatically add a blank page (also without document header, numbering and footer) at the end of the document, if the total numbers of pages is odd. How I can do that?
And preferably without ...
18
votes
3answers
390 views
Is there an \iftex4ht command, and if not, how should it be defined?
Background: I'm using TikZ to generate a load of pictures that I want to put on the web as SVGs. So I'm using the pgfsys-tex4ht.def driver and it's working very well. My gut feeling is that the SVG ...
17
votes
2answers
669 views
Check if an entry is cited multiple times
I am trying to find out whether it is currently possible to have a test in Biblatex that tests at the very first time an entry is cited whether the same entry will be cited more than once in the ...
16
votes
4answers
978 views
Testing for number
How do I test if a given parameter is a number, in order to apply a different style? And if not, just ignore... Like:
\domorestuffifnumber{things} -> things
\domorestuffifnumber{123} -> ...
16
votes
2answers
233 views
How can I detect if I'm inside or outside of a float environment?
I am trying to detect whether I am inside or outside a float. I know the way how caption works. It uses the internal \@captype. But in the example below you see that this test failed by using ...
15
votes
1answer
393 views
What exactly does \@doendpe do?
Quoting from the LaTeX2e sources:
[\@endparenv, \@doendpe]
To suppress the paragraph indentation in text immediately following a
paragraph-making environment, \everypar is changed to remove ...
11
votes
3answers
1k views
Detect beginning of a sentence in a macro for capitalization
Is it possible to make macros give different results at the beginning of a new sentence? Suppose that I want the macro "\secname" to write "Section" at the beginning of a new sentence, and "section" ...
10
votes
5answers
890 views
How to test if a number is negative
Is there an easy way to test if a number is negative?
I don't need a general solution, but it does need to be able to handle a floating point value. I was using this solution from tex.ac.uk until I ...
11
votes
1answer
170 views
How can I check if the current code is inside a tikzpicture?
I read the answer for this question (inside a environment) but I would like to know if there is something more specific. LaTeX keeps the current environment in the macro \@currenvir but how do the ...
5
votes
2answers
308 views
String test, with complicated arguments
I have a command \mycom{} which takes 1 argument. The command should perform a test on the argument and do something accordingly. For simple arguments, I can use \ifthenelse, but I need to consider ...
21
votes
1answer
960 views
What is an \if?
I'm reading TeX by Topic, but in little chunks (rather than from first page to last) and just read the stuff on conditionals. I want to be sure that I understand what's going on when TeX starts ...
12
votes
4answers
1k views
Making switch/case with etoolbox's \ifdefequal
I've got a define such as \def\doctype{SomeString}. \doctype can take on one of five values. I want to do something like a switch statement in a programming language, i.e. (pseudocode):
switch ...
24
votes
6answers
2k views
Test whether token list is empty
Is it possible to test whether a token list register is empty without expanding it?
17
votes
6answers
1k views
Checking if a number is a multiple of 4
Using etoolbox, ifthen, or another form of conditional checking, how can I check if a value is a multiple of 4? E.g. if the number is 4, 8, 12, 16, etc., then it returns "true".
15
votes
3answers
406 views
Includegraphics maximum width
With \includegraphics I can give the width of the resulting image (which would be scaled).
How can I give a maximum width of the image? That is, if the original is smaller than X, I'd like to keep ...
14
votes
2answers
2k views
What does \begingroup\expandafter…\endgroup do?
I often see code of the following form in package implementations (this example is from the LaTeX3 sources):
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname ...
10
votes
2answers
474 views
How do I conditionally execute something based on a documentclass option?
I'd like to conditionally do some things (like input a file) depending on if a specific class option was passed. For example, I'd like to have an "instructor" option to the class that would input a ...
7
votes
2answers
2k views
Conditional cases expression
How can I create a command \if with 1 argument, namely #1,
\if{#1=1}{symbol1}...{#1=n}{symboln}
that returns symbol1, when #1 is 1, ..., and returns symboln, when #1 is n, and returns nothing, ...
4
votes
3answers
693 views
How to use the exact same file for handout and presentation modes in beamer
I want to use the exact same file for my beamer presentation and handout. I do not like the need to comment out lines in order to create the handout or presentation (my current solution), nor do I ...
25
votes
2answers
1k views
Understanding \@ifnextchar
I understand the definitions of the \makeatletter and \makeatother commands and also \def and \newcommand somewhat. But, explained in a simple way, what is happening in the following line?
...
12
votes
1answer
301 views
Conditioning behaviour of a macro on whether on top of a new page
Is there a way to find out, whether the currently typeset material will go to top of a page?
I am trying to write a macro which, when invoked, typesets a horizontal divider to separate the subsequent ...
10
votes
2answers
860 views
Check if a string contains a given character
I want to implement an if-then-else depending on whether the argument contains a special character or not. Should I be looking here: http://www.tug.org/TUGboat/Articles/tb28-1/tb88glister.pdf, or does ...
10
votes
2answers
353 views
How can I check if the current code is inside a certain environment?
I would like to define a command which checks if it is executed inside a certain environment. Like this:
\documentclass{article}
\newenvironment{myenv}[0]{at start}{ at end}
...
9
votes
3answers
458 views
Choosing styles conditionally in TikZ
I want to create a series of images that visualise a recursion tree as walked on by an algorithm. That means that different styles are applied to nodes depending on the step the algorithm is in, such ...
8
votes
2answers
247 views
Custom ToC — Put vspace only below chapters that have sections in them
I’m using the titletoc package in the book class. Currently, my chapter entries are configured like this (I left out the unimportant parameters for simplicity):
\titlecontents{chapter}[0pc]
...
12
votes
1answer
413 views
How to determine whether a list of figures is empty?
I want to check whether the document has any figures so as to decide whether or not to have a list of figures. Is this possible? Feasible without doing something like parsing the lof file?
Note that ...

