De Gruyter 希望我将完整的书目信息放入参考列表中,也就是说,我不会使用交叉引用。但是我有带有 crossref 信息的 bibtex 条目,并且不想重复它们。有没有办法设置 .bst 文件,使带有 crossref 的 bibitem 被视为完整项目?
编辑:
\documentclass{article}
\usepackage{filecontents}
\usepackage{natbib}
\begin{filecontents}{SM.bib}
@incollection{a, author={Max Meier}, title={My first paper}, crossref={b}}
@incollection{c, author={Petra Meier}, title={My first paper}, crossref={b}}
@book{b, editor={Klaus Meier}, title={How to cite with BibTeX}, booktitle={How to cite with
BibTeX}, publisher={Language Science Press}, year=2000}
\end{filecontents}
\begin{document}
\nocite{a,c}
\bibliographystyle{degruyter-hsk}
\bibliography{SM}
\end{document}
Meier Klaus 不应出现在参考文献中。相反,它应被视为 Max Meier 出版物条目的一部分。
De Gruyter .bst 在这里:degruyter-hsk.bst
答案1
BibTeX 提供了一个选项(取决于你使用的可执行文件的版本),-min-crossrefs
名为
bibtex -min-crossrefs=20 file
仅当您有 20 个对同一项目的引用时才会添加交叉引用条目。默认值为 2。
bibtex -help
Usage: bibtex [OPTION]... AUXFILE[.aux]
Write bibliography for entries in AUXFILE to AUXFILE.bbl,
along with a log file AUXFILE.blg.
-min-crossrefs=NUMBER include item after NUMBER cross-refs; default 2
-terse do not print progress reports
-help display this help and exit
-version output version information and exit
以上内容与版本相关
bibtex -version
BibTeX 0.99d (TeX Live 2015)
kpathsea version 6.2.1
Copyright 2015 Oren Patashnik.
但该选项长期可用。
笔记
正如 Akira 在评论中提到的,通常需要在应用选项之前删除旧的.bbl
和.aux
文件。原因是:如果 BibTeX 生成了一个.bbl
进行交叉引用的文件(例如,@book
除了项目之外还添加了作为单独项目@incollection
,那么每个条目都@incollection
将具有明确的条目\cite
。@book
因此,处理后,您.aux
将实际上拥有\citation
所有 3 个项目的明确条目。因此,现在更改-min-crossrefs
不会删除该@book
项目,因为对于 BiTeX 来说,它被明确引用。