zhnumber 包的问题

zhnumber 包的问题

我正在尝试写关于数字和符号的使用。作为一个例子,我想用中文/日文符号来表示乘法系统。我想出了一个包,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}

相关内容