
¿Es un error de unicode-math
o hyperref
dentro 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}
me sale un error
Constante alfabética incorrecta. \section{título $\alpha$}
Respuesta1
Los marcadores sólo pueden contener texto bastante simple. Esto significa que hyperref tiene que traducir la entrada de LaTeX en algo que tenga sentido allí. Para ello, a menudo elimina o reemplaza contenido problemático. En general, hyperref es bastante bueno para al menos evitar errores en este proceso, pero no puede manejar comandos que se han dejado en un carácter:https://github.com/latex3/hyperref/issues/63. Y lamentablemente Unicode-Math hace esto en varios lugares.
Puede utilizar \texorpdfstring
para ofrecerle a hyperref una alternativa. Por ejemplo, el carácter Unicode directo U+1D6FC funcionaría con la mayoría de los lectores de PDF. Puedes ingresarlo directamente o con la ^^
notación:
\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$}{
Respuesta2
Creo que ha encontrado una deficiencia básica en la forma en que se pueden especificar los marcadores de PDF, no una deficiencia en ninguno de los unicode-math
dos.hyperref
per se.
El \texorpdfstring
dispositivo se puede utilizar para solucionar este defecto. Por ejemplo, bajo LuaLaTeX,
\section{title \texorpdfstring{$\alpha$}{$\symit{alpha}$}}
resultará en title alpha
(nota:no title α
) que aparece en los marcadores.
Aparte: Aunque la ranura x03B1
en la tabla Unicode apunta a α y la fuente CMU Serif tiene el símbolo correcto en esa ranura,
\section{title \texorpdfstring{$\alpha$}{\symbol{"03B1}}}
no funciona en absoluto, como ahora dice el marcador title "03B1
. Definitivamente esto es mucho menos satisfactorio que title alpha
, ¿no es así? (Esta es también la razón por la que opiné desde el principio que hay un problema fundamental con la forma en que se pueden formar los marcadores).
¿Cuál es la moraleja de esta historia? Tal vez, es que uno debería evitar el uso de letras griegas en modo matemático en los argumentos de los comandos que aparecen como marcadores de pdf.