使用 Bibtex 编译但我不需要任何引用

使用 Bibtex 编译但我不需要任何引用

我认为这个问题很模糊,如果需要的话我可以删除它。

我有一个巨大的报告模板,其中包括每个章节。我这样做是为了通过 pdflatex > bibtex > pdflatex 在 Texmaker 中编译每个部分。它运行良好,但对于某些文件(例如我的首页或我的结果),我不需要 \cite 任何内容。我还使用 natbib 和自定义.bst

因此,当我编译这些文件时,我得到了 bibtex 的错误no citations founds,这是可以理解的。我的实际解决方案是引用这些部分的“空白”引文,但这并不令人满意,因为它毫无意义地出现在我的 pdf 文件末尾。

有没有办法用 bibtex 编译这些文件而不使用任何引用或参考书目?\bibliography想要改变这些文件的行为吗?

是的,我很懒,当我编辑带有引文或没有引文的文件时,我不想更改我的 texmaker 设置。如果您需要,我可以添加一些代码,但如果有多个文件,代码会很长...

答案1

解决此问题的方法是改变 Texmaker 编译方式,以便在使用 bibtex 之前检查 file.aux 中是否存在引用。

当我编译时,我使用了此命令 pdflatex>bibtex>pdflatex(x2)>viewpdf

pdflatex -synctex=1 -interaction=nonstopmode --enable-write18 %.tex | bibtex %.aux |pdflatex -synctex=1 -interaction=nonstopmode --enable-write18 %.tex |pdflatex -synctex=1 -interaction=nonstopmode --enable-write18 %.tex |evince %.pdf

我已经设置了一个小型 shell 脚本,在执行 bibtex 之前检查文件中的 \citation。

#!/bin/bash
if [ "$1" ];
  then FILE="$1"
  if [[ ! -z $(grep "\citation" "$FILE") ]];
    then bibtex $FILE;
  fi
fi

所以我的编译命令像这样工作

pdflatex -synctex=1 -interaction=nonstopmode --enable-write18 %.tex | ./diffBibtex.sh %.aux |pdflatex -synctex=1 -interaction=nonstopmode --enable-write18 %.tex |pdflatex -synctex=1 -interaction=nonstopmode --enable-write18 %.tex |evince %.pdf

现在它可以工作了,但我现在发现它有多个缺点。我依赖于一个可能只在 Linux 环境中工作的自定义脚本。其次,如果我添加引用或删除所有引用,我需要确保在进行新编译之前删除每个 .aux。最后,这是可行的,因为它在本地工作流程中使用,但我不知道共享模板的成本是否会很大。

仍然欢迎任何答案

相关内容