我想在 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)对标签中的这些字符没有问题。