尽管有 crossref,但仍可以完整引用 bibtex 条目吗?

尽管有 crossref,但仍可以完整引用 bibtex 条目吗?

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 来说,它被明确引用。

相关内容