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...
313
Akzeptiert: 0%

1

Könntest Du bitte ein Minimalbeispiel einfügen? Also ein möglichst kurzes, aber komplettes Dokument, von \documentclass{...} bis zu \end{document}, was das Problem zeigt. Das vereinfacht die Bearbeitung erheblich und ist meist eine Garantie für eine Lösung. Das gilt umso mehr, wenn Du auf korrektes Markdown (alternative Erklärungen finden sich über das Fragezeichen rechts oben in der Toolbar über dem Eingabefeld für Fragen/Antworten) bei der Formatierung Deines Beitrags achtest.

(01 Aug, 12:31) saputello

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
1

Bitte wichtige Informationen wie das Minimalbeispiel nicht in einem Kommentar verstecken, sondern in die Frage einarbeiten! Du kannst zu diesem Zweck die Frage jederzeit bearbeiten.

(01 Aug, 13:29) saputello

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

(01 Aug, 14:07) Latexanfänge...
Ergebnis 5 von 9 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.6k73854

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
20.6k53458

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: 179 Mal

Zuletzt aktualisiert: 10 Aug, 14:34