10 如何将enotez中的编号改成中文的【一】、【二】、【三】等?

发布于 2024-11-10 14:05:05

利用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}

查看更多

关注者
0
被浏览
192
Sagittarius Rover
我要成为TikZ糕手/(ㄒoㄒ)/~~

一个不一定优雅的解决方式是:

\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区别,前者作用于数字,后者作用于计数器.

image.png

应该有更优雅(妥当)的修改方式, 无奈本人不善latex3也不善仔细研究文档...

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览