Conditional Compiling in Latex based on Filename
If you want to generate two versions of a document, for example one for online reading with hyperlinks and another one for printing, with footnotes instead of hyperlinks [1], you can use this trick:
then you create a link command accordingly:
and finally you create a link (symbolic or hard, it doesn't matter) and compile one version or the other:
(I guess that some LaTeX packages already do that for free, but conditional compilation can have many other usages.)
1: http://blog.0x972.info/?d=2014/10/29/09/55/15-conditional-compiling-in-latex-based-on-filename
\usepackage{substr} \newif\ifPaper % that inside a package, where I can pass "paper" as an option \DeclareOption{paper}{\global\Papertrue} % if substring "paper" is found in the job (file) name, set the flag \IfSubStringInString{\detokenize{paper}}{\jobname}{\Papertrue}{}
then you create a link command accordingly:
\newcommand{\link}[2]{ \ifPaper#1\footnote{\url{#2}}\else\href{#2}{#1}\fi }
and finally you create a link (symbolic or hard, it doesn't matter) and compile one version or the other:
ln -s myfile.tex myfile-paper.tex pdflatex myfile pdflatex myfile-paper
(I guess that some LaTeX packages already do that for free, but conditional compilation can have many other usages.)
1: http://blog.0x972.info/?d=2014/10/29/09/55/15-conditional-compiling-in-latex-based-on-filename
Waslon :
It works fine! Thanks a lot.
September 12, 2023.