我创建了一个名为 popular 的新分类单元,用于 biocon 包。但是,该包似乎不接受 'ç' 字符。
最小工作示例如下:
\documentclass{article}
\usepackage{biocon}
\usepackage[utf8]{inputenc}
\newtaxon{popular}
\newtaxastyle{OnlyPopular}{\taxon{!popular!}}
\newplant{araca}{genus=Psidium, epithet=cattleianum, author= Sabine, popular=Araçá}
\newplant{alecrim}{genus=Rosmarinus, epithet=officinalis, author=L., popular=Alecrim}
\begin{document}
Working: \plant[OnlyPopular]{alecrim}
Not working: \plant[OnlyPopular]{araca}
\end{document}
我收到的错误是:
./test.tex:9: \Paraca@popular 定义中的参数编号非法。\crcr l.9 ...ttleianum,作者= Sabine,popular=Araçá}
“alecrim” 植物工作正常,因此我相信我的问题只出在“ç” char 上。此外,我注意到“á” char 也工作正常。
有人知道如何让包装适用于俗名中带有“ç”字符的植物吗?
答案1
该错误取决于biocon
包中的概念性错误,该错误在需要文本输入的地方使用\edef
。重音字符的宏(使用 UTF-8 输入时是隐式的)通常不会保留\edef
,事实上,LaTeX 已\protected@edef
为此目的保留了宏。
我做了一个实验:我编辑了一份副本biocon.sty
,将每个都改为\edef
,\protected@edef
然后您的文档编译成功。
您可以使用以下方法解决该错误\unexpanded
:
\documentclass{article}
\usepackage{biocon}
\usepackage[utf8]{inputenc}
\newtaxon{popular}
\newtaxastyle{OnlyPopular}{\taxon{!popular!}}
\newplant{araca}{genus=Psidium, epithet=cattleianum, author= Sabine, popular=\unexpanded{Araçá}}
\newplant{alecrim}{genus=Rosmarinus, epithet=officinalis, author=L., popular=Alecrim}
\begin{document}
Working: \plant[OnlyPopular]{alecrim}
Not working: \plant[OnlyPopular]{araca}
\end{document}
文本所声称的内容现在是错误的。;-)
笔记。对于这种特殊情况,添加也\usepackage[T1]{fontenc}
可以解决问题。如果您使用重音字符,我建议无论如何都加载它。