\label 写入哪里?

\label 写入哪里?

抱歉,这是一个基本问题。我不知道 \label 将数据写入哪里?

在我之前安装的 MikTex 2.9 中,我可以使用 \CJKnumber{\ref{X}}引用之前定义的数字 X 并将\CJKnumber该数字更改为中文字符。但是现在的安装不能。它说该数字\ref{X}未定义。因此我想检查它是否\ref{X}真的存在。

答案1

无法工作的原因\CJKnumber{\ref{X}}如下。虽然\CJKnumber期望其参数是一个数字,但\ref宏不可扩展;因此,\CJKnumber没有收到要处理的数字。(行话警报:宏的“可扩展性”和“扩展”是 TeX 编程语言的核心。)

有什么补救措施?我建议你使用引用计数包及其\getrefnumber宏;与此相反\ref{<some_label>}\getrefnumber{<some_label>} 可扩展。结果是它\CJKnumber{\getrefnumber{<some_label>}}按预期工作。

在此处输入图片描述

% !TEX TS-program = xelatex
\documentclass{article} % or some other suitable document class
\usepackage{xeCJK,CJKnumb}
\setCJKmainfont{SimSun}
\usepackage{refcount} % for \getrefnumber macro

\begin{document}
\addtocounter{equation}{554} % just for this example
\refstepcounter{equation}\label{eq:something}

\ref{eq:something}
\CJKnumber{\getrefnumber{eq:something}}

\end{document}

相关内容