9

How do I decide a Boolean operation in LaTeX via Linux terminal? That is, I have:

%myfile.tex \documentclass{article} if parameter=true is true else is false \begin{document} parameter \end{document} 

And I wanted to type in something like terminal

 pdflatex -p myfile.tex #is true 

or

 pdflatex myfile.tex #is false 
2

2 Answers 2

11

The best way is outlined in Passing parameters to a document, which should be better known. If the document starts as

\ifcase\flag\relax <what to do when \flag=0>\or <what to do when \flag=1>\or <what to do when \flag=2>\or ... <what to do when \flag=n>\else <what to do otherwise>\fi 

we are free to choose among many cases by calling the compilation through

pdflatex '\def\flag{<value>}\input{myfile}' 

One can also choose a "default mode" by enclosing the above code in

\ifdefined\flag <code above> \else <default setting> \fi 

and the call pdflatex myfile will compile with the <default setting>.

Of course the code may also be after the \documentclass declaration, for choosing packages at run time, for example, or different definitions of some command. I'm thinking to a "printable" version (with black colored links) as opposed to a "web" version where links are colored. But with \ifcase we can define as many versions as we want.

For two versions only one can use a simplified version:

\documentclass{article} ... \usepackage{hyperref} \ifdefined\coloredoutput \hypersetup{colorlinks,...} \else \hypersetup{colorlinks=false,...} \fi 

and the call

pdflatex '\let\coloredoutput=T\input{myfile}' 

will color the links, while

pdflatex myfile 

will use no color.

0
0
pdflatex '\scrollmode\newif\ifflag\flagtrue\input{myfile.tex}' pdflatex '\scrollmode\newif\ifflag\flagfalse\input{myfile.tex}' 

The \scrollmode makes TeX not to stop in case of errors. It's convenient when used in a Makefile but you could omit it if you are calling pdflatex from the command line.

Inside myfile.tex you can use \ifflag .. \else .. \fi to process your document depending on the value of the flag.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.