不对单个页面的 bibtex 进行排序

不对单个页面的 bibtex 进行排序

我使用unsrt样式来制作我的 BibTeX 参考书目,一切都很好。它根据我引用的层次结构对条目进行排序。但是,对于一页(这是我的作品摘要),我不希望条目被计算在内。例如,在那一页中,我引用了第 7 章中提到的一篇论文,即 [67],然后引用了第 9 章中的另一篇论文,即 [89]。但是,一旦我在前言中引用它们,它们就变成了 [1] 和 [2]

答案1

一般来说,摘要应该能够独立于作品,因此它不应该包含参考编号。但是,如果您确实需要它,那么对于标准文档,您可以\ciation通过发出\@fielswfalse(适当地用 包围\makeatletter...\maketother)来关闭命令的编写:

示例输出

\documentclass{article}

\begin{document}

\begin{abstract}
  \makeatletter\@fileswfalse\makeatother
  My abstract has references~\cite{inbook-minimal}.
\end{abstract}

A reference in the main text~\cite{article-minimal}.

\nocite{*}

\bibliographystyle{unsrt}
\bibliography{xampl}
\end{document}

答案2

我同意 Andrew Swann 的评论。如果可能的话,摘要中不应引用任何内容,如果引用的话,一般性地提及作者就足够了。

如果您想在摘要中引用但又不计算在内unsrt,这里有一些补丁:

\documentclass{article}
\usepackage{etoolbox}

\makeatletter
\newcommand{\write@citation}{\string\citation}
\newcommand{\write@nocitation}{\string\@gobble}
\patchcmd\@citex{\string\citation}{\perhaps@write@citation}{}{}
\patchcmd\nocite{\string\citation}{\perhaps@write@citation}{}{}
\newcommand{\ignorecite}{\global\let\perhaps@write@citation\write@nocitation}
\newcommand{\dontignorecite}{\global\let\perhaps@write@citation\write@citation}
\dontignorecite % initialize to normal
\makeatother

\begin{document}

\title{A paper}
\author{A. Uthor}

\maketitle

\ignorecite

\begin{abstract}
In the abstract we cite \cite{article-minimal} and \cite{book-minimal}
\end{abstract}

\dontignorecite

\section{A section}

Here we cite \cite{mastersthesis-minimal}, then \cite{phdthesis-minimal}
and finally \cite{book-minimal} and \cite{article-minimal}.

\bibliographystyle{unsrt}
\bibliography{xampl} % should be in every TeX distribution

\end{document}

\ignorecite在区域的开始处写下\cite不应计算命令出现顺序的位置以及\dontignorecite该区域结束的时间。

该补丁的目的是使 LaTeX\@gobble{<key>}.aux文件中而不是\citation{<key>}在区域中写入。

在此处输入图片描述

相关内容