PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Symbolen in Überschriften und Hyperref



thomsen
05-05-2015, 16:50
Hallo Zusammen!

Ich stehe vor einem kleinen Problem das sich durch die Kombination von Hyperref, Glossaries und einem Symboleintrag in Überschriften ergibt und hoffe ihr könnt mir helfen.
Folgendes Beispiel:
\documentclass[a4paper,12pt]{scrartcl}
\usepackage [latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage[nonumberlist,acronym,toc,section, hyperfirst]{glossaries}%
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
\makeglossaries

\newglossaryentry{symb:Zugfestigkeit}{
name={\ensuremath{R_m}},
description={Zugfestigkeit},
sort=Rm, type=symbolslist
}

\usepackage{hyperref}

\begin{document}
\tableofcontents
\printglossary[type=symbolslist,style=long]

\section{Ein Test}
\lipsum[1-2]
\section{Eine Festigkeit ({\boldmath\gls{symb:Zugfestigkeit}})}
Ein Möglichkeit die Festigkeit (\gls{symb:Zugfestigkeit}) zu ermitteln.

\end{document}

Ich möchte einen Symboleintrag in Überschriften verwenden, dieser soll natürlich auch fett gedruckt erscheinen. Dies funktioniert soweit ganz gut, nur der Lesezeicheneintrag in der PDF-Datei stimmt nicht. Kann man diesen irgenwie korrigieren. Dort wird nämlich nicht das Symbol angezeigt sondern in diesem Fall "symb:Zugfestigkeit".
Als Warnung bei der PDF-Erstellung erscheint die Meldung "Token not allowed in a PDF string".
Ich habe im Internet schon gesucht, aber noch keine passende Lösung gefunden.
Habt ihr eine Idee wie man das einfach lösen kann?
Vielen Dank.

Gruß,
Thomsen

Donalduck
05-05-2015, 18:37
Du kannst `texorpdfstring` verwenden:


\documentclass[a4paper,12pt]{scrartcl}
\usepackage [latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage[nonumberlist,acronym,toc,section, hyperfirst]{glossaries}%
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
\makeglossaries

\newglossaryentry{symb:Zugfestigkeit}{
name={\ensuremath{R_m}},
description={Zugfestigkeit},
sort=Rm, type=symbolslist
}

\usepackage{hyperref}

\begin{document}
\tableofcontents
\printglossary[type=symbolslist,style=long]

\section{Ein Test}
\lipsum[1-2]
\section{Eine Festigkeit (\texorpdfstring{{\boldmath\gls{symb:Zugfestigkeit }}}{Rm})}
Ein Möglichkeit die Festigkeit (\gls{symb:Zugfestigkeit}) zu ermitteln.

\end{document}

thomsen
06-05-2015, 08:56
Vielen Dank für deine schnelle Antwort.
Das funktioniert soweit ganz gut. Gibt es aber auch die Möglichkeit, dass im Lesezeichen der PDF-Datei das Symbol mit tiefgestellten Zeichen dargestellt wird? In dem Fall also das "m" tiefgestellt, oder ist das ohnehin nicht möglich?

Danke.

klops
06-05-2015, 11:16
Man kann Unicode-Zeichen in Bookmarks verwenden (aber keinen LaTeX-Code). Mit LuaLaTeX oder XeLaTeX funktioniert daher:
\documentclass[a4paper,12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage[nonumberlist,acronym,toc,section, hyperfirst]{glossaries}%
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
\makeglossaries

\newglossaryentry{symb:Zugfestigkeit}{
name={\ensuremath{R_m}},
description={Zugfestigkeit},
sort=Rm, type=symbolslist
}

\usepackage[pdfencoding=auto]{hyperref}

\begin{document}
\tableofcontents
\printglossary[type=symbolslist,style=long]

\section{Ein Test}
\lipsum[1-2]
\section{Eine Festigkeit (\texorpdfstring{{\boldmath\gls{symb:Zugfestigkeit }}}{Rₘ })}
Ein Möglichkeit die Festigkeit (\gls{symb:Zugfestigkeit}) zu ermitteln.

\end{document}

thomsen
06-05-2015, 14:46
Danke für deinen Hinweis. Leider arbeite ich gerade an einem sehr umfangreichen Projekt, welches in "latin1" codiert ist. Daher müsste ich mein komplettes Projekt abändern, dieser Aufwand ist mir im Moment zu groß.
Gibt es noch eine andere (einfache) Möglichkeit?

u_fischer
06-05-2015, 15:41
Du kannst es hiermit versuchen. Aber ich sehe im Adobe Reader (genauso wie bei dem unicode-Beispiel von Klops) nur ein Kästchen statt des m. D.h. man kann sich nicht darauf verlassen, dass die Schrift des Adobe das Zeichen auch hat.
\documentclass[a4paper,12pt]{scrartcl}
\usepackage [utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage[pdfencoding=auto,psdextra]{hyperref}[2012/08/13]

\begin{document}
\tableofcontents
\section{Eine Festigkeit (\texorpdfstring{R\textsubscript{m}}{R\minferior })}
\end{document}

thomsen
12-05-2015, 09:00
Danke Ulrike. Leider funktioniert das auch nicht wie gewünscht.
Dann bleibt mir vermutlich nur die Möglichkeit die Codierung zu änderen oder den kleinen Nachteil zu akzeptieren, dass das Zeichen eben nicht tiefgestellt ist. Mal sehen wozu ich mich entscheide.
Vielen Dank für eure Mühe.

Gruß,
Thomsen

nixversteh
12-05-2015, 10:36
Hallo Thomsen,

auf meinem System erscheint mit deinem Code diese PDF, der Link klappt ebenfalls

Gruß

Martin

The EYE
12-05-2015, 10:57
auf meinem System erscheint mit deinem Code diese PDF, der Link klappt ebenfalls

Das ist ja interessant! Kannst du mal Details zu deinem System posten? Vielleicht lässt sich die Ursache so eingrenzen.

Gruß Max

u_fischer
12-05-2015, 10:59
Ich glaube nicht, dass es hilft die Eingabekodierung zu ändern. *Wenn* man ein tiefgestelltes m in die Bookmarks bekommen kann, dann muss es einen Weg mit jeder Eingabekodierung geben. \textxinferior und \textiinferior z.B. funktioniert bei mir ohne Probleme, nur das m sperrt sich. Und ein Wechsel zu utf8 und luatex ändert daran nichts.

nixversteh
12-05-2015, 11:01
Das ist ja interessant! Kannst du mal Details zu deinem System posten? Vielleicht lässt sich die Ursache so eingrenzen.

Gruß Max

Hallo Max,

ich verwende Linux Mint 17.1 (Rebecca) 64bit, Desktop Mate, Texlive 2015 Pretest und als Editor Texstudio 2.9.4, bzw eine makefile
Es erscheint zwar eine Warnung,
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\gls' on input line 28. diese ändert aber nichts am Aussehen der PDF.
Gruß

Martin

u_fischer
12-05-2015, 11:09
Das ist ja interessant! Kannst du mal Details zu deinem System posten? Vielleicht lässt sich die Ursache so eingrenzen.


Die Ursache ist doch klar: Martin hat das (fehlerhafte) Beispiel von Thomsen kompiliert, wo \texorpdfstring fehlt.

nixversteh
12-05-2015, 11:35
Die Ursache ist doch klar: Martin hat das (fehlerhafte) Beispiel von Thomsen kompiliert, wo \texorpdfstring fehlt.

Hallo Ulrike,

du hast recht, habe leider die Lesezeichen nicht beachtet.

Gruß

Martin

The EYE
12-05-2015, 11:50
Oh, übersehen. Wenn es das einzige Problem ist und es sich um eine einmalige "Sache" handelt, könntest du alternativ im finalen Dokument das Lesezeichen mittels eines anderen Programms ändern. Das ist natürlich keine schöne Lösung...

Gruß Max

nixversteh
12-05-2015, 14:54
Hallo folks,

ich kann mich erinnern, dass Herbert Voß etwa vor fünf, sechs Jahren hier geschrieben hat, dass es NICHT machbar sei, soetwas zu stemmen.

Gruß

Martin

PS.: Bin im Garten und habe keine Zeit den thread zu suchen

The EYE
12-05-2015, 15:41
Ich habe den Thread gesucht und gefunden: Mathematische Symbole in Überschrift verwenden ? (http://www.mrunix.de/forums/showthread.php?61073-Mathematische-Symbole-in-Überschrift-verwenden&highlight=lesezeichen)

Der Thread ist sehr kurz, der Vollständigkeit halber aber hier nochmal die Erkentnisse:

Warnung wurde auch hier mittels \texorpdfstring behoben
Das Symbol im Lesezeichen zu platzieren ist nicht möglich (wobei ich mich noch Frage ob es mit LaTeX nicht möglich ist oder überhaupt nicht)



[...] Es ist also nicht möglich, dass Lesezeichen Symbole enthalten ? [...]

nein

Herbert

Thread ist übrigens von 2008. Allerdings nioch vor meiner LaTeX-Zeit :D

Gruß Max

klops
12-05-2015, 16:59
Wie ich bereits geschrieben habe: Unicode-Zeichen sind möglich. Wie Ulrike richtig bemerkt hat, nützt das aber nur etwas, wenn der vom PDF-Viewer für die Lesezeichen verwendete Zeichensatz diese auch bietet. TeX-Symbolfonts sind hingegen nicht möglich. Deshalb hatte ich auch zu LuaLaTeX oder XeLaTeX geraten. Dann kann man beispielsweise auch unicode-math (http://www.ctan.org/pkg/unicode-math) verwenden, das ebenfalls auf Unicode-Mathezeichen setzt.