为什么以及如何“alphalph”改变从“pifont”中选择的dingbat的引用?

为什么以及如何“alphalph”改变从“pifont”中选择的dingbat的引用?

如果您想获得用于符号脚注的自定义字母表,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。

相关内容