抱歉,这是一个基本问题。我不知道 \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}