Unsachgemäßer alphabetischer Konstantenfehler im Titel mit Griechisch: Fehler mit Unicode-Mathematik und Hyperref in LuaLaTeX

Unsachgemäßer alphabetischer Konstantenfehler im Titel mit Griechisch: Fehler mit Unicode-Mathematik und Hyperref in LuaLaTeX

Handelt es sich um einen Fehler von unicode-mathoder hyperrefin LuaLaTeX?

    % !TeX program = lualatex                                   
    % !TeX encoding = utf8
    
    \documentclass[14pt]{extarticle}
    
    \usepackage{fontspec}
    \usepackage{amsmath}
    \setsansfont{CMU Sans Serif}
    \setmainfont{CMU Serif}
    \setmonofont{CMU Typewriter Text}
    \usepackage{unicode-math} % this one DOES NOT cause error without hyperref
    \usepackage[english]{babel}
    \usepackage{hyperref} % this one DOES NOT cause error without unicode-math
    
    
    \begin{document}
    
    \section{title $\alpha$}
    
    \end{document}

Ich erhalte eine Fehlermeldung

Unsachgemäße alphabetische Konstante. \section{title $\alpha$}

Antwort1

Lesezeichen können nur relativ einfachen Text enthalten. Das bedeutet, dass hyperref LaTeX-Eingaben in etwas Sinnvolles übersetzen muss. Dazu werden häufig problematische Inhalte gelöscht oder ersetzt. Generell ist hyperref recht gut darin, Fehler in diesem Prozess zumindest zu vermeiden, aber es kann keine Befehle verarbeiten, die an ein Zeichen übergeben wurden:https://github.com/latex3/hyperref/issues/63. Und leider tut Unicode-Mathematik dies an mehreren Stellen.

Sie können \texorpdfstringhyperref eine Alternative anbieten. Beispielsweise würde das direkte Unicode-Zeichen U+1D6FC mit den meisten PDF-Readern funktionieren. Sie können es direkt oder mit der ^^Notation eingeben:

\documentclass[14pt]{extarticle}

    \usepackage{fontspec}
    \usepackage{amsmath}
    \setsansfont{CMU Sans Serif}
    \setmainfont{CMU Serif}
    \setmonofont{CMU Typewriter Text}
    \usepackage{unicode-math} % 
    \usepackage[english]{babel}
    \usepackage{hyperref} % 


    \begin{document}

    \section{title \texorpdfstring{$\alpha$}{

Antwort2

Ich glaube, Sie haben einen grundlegenden Mangel in der Art und Weise festgestellt, wie PDF-Lesezeichen angegeben werden können, und nicht einen Mangel in entweder unicode-mathoderhyperref an sich.

Das \texorpdfstringGerät kann verwendet werden, um dieses Manko zu umgehen. Unter LuaLaTeX beispielsweise

\section{title \texorpdfstring{$\alpha$}{$\symit{alpha}$}}

wird dazu führen title alpha(Anmerkung:nicht title α) wird in den Lesezeichen angezeigt.

Beiseite: Obwohl der Slot x03B1in der Unicode-Tabelle auf α zeigt und die Schriftart CMU Serif das richtige Symbol in diesem Slot hat,

\section{title \texorpdfstring{$\alpha$}{\symbol{"03B1}}}

funktioniert überhaupt nicht, da das Lesezeichen jetzt lautet title "03B1. Das ist definitiv weit weniger zufriedenstellend als title alpha, oder? (Aus diesem Grund habe ich auch von Anfang an geäußert, dass es ein grundsätzliches Problem mit der Art und Weise gibt, wie Lesezeichen erstellt werden können.)

Was ist die Moral dieser Geschichte? Vielleicht, dass man die Verwendung griechischer Buchstaben im mathematischen Modus in den Argumenten von Befehlen vermeiden sollte, die als PDF-Lesezeichen angezeigt werden.

verwandte Informationen