Erro constante alfabético impróprio no título com grego: bug com unicode-math e hyperref em LuaLaTeX

Erro constante alfabético impróprio no título com grego: bug com unicode-math e hyperref em LuaLaTeX

É um bug de unicode-mathou hyperrefdentro 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}

Eu recebo um erro

Constante alfabética inadequada. \seção{título $\alpha$}

Responder1

os marcadores podem conter apenas texto bastante simples. Isso significa que o hyperref precisa traduzir a entrada do LaTeX em algo que faça sentido ali. Para isso, muitas vezes descarta ou substitui conteúdo problemático. Em geral, o hyperref é muito bom para pelo menos evitar erros neste processo, mas não consegue lidar com comandos que foram deixados para um char:https://github.com/latex3/hyperref/issues/63. E, infelizmente, a matemática unicode faz isso em vários lugares.

Você pode usar \texorpdfstringpara oferecer uma alternativa ao hyperref. Por exemplo, o caracter unicode direto U+1D6FC funcionaria com a maioria dos leitores de PDF. Você pode inseri-lo diretamente ou com a ^^notação:

\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$}{

Responder2

Acredito que você encontrou uma falha básica na forma como os marcadores de PDF podem ser especificados, e não uma falha em um unicode-mathou outrohyperref por si só.

O \texorpdfstringdispositivo pode ser usado para contornar essa deficiência. Por exemplo, em LuaLaTeX,

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

vai resultar emtitle alpha (nota:não title α) aparecendo nos favoritos.

Aparte: mesmo que o slot x03B1na tabela Unicode aponte para α e a fonte CMU Serif tenha o símbolo correto nesse slot,

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

não funciona, como diz o marcador agora title "03B1. Isto é definitivamente muito menos satisfatório do que title alpha, não é? (É também por isso que opinei antecipadamente que há um problema fundamental na forma como os marcadores podem ser formados.)

Qual é a moral desta história? Talvez seja necessário evitar o uso de letras gregas em modo matemático nos argumentos dos comandos que aparecem como marcadores de PDF.

informação relacionada