pdflatex 中 \label 和 \ref 中的西里尔字符

pdflatex 中 \label 和 \ref 中的西里尔字符

我想在 pdflatex 中用西里尔字母(俄语)字符书写\label和。在序言中。\ref\usepackage[russian]{babel}

我试过了\label{\detokenize{}},但是没有用。

\documentclass[a4paper,12pt]{article} 
\usepackage[utf8]{inputenc} 
\usepackage[russian]{babel} 

\begin{document}
    \section{Раздел}
    \label{\detokenize{Ссылка_на_раздел}}
     Русский текст \ref{\detokenize{Ссылка_на_раздел}}
\end{document}

答案1

如果你进行“双重去标记化”,它就会起作用:

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

\begin{document}
    \section{Раздел}
    \label{\detokenize{\detokenize{Ссылка_на_раздел}}}
     Русский текст \ref{\detokenize{Ссылка_на_раздел}}
\end{document}

在此处输入图片描述

有什么问题?使用单个 时\detokenize,标签会按原样写入.aux文件中,但当.aux读入文件时,西里尔字符不再“去标记化”,并且无法用它们形成控制序列名称。

你看,这是可以的,值得这么痛苦吗?我不这么认为。另一方面,Unicode TeX 引擎(如 XeLaTeX 和 LuaLaTeX)对标签中的这些字符没有问题。

相关内容