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 '18, 18:14

Latexanf%C3%A4nger1235's gravatar image

Latexanfänge...
291610
Akzeptiert-Rate: 0%

Vielleicht hilft ja ein \protect?

(01 Aug '18, 18:32) Community


\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 '18, 18: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 '18, 19:00) Community

Danke ich muss aber lualatex kompilieren?

(01 Aug '18, 19:01) Latexanfänge...

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

(01 Aug '18, 19:26) Community

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

(01 Aug '18, 20:07) Latexanfänge...
Ergebnis 5 von 6 show 1 more comments

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 '18, 20:22

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 10 Aug '18, 20:34

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 '18, 13:45

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Danke hat alles geklappt. Vielen Dank:)

(02 Aug '18, 14:34) Latexanfänge...
1

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

(10 Aug '18, 12:43) moewe
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×8
×2

gestellte Frage: 01 Aug '18, 18:14

Frage wurde gesehen: 9,703 Mal

zuletzt geändert: 10 Aug '18, 20:34