
unicode-math
それはまたはhyperref
のバグですか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}
エラーが発生します
不適切なアルファベット定数。\section{title $\alpha$}
答え1
ブックマークには、比較的単純なテキストしか含めることができません。つまり、hyperref は LaTeX 入力を、そのブックマークで意味を成すものに変換する必要があります。このため、問題のあるコンテンツを削除したり置き換えたりすることがよくあります。一般的に、hyperref は少なくともこのプロセスでエラーを回避するのに非常に優れていますが、char に渡されたコマンドは処理できません。https://github.com/latex3/hyperref/issues/63残念なことに、unicode-math は多くの場所でこれを行います。
を使って、\texorpdfstring
hyperref に代替手段を提供することができます。たとえば、直接 Unicode 文字 U+1D6FC は、ほとんどの PDF リーダーで動作します。直接入力することも、次の^^
表記法で入力することもできます。
\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$}{
答え2
私はあなたが遭遇したと思うのは、PDFブックマークを指定する方法の基本的な欠陥であり、どちらかの欠陥ではないと思いますunicode-math
。hyperref
それ自体。
\texorpdfstring
この欠点を回避するためにデバイスが使用される場合があります。たとえば、LuaLaTeXでは、
\section{title \texorpdfstring{$\alpha$}{$\symit{alpha}$}}
結果は次のようになりますtitle alpha
(注:ない title α
) がブックマークに表示されます。
余談x03B1
: Unicodeテーブルのスロットがαを指し、CMU Serifフォントがそのスロットに正しい記号を持っているにもかかわらず、
\section{title \texorpdfstring{$\alpha$}{\symbol{"03B1}}}
はまったく機能しません。ブックマークに と表示されるようになりましたtitle "03B1
。これは、 よりもはるかに不満足なtitle alpha
結果です。(これは、ブックマークの形成方法に根本的な問題があると私が最初に述べた理由でもあります。)
この話の教訓は何でしょうか? おそらく、PDF ブックマークとして表示されるコマンドの引数では、数式モードのギリシャ文字の使用を避けるべきだということでしょう。