有没有办法防止 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
命令。