利用enotez在每一段末尾生成注释,正文中的编号可以用zhnumber转换成中文,可是注释中的编号不能同步改变。利用zhnumber改变list样式中的number选项会报错。按照手册重新定义
\renewcommand\enmark[1]{【\zhnumber #1】}
同样报错。代码如下所示:
\documentclass[10pt,a4paper]{article}
\usepackage{enotez}
\setenotez{list-name = {\small\noindent【注释】},
mark-cs = {\mymarkcs}}
\newcommand{\mymarkcs}[1]{\textsuperscript{【\zhnumber{#1}】}}
\DeclareInstance{enotez-list}{custom}{paragraph}
{
notes-sep = 0pt,
format = \normalfont ,
number = 【\zhnumber{#1}】
}
\usepackage{ctex}
\begin{document}
This is\endnote{With an endnote.} some text.\endnote{With two endnotes.}
\printendnotes[custom]
\end{document}
一个不一定优雅的解决方式是:
\documentclass[10pt,a4paper]{ctexart}
\usepackage{enotez}
\setenotez{
list-name = {\small\noindent【注释】},
}
\ExplSyntaxOn
\cs_set:Npn \theendnote {【\zhnum{endnote}】}
\ExplSyntaxOff
\begin{document}
This is\endnote{With an endnote.} some text.\endnote{With two endnotes.}
\printendnotes
\end{document}
这是由于在enotez.sty
中如下定义了l3keys-coices
% Line 150
counter-format .choice: ,
counter-format / arabic .code:n = \cs_set:Npn \theendnote {\arabic{endnote}} ,
counter-format / alph .code:n = \cs_set:Npn \theendnote {\alph{endnote}} ,
counter-format / Alph .code:n = \cs_set:Npn \theendnote {\Alph{endnote}} ,
counter-format / roman .code:n = \cs_set:Npn \theendnote {\roman{endnote}} ,
counter-format / Roman .code:n = \cs_set:Npn \theendnote {\Roman{endnote}} ,
counter-format / symbols .code:n = \cs_set:Npn \theendnote {\fnsymbol{endnote}} ,
另外要注意\zhnumber
和\zhnum
区别,前者作用于数字,后者作用于计数器.
应该有更优雅(妥当)的修改方式, 无奈本人不善latex3
也不善仔细研究文档...