Archiv verlassen und diese Seite im Standarddesign anzeigen : ifthenelse und hyperref nicht in section?
pheidrias
24-08-2010, 21:07
Hallo LaTeXler,
ich bin auf folgendes Problem gestoßen:
Hat man hyperref und ifthenelse eingebunden (Reihenfolge egal) und möchte ein Command in einer Section-Umgebung aufrufen, welches ein ifthenelse-Befehl enthält, dann steigt LaTeX mit
missing \endcsname inserted \section{\SomeCommand{}}
aus.
Ist das Problem bekannt (habe nix gefunden) und wie könnte ich es lösen?
Danke für Ratschläge,
pheidrias
\documentclass[parskip=half]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ifthen}
\usepackage{hyperref}
\newcommand{\SomeCommand}{%
\ifthenelse{1>2}{
neue Welt
} {
alte Welt
}
}
\begin{document}
\section{normal}
\SomeCommand{}
\section{\SomeCommand{}}
\SomeCommand{}
\end{document}
ich bin auf folgendes Problem gestoßen:
Hat man hyperref und ifthenelse eingebunden (Reihenfolge egal) und möchte ein Command in einer Section-Umgebung aufrufen, welches ein ifthenelse-Befehl enthält, dann steigt LaTeX mit
auf ifthen kann man verzichten:
\documentclass[parskip=half]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\newcommand\SomeCommand{%
\ifnum1>2 neue Welt \else alte Welt \fi}
\begin{document}
\section{normal}
\SomeCommand{}
\section{\SomeCommand}
\SomeCommand{}
\end{document}
Herbert
pheidrias
24-08-2010, 23:24
Lieber Herbert,
danke für die (vor-)schnelle Antwort.
Aber es ist wohl klar, daß ich nicht wirklich die Abfrage 1>2 im Sinn hatte!
Im Endeffekt sollte es mal wieder die gute alte Abfrage nach der Existenz eines Parameters sein (ifthenelse{\equal{#2}{\empty}}{}{})...
Dazu habe ich leider keine funktionierende Ersetzung via \if \else \fi gefunden.
Außerdem finde ich das Verhalten einfach so merkwürdig und würde gerne wissen, ob das ein lösbares Problem darstellt.
Danke,
pheidrias
Aber es ist wohl klar, daß ich nicht wirklich die Abfrage 1>2 im Sinn hatte!
klar!
Im Endeffekt sollte es mal wieder die gute alte Abfrage nach der Existenz eines Parameters sein (ifthenelse{\equal{#2}{\empty}}{}{})...
Dazu habe ich leider keine funktionierende Ersetzung via \if \else \fi gefunden.
\ifx\relax#1\relax leer \else nicht leer \fi
\ifthen ist nicht expandibel und macht in schöner Regelmäßigkeit
Probleme.
Herbert
pheidrias
25-08-2010, 11:08
Hallo Herbert!
Vielen Dank. Das geht jetzt gut!
Gibt es irgendwo eine Übersicht der ifthenelse-Ersatzmöglichkeiten (ifx, ifnum, ...)?
Merci!
lockstep
25-08-2010, 11:29
Eventuell helfen die Tests des Paketes etoolbox (http://www.ctan.org/tex-archive/macros/latex/contrib/etoolbox/etoolbox.pdf) (siehe Abschnitt 3.6 der Doku).
lockstep
Gibt es irgendwo eine Übersicht der ifthenelse-Ersatzmöglichkeiten (ifx, ifnum, ...)?
das sind keine Ersatzmöglichkeiten, sondern die Basismakros,
auf denen auch ifthen aufbauen muss.
http://perce.de/temp/if.pdf
Herbert
pheidrias
25-08-2010, 13:54
Sehr gut. Danke!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.