我正在尝试写关于数字和符号的使用。作为一个例子,我想用中文/日文符号来表示乘法系统。我想出了一个包,zhnumber
它对 很好用\zhdigits
,但对 不行\zhnumber
。我从文档中复制了示例。我仍然收到错误:Undefined control sequence
。有人可以帮忙吗?字体或其他包的组合有问题吗?我使用的是 Mac
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[norsk]{babel}
\usepackage[T1]{fontenc}
\usepackage{parskip}
\usepackage{xeCJK}
\setCJKmainfont{STSong}
\usepackage{zhnumber}
\zhnumsetup{null,style=Traditional}
\begin{document}
\zhdigits{5} \\
\zhnumber{10}
\end{document}
答案1
你没有确切地说出你得到的未定义的控制序列是什么,但我得到了错误
! Undefined control sequence.
<argument> \__int_get_sign:n
{10}\c_one
l.13 \zhnumber{10}
使用你的例子或更短的例子
\documentclass{article}
\usepackage{zhnumber}
\begin{document}
\zhdigits{5}
\end{document}
该zhnumber
包正在使用 中的内部命令expl3
,但实际上不应该使用。该内部命令已被删除,这属于 LaTeX3 团队使用内部命令可以执行的操作范围。因此,这是一个错误zhnumber
,应报告给维护者。
(查看代码时,我注意到该软件包中还存在一些其他内部问题。我将在今天晚些时候向作者提出这些问题。)
答案2
这个错误在 的新版本 (v2.0) 中已修复zhnumber
。我已将其提交给 CTAN。它也将在 TeX Live 中更新。
答案3
在新版本zhnumber
发布之前,您可以使用这个快速(且肮脏的)修复程序:
\documentclass[UTF8]{ctexart}
\usepackage[encoding=UTF8]{zhnumber}% v1.6 2012/11/23
% Quick fix
\ExplSyntaxOn
\cs_set_nopar:Nn \zhnum_integer:n
{
\bool_set_false:N \my_isneg_bool
\my_parse_signs:nw #1 \q_stop
\zhnum_parse_number:f { \zhnum_trim_zeros:f { \zhnum_erase_separator:n {#1} } }
}
\bool_new:N \my_isneg_bool
\cs_new_nopar:Npn \my_parse_signs:nw #1 #2 \q_stop
{
\tl_case:NnF #1
{
+ { \my_parse_signs:nw #2 \q_stop }
- {
\bool_if:NTF \my_isneg_bool
{ \bool_set_false:N \my_isneg_bool }
{ \bool_set_true:N \my_isneg_bool }
\my_parse_signs:nw #2 \q_stop
}
}
{
\bool_if:NT \my_isneg_bool { \c_zhnum_minus_tl }
}
}
\ExplSyntaxOff
\begin{document}
\zhnumber{-1234567890123}
\end{document}