LaTeX、BibTeX 和关键字参考

LaTeX、BibTeX 和关键字参考

有没有办法防止 LaTeX 类文章打印关键字参考文献。也就是说,我想让 LaTeX 以常规方式打印由 BibTeX 处理的数据库中的参考文献,但我不希望参考文献出现在文档中。

答案1

article定义thebibliography环境以将引用排版为\section*。此外,它还适当修改标题以表示 *参考“部分”。如果你想从输出中完全删除此部分,只是设置参考书目项目,你可以使用

\begingroup
  \makeatletter
  \renewcommand{\@startsection}[6]{}% gobble \section*
  \let\@mkboth\@gobbletwo% gobble \@mkboth
  \makeatother
  \bibliographystyle{plain}
  \bibliography{references}% References in references.bib
\endgroup

前两个命令重新定义(of\@startsection\@mkboth)只会吞噬它们的参数。分组使重新定义保持本地化,因此您仍然可以\section在后面使用(和朋友)。“更干净”的重新定义是使用

\begingroup
  \renewcommand{\section}[5]{}% gobble \section*{..} and \@mkboth{..}{..}
  \bibliographystyle{plain}
  \bibliography{references}% References in references.bib
\endgroup

这是 的原始定义thebibliography,导致上述重新定义(我标记了我们想要通过重新定义“删除”的两个命令):

\newenvironment{thebibliography}[1]
  {\section*{\refname}%                                       <--- want to remove this
   \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%  <--- want to remove this
   \list{\@biblabel{\@arabic\c@enumiv}}%
        {\settowidth\labelwidth{\@biblabel{#1}}%
         \leftmargin\labelwidth
         \advance\leftmargin\labelsep
         \@openbib@code
         \usecounter{enumiv}%
         \let\p@enumiv\@empty
         \renewcommand\theenumiv{\@arabic\c@enumiv}}%
   \sloppy
   \clubpenalty4000
   \@clubpenalty \clubpenalty
   \widowpenalty4000%
   \sfcode`\.\@m}
  {\def\@noitemerr
      {\@latex@warning{Empty `thebibliography' environment}}%
   \endlist}

后者的重新定义\section假设吸收的 5 个参数(或标记)是

  • #1*
  • #2: (默认情况下删除\refname括号){ }
  • #3\@mkboth
  • #4\MakeUppercase\refname
  • #5\MakeUppercase\refname

因此是特定于类的。你甚至可以更进一步,重新定义它(\section)来做任何你想做的替换。例如

\renewcommand{\section}[5]{\par\vspace{20pt}}%

20pt在打印参考书目条目之前会留出垂直空间。

答案2

对于文章你可以使用

\renewcommand\refname{}

删除参考书目顶部的“参考文献”字样。

答案3

如果我理解正确的话,你应该看看这个\nocite命令。

相关内容