\circledtext命令样式设置的作用域?

发布于 2024-09-05 19:26:06
配置:Windows 10, TeXLive2024, WinEdt
编译:XeLaTeX

想要同时实现如下两个目标:

  1. 脚注编号样式为带圈数字
  2. enumerate 环境中使用带圈数字样式、且数字范围充分大

背景

对于目标2,pifont 宏包便已不适用:

  • \ding 命令的数字范围较小
  • 需调用已设置好样式的列表环境(e.g. \setlist所设置的),因此dingautolist 环境不适用

同时 \textcircled 命令的效果有莫名其妙的上移,因此也弃用。

综上,考虑采用 circledtext 宏包。

问题

circledtext 宏包手册中提到:

对于\circledtext[⟨外观选项⟩] {⟨文本⟩},通过 [⟨外观选项⟩] 设置的外观参数仅对当前命令局部有效,通过\circledtextset 命令设置的外观参数对后续所有命令有效。

然而当设置脚注标号样式后:

\renewcommand{\thefootnote}{\circledtext[resize=real,charf=\scriptsize]{\arabic{footnote}}~}

全文中由 \circledtext 命令生成的带圈数字全都改变了样式,且去掉上述脚注设置的代码,则恢复正常。

什么原因呢,如何修改?

MWE:

\documentclass{article}
\usepackage[UTF8, heading=true]{ctex}
\usepackage{lipsum, zhlipsum}

% ---------- 示例区域(导言区) ---------- %
\usepackage{circledtext}
\usepackage{enumitem}

\renewcommand{\thefootnote}{\circledtext[resize=real,charf=\scriptsize]{\arabic{footnote}}~}
% ======================================== %

\begin{document}

\tableofcontents

\section{占位}

这是占位内容。

% ---------- 示例区域(正文) ---------- %

这里要加脚注\footnote{脚注的内容}

\circledtext{1}\quad 这是示例文本

\begin{enumerate}[label=\circledtext{\arabic*}]
\item{这是示例文本}
\end{enumerate}

\circledtext{1}\quad 这是示例文本
%% ======================================== %

\end{document} 

circledtext问题.jpg

查看更多

关注者
0
被浏览
502
鱼香肉丝没有鱼先生
脾气不好,别来惹我!!!

经测试,为宏包 bug.
可以向作者提 issue.
以下是临时解决办法.
在导言区加入

\usepackage{xpatch}
\ExplSyntaxOn
  \patchcmd\__circledtext_calc_char_box_size:{\dim_gset_eq:NN \charboxwd}{\dim_set_eq:NN \charboxwd}{}{}
  \patchcmd\__circledtext_calc_char_box_size:{\dim_gset_eq:NN \charboxht}{\dim_set_eq:NN \charboxht}{}{}
\ExplSyntaxOff

image.png

1 个回答

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览