我使用 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
效果是一样的。