书架文档类导致错误:命令‘\SILmfont’已定义!

书架文档类导致错误:命令‘\SILmfont’已定义!

我正在使用 Peter Flynn 的bookshelf文档类来制作一个 pdf“书架”,其中包含来自我的文件的带有标题的书脊的图形表示.bib

我按照文档进行操作,在最后的 XeLaTeX 运行过程中遇到此错误:

Package fontspec Info: Font family 'Arial(0)' created for font 'Arial' with
(fontspec)             options [BoldFont={},ItalicFont={},SmallCapsFont={}].
(fontspec)              
(fontspec)              This font family consists of the following NFSS
(fontspec)             series/shapes:
(fontspec)              
(fontspec)             - 'normal' (m/n) with NFSS spec.:
(fontspec)             <->"Arial/OT:script=latn;language=dflt;"
(fontspec)             - 'small caps'  (m/sc) with NFSS spec.: 



./fontsel/8.tex:2: LaTeX3 Error: Command '\SILmfont' already defined!

For immediate help type H <return>.
 ...                                              
                                                  
l.2 \def
        \SILmfontname{Arial}

通过documentclass 附带的脚本对我的.bib文件进行处理,除了其他文件之外,还生成了我的工作目录的一个子目录,其中包含文件,,......,。prepdata.shfontsel1.tex2.tex109.tex

每个这些nnn.tex文件包含一行形式\def\SILmfontname{}

怎么了?

这是test.tex我使用的.bib文件:

% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
% !BIB TS-program = biber
\documentclass[a0paper,landscape]{bookshelf}
\addbibresource{books.bib}
\begin{document}\raggedright
%%\immediate\write18{./prepdata.sh}
\input{entries.tex}
\nocite{*}
\par\vfill\clearpage
\printbibliography
\end{document}

这与分布式文件相同,只是我使用了我自己的.bib文件的名称,并且根据文档,在最后两次运行之前xelatex取消了那里的注释\input{entries.tex}

我认为任何格式正确的.bib文件都可以,因为现在我不想分享我自己的文件(用于准备中的一本书)。但如果真的需要。

答案1

将 \makebook 宏的内容放在一个附加组(括号)中似乎可以解决问题。感谢 @Robert 的建议和 @murray 的基础工作。

新版本即将发布。

相关内容