介绍
这里我们收集了在文本和脚注中用圆圈数字列举脚注的不同解决方案,并指定了其优点和缺点。
其实中文的脚注都是用带圆圈的数字来枚举的,中文中每个带圆圈的数字的宽度都是1em,相当于每个汉字的宽度。总之,欢迎提出任何解决方案。
MWE 如下。
\documentclass{article}
\begin{document}
\par Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
Now we test the footnote numbers with two digits\footnote{Test}.
\end{document}
概括
到目前为止五以下列出的解决方案各有优缺点。
答案1
更新:
与OP讨论后,我有一个更新的解决方案,仍然使用TikZ
。
将此内容添加到序言中:
\newcommand{\fnrad}{.16}
\usepackage{scrextend,tikz,scalerel}
\newcommand\circled[2][\fnrad]{\kern.5pt\scalerel*{\tikz{\useasboundingbox (-#1,-#1) rectangle (#1,#1);\node{#2};\draw circle[radius=#1];}}{X}\kern.5pt}
\deffootnotemark{\textsuperscript{\smash{\circled{\thefootnotemark}}}}
该命令\circled
用于scalerel
生成一个与大写字母高度相同的带圆圈的数字X
,如果X
大小发生变化(例如,标题、上标等\large
),则会进行调整。
可以调整全局常量\fnrad
(当前设置为.16
)以在数字周围创建更多空间,而无需更改圆圈的大小。 值越大,空间越大。 如果脚注出现在标题等特殊位置,也可以使用可选参数调整该间距:
\large 1\circled{1}\circled[.18]{1}
优点:
- 不会影响文本或脚注的行距。
- 使用原始字体。
- 适应字体变化和大小变化。
缺点:
- 正在使用 Ti钾Z 有缺点吗?
旧解决方案:
将此内容添加到序言中:
\usepackage{scrextend,tikz}
\newcommand\circled[1]{\tikz[baseline]{\node[anchor=base,rounded corners=.375em,draw,inner sep=1pt] {#1};}}
\deffootnotemark{\textsuperscript{\smash{\circled{\thefootnotemark}}}}
优点:简单。不影响文本或脚注中的行距。使用原始字体。
缺点:用途TikZ
(这是缺点吗?)。可能需要调整rounded corners
不同的字体。2 位数字用椭圆表示。
评论
- 这
scrextend
包装e 用于使其他包能够使用KOMA 脚本。 - 更多关于
smash
命令的更多信息可以在这里阅读:\smash 起什么作用?它的文档记录在哪里?。
答案2
一种方法是TikZ
使用预定义的 Unicode 字形来表示带圆圈的数字: ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩。不过,字体支持各不相同,因此必须小心使用真正支持字形的字体。我在我的示例中使用了 Arial Unicode(由于使用了 ,因此fontspec
也需要XeLaTeX
或LuaLaTeX
。)
\documentclass{article}
\usepackage{fontspec}
% Make sure your font supports circled numbers (U+24EA .. U+32BF)
\setmainfont{ArialUni.ttf}
\makeatletter
\newcommand*{\myfootnote}[1]{% Redefine footnote symbols:
\ensuremath{%
\ifcase#1% 0
\or ① \or ② \or ③ \or ④ \or ⑤%
\or ⑥ \or ⑦ \or ⑧ \or ⑨ \or ⑩%
% Toying with Chinese circled numbers (Ideographs ≥ U+3280)
% \or ㊀ \or ㊁ \or ㊂ \or ㊃ \or ㊄
% \or ㊅ \or ㊆ \or ㊇ \or ㊈ \or ㊉
\or ⑪ \or ⑫ \or ⑬ \or ⑭ \or ⑮%
\or ⑯ \or ⑰ \or ⑱ \or ⑲ \or ⑳%
\or ㉑ \or ㉒ \or ㉓ \or ㉔ \or ㉕%
% can be extended as needed for up to ㊿
\else \@ctrerr%
\fi
}%
}
\makeatother
% Redefine \footnote command:
\renewcommand*{\thefootnote}{\myfootnote{\value{footnote}}}
\begin{document}
Now we test the single-digit footnote numbers.\footnote{Test Nr.\,1}\par
Now we test the single-digit footnote numbers.\footnote{Test Nr.\,2}\par
Now we test the single-digit footnote numbers.\footnote{Test Nr.\,3}\par
\setcounter{footnote}{9}% Skip a few footnotes
\vspace{1em}% Add some vertical space
Now we test footnote numbers with two digits.\footnote{Test Nr.\,10}\par
Now we test footnote numbers with two digits.\footnote{Test Nr.\,11}\par
Now we test footnote numbers with two digits.\footnote{Test Nr.\,12}\par
\end{document}
虽然我在例子中使用了 ① .. ㉕,但任意符号也可以起作用。
附录:如果我们需要同时支持\usepackage[no-math]{fontspec}
中文字符,则以下方法可能有效:
\documentclass{article}
\usepackage[no-math]{fontspec}
\setmainfont{ArialUni.ttf}
\usepackage{xeCJK}
\setCJKmainfont{SimHei.ttf}
\makeatletter
\newcommand*{\myfootnote}[1]{% Redefine footnote symbols:
\ifcase#1% 0
\or ① \or ② \or ③ \or ④ \or ⑤%
\or ⑥ \or ⑦ \or ⑧ \or ⑨ \or ⑩%
\or ⑪ \or ⑫ \or ⑬ \or ⑭ \or ⑮%
\or ⑯ \or ⑰ \or ⑱ \or ⑲ \or ⑳%
\or ㉑ \or ㉒ \or ㉓ \or ㉔ \or ㉕%
\else \@ctrerr%
\fi
}
\makeatother
% Redefine \footnote command:
\renewcommand*{\thefootnote}{\myfootnote{\value{footnote}}}
\begin{document}
你好,这是一个测试文档。\footnote{Test Nr.\,1}\par
Now we test the single-digit footnote numbers.\footnote{Test Nr.\,2}\par
\setcounter{footnote}{9}% Skip a few footnotes
\vspace{1em}% Add some vertical space
Now we test footnote numbers with two digits.\footnote{Test Nr.\,10}\par
\end{document}
(它使用标准article
类而不是ctexart
,这可能是或可能不可接受的。)
答案3
这里我给出了三种解决方案:第一种方案出现于2011年6月,是2022年4月第二和第三个方案出现之前的最佳选择;第二和第三个方案是该tikz
软件包对通常解决方案的改进版本。
1. 按pifont
包装
- 致谢:@Leo Liu (参见链接其中解决方案首先出现)
- 推荐指数:★★★★
- 优点: (1)用带圆圈的罗马数字或无衬线数字枚举脚注,外观漂亮,大小合适;(2)您可以将文件编译为、、、、
LaTeX
等格式。PDFLaTeX
XeTeX
XeLaTeX
LuaLaTeX
- 缺点:(1)数字字体不是计算机现代系列的,或者不能和你使用的字体相同;(2)数字不能大于10,否则显示效果会不一样。
在如下第二、第三种方案出现之前,这也许是目前最流行的方案,因为一页的脚注数量一般不会超过10个。其代码和测试输出如下。
\documentclass{article}
\usepackage{pifont}%for circled numbers
%%%enumerate footnotes with circled numbers%%%%%%
\renewcommand\thefootnote{\ding{\numexpr171+\value{footnote}}}%roman
%\renewcommand\thefootnote{\ding{\numexpr191+\value{footnote}}}%sans serif
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\par Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}.
\end{document}
2.通过tikz
、graphics
和etoolbox
包microtype
- 归功于:@M. Logic 和 @CarLaTeX (参见链接)
- 推荐指数:★★★★★
- 优点:(1)用circled roman、bfseries、itshape、sffamily、ttfamily数字枚举脚注,外形美观,大小合适;(2)数字字体为计算机现代系列,也可以与TeX系统中收集的字体相同;(3)数字可以大于10,小于100。
- 缺点:(1)只能使用该包
LaTeX
来编译文件;(2)对于不同的字体,需要调整相应的参数。PDFLaTeX
microtype
重要的是使用合适的值缩放两位数的宽度,并减少两位数的间距在解决方案中。这可能是最好的选择之一,因为一页上的脚注数量不能超过 99。它的代码、从 0 到 99 的带圈数字以及测试输出如下。
\documentclass{article}
\usepackage{tikz}
\usepackage{graphics}%for \scalebox
\usepackage{etoolbox}%for \ifnumcomp
\usepackage{microtype}%for \textls
%%%define circled command%%%%%%%%%%%%%%
\tikzset{circlednode/.style={
circle,
draw,
inner sep=0.05ex,
text depth=0ex,
font=\normalfont,
minimum size=1ex
}
}
\newcommand*\circled[1]{%
\ifnumcomp{#1}{>}{9}{%
% if > 9:
\tikz[baseline=(char.base)]\node[circlednode] (char) {\textls[-70]{\scalebox{0.5}[1]{\bfseries#1}}};}{%
% if <= 9:
\tikz[baseline=(char.base)]\node[circlednode] (char) {#1};}%
}
%%%footnote numbers setting%%%%%%%%%%%%%%%
\makeatletter
%make footnote numbers be circled------------------
\renewcommand{\thefootnote}{%
\raisebox{0.25ex}{%
\scalebox{0.7}{\protect\circled{%
\arabic{footnote}}%
}%
}%
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\par Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}.
\end{document}
3.通过tikz
、graphics
和etoolbox
包fontspec
- 归功于:@M. Logic 和 @CarLaTeX (参见链接)
- 推荐指数:★★★★★
- 优点:(1)用circled roman或bfseries或itshape或sffamily或ttfamily数字枚举脚注,外观漂亮,大小合适;(2)数字字体可以与计算机上安装的字体相同;(3)数字可以大于10小于100。
- 缺点:(1)由于使用了软件包
XeTeX
,XeLaTeX
所以只能在 中编译文件;(2)必须设置软件包能识别的主字体;(3)对于不同的字体,需要调整相应的参数。LuaLaTeX
fontspec
fontspec
重要的是使用合适的值缩放两位数的宽度,并减少两位数的间距在解决方案中。这可能是最好的选择之一,因为一页上的脚注数量不能超过 99。它的代码、从 0 到 99 的带圈数字以及测试输出如下。
\documentclass{article}
\usepackage{tikz}
\usepackage{graphics}%for \scalebox
\usepackage{etoolbox}%for \ifnumcomp
\usepackage{fontspec}%for \addfontfeature
\setmainfont{Arial}
%%%define circled command%%%%%%%%%%%%%%
\tikzset{circlednode/.style={
circle,
draw,
inner sep=0.05ex,
text depth=0ex,
font=\normalfont,
minimum size=1ex
}
}
\newcommand*\circled[1]{%
\ifnumcomp{#1}{>}{9}{%
% if > 9:
\tikz[baseline=(char.base)]\node[circlednode] (char) {\addfontfeature{LetterSpace=-9.0}\scalebox{0.5}[1]{\bfseries#1}};}{%
% if <= 9:
\tikz[baseline=(char.base)]\node[circlednode] (char) {#1};}%
}
%%%footnote numbers setting%%%%%%%%%%%%%%%
\makeatletter
%make footnote numbers be circled------------------
\renewcommand{\thefootnote}{%
\raisebox{0.25ex}{%
\scalebox{0.7}{\protect\circled{%
\arabic{footnote}}%
}%
}%
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\par Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}. Now we test the footnote numbers with two digits\footnote{Test}.
\end{document}