Hallo, ich will in meinem LaTeX-Dokument in der section{..} römische Zahlen schreiben. Dazu habe ich das package romanbar importiert und habe dann in der section folgendes geschrieben: subsection{.....Romannum{5}} Es kommt dann folgende Fehlermeldung: Token not allowed in a PDF string (PDFDocEncoding):(hyperref) removing \hbox' Token not allowed in a PDF string (PDFDocEncoding):(hyperref) removing@tempcnta' Token not allowed in a PDF string (PDFDocEncoding):(hyperref) removing `z@'

Was muss ich da im Code ändern?

gefragt 01 Aug, 12:14

Latexanf%C3%A4nger1235's gravatar image

Latexanfänge...
293
Akzeptiert: 0%

Vielleicht hilft ja ein \protect?

(01 Aug, 12:32) Murmeltier


\documentclass[parskip=half, DIV=calc, 12pt, captions=tableheading]{scrartcl}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\usepackage[autostyle=true,german=quotes]{csquotes}

\usepackage[backend=biber]{biblatex}                   
\addbibresource{quelle1.bib}
\usepackage{romanbar}
\usepackage{hyperref} 
\begin{document}
\section{....}
adsasdad

\subsection{...\Roamnnum{12}...}
\end{document}

So sieht das aus.

(01 Aug, 12:51) Latexanfänge...

In der Tat, wenn man \subsection{...\Roamnnum{12}...} durch \subsection{...\protect\Romannum{12}...} ersetzt, läuft es durch (mit xelatex).

(01 Aug, 13:00) Murmeltier

Danke ich muss aber lualatex kompilieren?

(01 Aug, 13:01) Latexanfänge...

Das geht natürlich auch, nur pdflatex geht nicht.

(01 Aug, 13:26) Murmeltier

Aso tut mir leid. Soll ich dann die Warnung einfach ignorieren?

(01 Aug, 14:07) Latexanfänge...
Ergebnis 5 von 6 Alle anzeigen

Wenn Du auf die Lesezeichen verzichten kannst, dann kannst Du bookmarks=false setzen:

Öffne in Overleaf
\documentclass[parskip=half, DIV=calc, 12pt, captions=tableheading]{scrartcl}

\usepackage{romanbar}
\usepackage[bookmarks=false]{hyperref}
\begin{document}
\section{....}
adsasdad
\subsection{...\Romannum{12}...}
\end{document}

Falls Du nicht auf die Lesezeichen verzichten willst, es aber in Ordung ist wenn in diesen die arabische Zahl auftaucht, dann geht

Öffne in Overleaf
\documentclass[parskip=half, DIV=calc, 12pt, captions=tableheading]{scrartcl}

\usepackage{romanbar}
\usepackage{hyperref}

\pdfstringdefDisableCommands{%
    \def\Romannum#1#{}%
}

\begin{document}
\section{....}
adsasdad
\subsection{...\Romannum{12}...}
\end{document}

Result:

alt text

Permanenter link

beantwortet 02 Aug, 07:45

esdd's gravatar image

esdd
16.8k83854

Danke hat alles geklappt. Vielen Dank:)

(02 Aug, 08:34) Latexanfänge...
1

Oder man versucht es mit einem expandierbaren Makro: https://tex.stackexchange.com/q/443967/35864

(10 Aug, 06:43) moewe

Wie von moewe in einem Kommentar zu esdd's Antwort angedeutet, ist das Problem von \Romannum aus dem Paket romanbar, dass es nicht wirklich voll expandierbar ist. Dazu enthält das Ergebnis dann einige Anweisungen, die in Bookmarks nicht erlaubt sind. Wenn die Zahl, die als römische Zahl ausgegeben werden soll, garantiert größer als Null ist, kann man einfach auf \@Roman zurück greifen. Da es sich hierbei um eine interne Anweisung handelt, sollte man diese aber zunächst auf Benutzerebene verfügbar machen. Das könnte dann so aussehen:

Öffne in Overleaf
\documentclass[parskip=half, DIV=calc, 12pt, captions=tableheading]{scrartcl}

\usepackage{hyperref}

\makeatletter
\newcommand*{\RomanNum}[1]{\@Roman{#1}}
\makeatother

\begin{document}
\section{....}
adsasdad
\subsection{...\RomanNum{12}...}
\end{document}

Hinweis: Bei Verwendung von Overleaf, erhält man dabei eine kleine römische Zahl in den Bookmarks:

Lesezeichen und Überschrift mit Overleaf

Bei Verwendung einer aktuellen LaTeX-Distribution erhält man stattdessen korrekt eine große römische Zahl auch in den Bookmarks:

Lesezeichen und Überschrift mit aktuellen LaTeX

Sollen auch negative Zahlen und die 0 wie von \Romannum (der Anweisung von Paket romanbar) verarbeitet werden können, dann braucht man einen zusätzlichen Test:

Öffne in Overleaf
\documentclass[parskip=half, DIV=calc, 12pt, captions=tableheading]{scrartcl}

\usepackage{hyperref}

\makeatletter
\newcommand*{\RomanNum}[1]{\ifnum #1=\z@ 0\else\ifnum #1<\z@-\@Roman{-#1}\else\@Roman{#1}\fi\fi}
\makeatother

\begin{document}
\section{....}
adsasdad
\subsection{...\RomanNum{12}...\RomanNum{-4}...\RomanNum{0}}
\end{document}

Einzige Unterschied zu \Romannum von romanbar bleibt dann noch, dass bei Angabe von etwas anderem als einer Zahl von \Romannum eine sinnvollere Fehlermeldung ausgegeben wird.

Permanenter link
Dieser Antwort ist "Community-Wiki" markiert.

beantwortet 10 Aug, 14:22

saputello's gravatar image

saputello
10.0k53458

bearbeitet 10 Aug, 14:34

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×7
×1

Frage gestellt: 01 Aug, 12:14

Frage wurde angeschaut: 355 Mal

Zuletzt aktualisiert: 10 Aug, 14:34