如果您想获得用于符号脚注的自定义字母表,alphalph
这是一个很棒的软件包。但是,它似乎无法与许多其他符号字体包(bbding
、、pifont
等)很好地兼容。
最简单的演示方法是使用 dingbats pifont
(因为它实际上显示了一些字符,只是错误的字符)。
正如您在 MWE 及其显示屏中看到的,4 星显示为 G。
它在应该重复 G 的时候重复了 G,这表明问题不在于代码的多个生成部分内的递增。
梅威瑟:
\documentclass{article}
\usepackage{alphalph}
\usepackage{pifont}
\makeatletter
\newcommand*{\fnsymbolsingle}[1]{%
\ensuremath{%
\ifcase#1%
\or *%
\or \ding{71}
\else
\@ctrerr \fi
}%
}
\makeatother
\newalphalph{\fnsymbolmult}[mult]{\fnsymbolsingle}{}
\renewcommand*{\thefootnote}{%
\fnsymbolmult{\value{footnote}}%
}
\begin{document}
Text\footnote{first}. \ding{71}\footnote{second}.Text\footnote{third}. \ding{71}\footnote{fourth}.
\end{document}
更有趣的是,您可能会得到如下所示的错误工作示例,该示例允许显示索引根本不有效的字符(即,它是负数)!
\documentclass{article}
\usepackage{alphalph}
\usepackage{pifont}
\makeatletter
\newcommand*{\fnsymbolsingle}[1]{%
\ensuremath{%
\ifcase#1%
\or *%
\or \ding{71}
\or \ding{-1}
\else
\@ctrerr \fi
}%
}
\makeatother
\newalphalph{\fnsymbolmult}[mult]{\fnsymbolsingle}{}
\renewcommand*{\thefootnote}{%
\fnsymbolmult{\value{footnote}}%
}
\begin{document}
Text\footnote{first}. \ding{71}\footnote{second}.Text\footnote{third}. \ding{-1}\footnote{fourth}.
\end{document}
因为它显示了字母表中的字符(具体来说,Γ),并且尽管出现错误仍然这样做,这让我认为正在发生的事情是以某种方式将一些数字添加到输入中,这就是导致命令pifont
中发送的 dingbat 计数失效的原因\ding{}
。
为什么会发生这种情况?如何避免?该解决方案是否有希望\alphalph
与其他符号字体包(例如bbding
)进行交互?
答案1
\ding
不是为数学模式设计的,如果你使用
\newcommand*{\fnsymbolsingle}[1]{%
\ensuremath{%
\ifcase#1%
\or *%
\or \mbox{\ding{71}}%
\else
\@ctrerr \fi
}%
}
你得到的是一个符号而不是 G
错误示例中的 Gamma 是由于 tex 使用字符 0 从负字符代码中恢复,而大写 Gamma 在经典 tex 数学字体编码中位于位置 0。