# im \newcommand darf nicht escaped sein
Verfasst: Mi 6. Okt 2010, 21:59
Hallo zusammen,
anbei mein Minimalbeispiel und die Testdatei, mit dem mein Vorhaben deutlich wird:
Ich möchte innerhalb meines Latex-Dokumentes auf ein anderes Latexdokument verweisen und bediene mich des Paketes "xr".
Nun möchte ich innerhalb meiner PDF-Datei, dass der Verweis auch verlinkt ist. Dazu nutze ich den Befehl
Der Befehl an sich funktioniert auch. Nun möchte ich aber einen eigenen Befehl entwerfen "\Kapitel", der den im Minimalbeispiel aufgeführten Code ausführt. Das Problem ist nun, dass der Befehl \href ein "#" erwartet, was nach hyperref-Doku nicht escaped werden muss. Mein Parameter in "\newcommand" wird aber auch mit "#1" aufgerufen. Aber
funktioniert aber nicht.
Hat jemand eine Idee?
Gruß,
Irena
anbei mein Minimalbeispiel und die Testdatei, mit dem mein Vorhaben deutlich wird:
\begin{filecontents}{Testdoc.aux} \relax \catcode`"\active \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined \global\let\oldcontentsline\contentsline \gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} \global\let\oldnewlabel\newlabel \gdef\newlabel#1#2{\newlabelxx{#1}#2} \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} \AtEndDocument{\ifx\hyper@anchor\@undefined \let\contentsline\oldcontentsline \let\newlabel\oldnewlabel \fi} \fi} \global\let\hyper@last\relax \gdef\HyperFirstAtBeginDocument#1{#1} \providecommand\HyField@AuxAddToFields[1]{} \select@language{ngerman} \@writefile{toc}{\select@language{ngerman}} \@writefile{lof}{\select@language{ngerman}} \@writefile{lot}{\select@language{ngerman}} \@writefile{toc}{\contentsline {chapter}{\numberline {1}Hauptband}{1}{chapter.1}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{Kap001}{{1}{1}{Hauptband\relax }{chapter.1}{}} \@writefile{toc}{\contentsline {chapter}{\numberline {2}Fehlerbaummanalyse}{3}{chapter.2}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{Kap002}{{2}{3}{Fehlerbaummanalyse\relax }{chapter.2}{}} \@writefile{toc}{\contentsline {chapter}{\numberline {3}Quantifizierung}{5}{chapter.3}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{Kap003}{{3}{5}{Quantifizierung\relax }{chapter.3}{}} \end{filecontents} \documentclass{scrbook} \usepackage[ngerman]{babel} \usepackage{xr} \usepackage{varioref} \usepackage{hyperref} % Angabe der externen Datei (Paket xr). Befehl erwartet die Datei Testdoc.aux \externaldocument{Testdoc} % Eigener Befehl \newcommand{\Kapitel}[1]{\href{Testdoc##1}{Kapitel \vref{#1}}} \begin{document} Wie in \href{Testdoc#Kap002}{Kapitel \vref{Kap002}} beschrieben. % <--- funktioniert In \Kapitel{Kap003} aufgeführt... % <--- funktioniert aufgrund ##1 in \newcommand{\Kapitel}[1]{...} nicht. Auch \##1 funktioniert nicht... \end{document}
Nun möchte ich innerhalb meiner PDF-Datei, dass der Verweis auch verlinkt ist. Dazu nutze ich den Befehl
\href{Dateiname#Label}{TEXT}
\newcommand{\Kapitel}[1]{\href{Dateiname##1}{Kapitel \vref{#1}}}
Hat jemand eine Idee?
Gruß,
Irena