How to have “preprocessor” flags in LaTeX
up vote
0
down vote
favorite
C programmers often use constructs like
#ifdef foo
printf("foo is defined ");
#endif
#ifndef foo
printf("foo is not defined ");
#endif
to select certain code-paths during the compilation process, by passing the compiler flag like -Dfoo
or just sticking a #define foo 0
somewhere in the code.
Is this possible in LaTeX too? So I am looking for something like
ifdef foo{
short summary, tldr
}
ifndef foo{
long explanation
}
This can be particularly helpful for producing short summary documents from existing TeX files containing long descriptions. I would like to be able to pass
something similar to -Dfoo
as a compiler flag, or just define the foo
somewhere near the top of the Latex file, just as I would do in the C case.
macros conditionals
add a comment |
up vote
0
down vote
favorite
C programmers often use constructs like
#ifdef foo
printf("foo is defined ");
#endif
#ifndef foo
printf("foo is not defined ");
#endif
to select certain code-paths during the compilation process, by passing the compiler flag like -Dfoo
or just sticking a #define foo 0
somewhere in the code.
Is this possible in LaTeX too? So I am looking for something like
ifdef foo{
short summary, tldr
}
ifndef foo{
long explanation
}
This can be particularly helpful for producing short summary documents from existing TeX files containing long descriptions. I would like to be able to pass
something similar to -Dfoo
as a compiler flag, or just define the foo
somewhere near the top of the Latex file, just as I would do in the C case.
macros conditionals
3
Possible duplicate of Conditional typesetting / build
– Henri Menke
1 hour ago
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
C programmers often use constructs like
#ifdef foo
printf("foo is defined ");
#endif
#ifndef foo
printf("foo is not defined ");
#endif
to select certain code-paths during the compilation process, by passing the compiler flag like -Dfoo
or just sticking a #define foo 0
somewhere in the code.
Is this possible in LaTeX too? So I am looking for something like
ifdef foo{
short summary, tldr
}
ifndef foo{
long explanation
}
This can be particularly helpful for producing short summary documents from existing TeX files containing long descriptions. I would like to be able to pass
something similar to -Dfoo
as a compiler flag, or just define the foo
somewhere near the top of the Latex file, just as I would do in the C case.
macros conditionals
C programmers often use constructs like
#ifdef foo
printf("foo is defined ");
#endif
#ifndef foo
printf("foo is not defined ");
#endif
to select certain code-paths during the compilation process, by passing the compiler flag like -Dfoo
or just sticking a #define foo 0
somewhere in the code.
Is this possible in LaTeX too? So I am looking for something like
ifdef foo{
short summary, tldr
}
ifndef foo{
long explanation
}
This can be particularly helpful for producing short summary documents from existing TeX files containing long descriptions. I would like to be able to pass
something similar to -Dfoo
as a compiler flag, or just define the foo
somewhere near the top of the Latex file, just as I would do in the C case.
macros conditionals
macros conditionals
edited 1 hour ago
Henri Menke
68.4k7153257
68.4k7153257
asked 2 hours ago
smilingbuddha
80741015
80741015
3
Possible duplicate of Conditional typesetting / build
– Henri Menke
1 hour ago
add a comment |
3
Possible duplicate of Conditional typesetting / build
– Henri Menke
1 hour ago
3
3
Possible duplicate of Conditional typesetting / build
– Henri Menke
1 hour ago
Possible duplicate of Conditional typesetting / build
– Henri Menke
1 hour ago
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
accepted
You can use ifdefined
to check whether a macro is defined. To check whether a macro is not defined, reverse the conditional by prefixing unless
.
documentclass{article}
%newcommandfoo{}
begin{document}
ifdefinedfoo
short summary, tldr
fi
unlessifdefinedfoo
long explanation
fi
end{document}
add a comment |
up vote
0
down vote
In ConTeXt MkIV you can achieve this behaviour using Modes.
starttext
startmode[foo]
short summary, tldr
stopmode
startnotmode[foo]
long explanation
stopnotmode
stoptext
The great thing about ConTeXt modes is that you can switch them on from the command line of the context
program.
$ context --mode=foo test.mkvi
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
You can use ifdefined
to check whether a macro is defined. To check whether a macro is not defined, reverse the conditional by prefixing unless
.
documentclass{article}
%newcommandfoo{}
begin{document}
ifdefinedfoo
short summary, tldr
fi
unlessifdefinedfoo
long explanation
fi
end{document}
add a comment |
up vote
1
down vote
accepted
You can use ifdefined
to check whether a macro is defined. To check whether a macro is not defined, reverse the conditional by prefixing unless
.
documentclass{article}
%newcommandfoo{}
begin{document}
ifdefinedfoo
short summary, tldr
fi
unlessifdefinedfoo
long explanation
fi
end{document}
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
You can use ifdefined
to check whether a macro is defined. To check whether a macro is not defined, reverse the conditional by prefixing unless
.
documentclass{article}
%newcommandfoo{}
begin{document}
ifdefinedfoo
short summary, tldr
fi
unlessifdefinedfoo
long explanation
fi
end{document}
You can use ifdefined
to check whether a macro is defined. To check whether a macro is not defined, reverse the conditional by prefixing unless
.
documentclass{article}
%newcommandfoo{}
begin{document}
ifdefinedfoo
short summary, tldr
fi
unlessifdefinedfoo
long explanation
fi
end{document}
edited 1 hour ago
answered 1 hour ago
Henri Menke
68.4k7153257
68.4k7153257
add a comment |
add a comment |
up vote
0
down vote
In ConTeXt MkIV you can achieve this behaviour using Modes.
starttext
startmode[foo]
short summary, tldr
stopmode
startnotmode[foo]
long explanation
stopnotmode
stoptext
The great thing about ConTeXt modes is that you can switch them on from the command line of the context
program.
$ context --mode=foo test.mkvi
add a comment |
up vote
0
down vote
In ConTeXt MkIV you can achieve this behaviour using Modes.
starttext
startmode[foo]
short summary, tldr
stopmode
startnotmode[foo]
long explanation
stopnotmode
stoptext
The great thing about ConTeXt modes is that you can switch them on from the command line of the context
program.
$ context --mode=foo test.mkvi
add a comment |
up vote
0
down vote
up vote
0
down vote
In ConTeXt MkIV you can achieve this behaviour using Modes.
starttext
startmode[foo]
short summary, tldr
stopmode
startnotmode[foo]
long explanation
stopnotmode
stoptext
The great thing about ConTeXt modes is that you can switch them on from the command line of the context
program.
$ context --mode=foo test.mkvi
In ConTeXt MkIV you can achieve this behaviour using Modes.
starttext
startmode[foo]
short summary, tldr
stopmode
startnotmode[foo]
long explanation
stopnotmode
stoptext
The great thing about ConTeXt modes is that you can switch them on from the command line of the context
program.
$ context --mode=foo test.mkvi
answered 1 hour ago
Henri Menke
68.4k7153257
68.4k7153257
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f464233%2fhow-to-have-preprocessor-flags-in-latex%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
3
Possible duplicate of Conditional typesetting / build
– Henri Menke
1 hour ago