我一直在思考在 PDFTeX 引擎的命令名称中使用西里尔字符。到目前为止,在我看来,如果我继续使用 8 位编码并将类别代码 11 分配给除ё
/之外的所有西里尔字母Ё
,这将是一个可行的解决方案,但用 创建的书签hyperref
将被错误编码。
修复使用 创建的 PDF 书签的解决方法hyperref
是,暂时将分段命令的类别代码设置回 13,并且不在分段命令中使用带有西里尔字母的命令,或者使用\texorpdfstring
,如下所示:
\documentclass{article}
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}
\usepackage[unicode]{hyperref}
\catcode`л=11\relax
\catcode`п=11\relax
\catcode`к=11\relax
\newcommand{\лк}{«}
\newcommand{\пк}{»}
\begin{document}
{\catcode`л=13\relax
\section{Раздел «Первый»}}
{\catcode`л=13\relax
\gdef\pdfbookmarkname{Раздел «Второй»}}
\section{\texorpdfstring{Раздел \лк Второй\пк}{\pdfbookmarkname}}
\end{document}
此文档在编译时已正确编码书签。
ё
除/之外,为整个西里尔字母设置类别代码的有效方法是什么Ё
?