[texhax] If ... else
Uwe Lueck
uwe.lueck at web.de
Sun Mar 8 08:54:24 CET 2015
Clifford Weil wrote at 2015-03-08 18:03:00 +0100:
> I need to add an \if … else command to a class file I’ve written.
> The purpose is to determine how to enter a \addcontentsline
> command depending on whether or not hyperref has been loaded.
> What is the syntax for that \if … else command.
There are many kinds of \if..., the reference that seems
most easily available to me is The TeXbook.
The syntax then is \if...<if>\else<else>\fi.
\addcontentsline indicates LaTeX, and it seems to me
that hyperref needs LaTeX. With LaTeX, a direct \if...
construction often is more difficult than using available
macros calling the tests. LaTeX \ifthenelse, on the other
hand, just is doing simple things in a difficult way, in
my view, and anyway it rather adresses LaTeX users rather
than class writers. The most direct way to control expansion
according to whether hyperref has been loaded, is
\@ifpackageloaded{hyperref}{<if>}{<else}
(learnt from Heiko Oberdiek).
I do follow Reinhard's suggestion to always load hyperref,
if only in draft mode when appropriate. I have this in a
kind of personal standard package:
\RequirePackage{ifpdf}
\usepackage[%
\ifpdf
bookmarksopen,
bookmarksopenlevel=2,
pdfstartview=FitH,
<and more>
\else
draft
\fi
]{hyperref}
... because I like to run latex as a kind of syntax check
before I run pdflatex, while non-draft hyperref with mere
latex introduces other difficulties. Maybe there is a
better way, but it works.
HTH -- Uwe L.
More information about the texhax
mailing list