Archiv verlassen und diese Seite im Standarddesign anzeigen : \verbatim und \texorpdfstring gemeinsam?
Guten Tag.
Kennt jemand eine Möglichkeit, Formeln in PDF-Lesezeichen auf einfache Weise in LaTeX Code darzustellen? Mir schwebt so etwas vor wie
\section{Wir berechnen \texorpdfstring
{\int_{0}^\infty x^2\,dx}
{\verb+\int_{0}^\infty x^2\,dx+}}
Die Idee ist also, den original LaTeX-Code, den ich zum Erzeugen der Überschrift verwende, gleichzeitig in das PDF-Lesezeichen zu schreiben.
Vielen Dank für Eure Hilfe,
Simon
cgnieder
30-09-2013, 17:57
Verbatim funktioniert nicht in Argumenten von Befehlen. Du müsstest den Fehler
! LaTeX Error: \verb illegal in command argument.
erhalten.
Ich würde das Problem umgehen:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
% define how commands act in pdf strings:
\pdfstringdefDisableCommands{%
\def\code#1{#1}%
\def\^{\textasciicircum}%
}
% define \cs{name} to print `\name':
\newcommand*\code[1]{\texttt{#1}}
\newcommand*\cs[1]{\code{\textbackslash#1}}
\begin{document}
\section{Wir berechnen \texorpdfstring
{$\int_{0}^\infty x^2\,dx$}
{\code{\cs{int}\_\{0\}\^\cs{infty} x\^2 dx}}}
\end{document}
http://www.mrunix.de/forums/attachment.php?attachmentid=5864&stc=1&d=1380556620
Grüße
Lieber Clemens.
Vielen Dank für den tollen Tipp. In leichter Variation schreibe ich nun:
\pdfstringdefDisableCommands{%
\def\\{\textbackslash}
\def\{{\textbraceleft}
\def\}{\textbraceright}
\def\_{\textunderscore}
\def\^{\textasciicircum}
}
\newcommand\bookmark[2]{\texorpdfstring{#1}{\$#2\$}}
\section{Wir berechnen \bookmark{$\int_{0}^\infty x^2\,dx$}
{\\int\_\{0\}^\\infty x\^2\\,dx}
Vielen Dank und Gruß,
Simon
cgnieder
30-09-2013, 19:52
Kleine Anmerkung: Du solltest die Zeilenenden zur Sicherheit mit % verstecken. Außerdem scheinen Deine Definitionen von \{, \} und \_ überflüssig.
Im LaTeX Kernel findest Du
\DeclareRobustCommand{\{}{\ifmmode\lbrace\else\tex tbraceleft\fi}
\DeclareRobustCommand{\}}{\ifmmode\rbrace\else\tex tbraceright\fi}
...
\DeclareRobustCommand{\_}{%
\ifmmode\nfss@text{\textunderscore}\else\textunder score\fi}
Folgendes sollte reichen:
\pdfstringdefDisableCommands{%
\def\\{\textbackslash}%
\def\^{\textasciicircum}%
}
Du solltest übrigens im Kopf behalten, dass die Neudefinitionen in allen pdfstrings Anwendung finden. Nicht, dass Du durch sowas überrascht wirst:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\pdfstringdefDisableCommands{%
\def\\{\textbackslash}%
\def\^{\textasciicircum}%
}
\begin{document}
\section{A\\B}
\end{document}
Grüße
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.