不使用 natbib 的情况下在 BibTeX 中引用多个来源的分隔符

不使用 natbib 的情况下在 BibTeX 中引用多个来源的分隔符

我使用 apalike-letters 书目样式,当引用多个来源时,使用逗号将它们分隔:

图像

我该如何修改它以使用分号而不是逗号?我已将类文件中的每个逗号都改为分号,但这没有帮助 :/

有什么想法吗?请注意,我不想使用 natbib,因为我的文档非常大,并且 natbib 在编译时会产生一些奇怪的错误……

您可以在以下位置找到整个项目(其中包含样式文件):http://piec.info/apalike-letters_test.zip[76 KB]。

答案1

这真的很容易;好吧,差不多。只需删除

\usepackage{breakcites}

并将该行替换为

\makeatletter
\def\@citex[#1]#2{%
  \let\@citea\@empty
  \@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{;\penalty\@m\ }%
     \edef\@citeb{\expandafter\@firstofone\@citeb}%
     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
       \G@refundefinedtrue
       \@latex@warning
         {Citation `\@citeb' on page \thepage \space undefined}}%
       {\csname b@\@citeb\endcsname}}}{#1}}
\makeatother

它与 所做的定义相同breakcites,但用分号代替逗号。

如果这个神秘的代码吓到你了,可以使用

\usepackage{breakcites}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@citex}{,}{;}{}{}
\makeatother

效果是一样的。

相关内容