Wie schließe ich mit Bibtex Zitate im Vorspann von der Bibliografiesortierung aus?

Wie schließe ich mit Bibtex Zitate im Vorspann von der Bibliografiesortierung aus?

In meiner Doktorarbeit muss ich einige Seiten einfügen, die frontmatteroffenlegen, dass einige Kapitel als Artikel veröffentlicht wurden, einschließlich der Zitate aus diesen Artikeln. Diese Zitate erscheinen dann als [1], [2], usw., da sie als erste verwendet werden.

Dies führt dazu, dass in meiner Einleitung die erste Zitierung als endet [5]. Gibt es eine Möglichkeit, Bibtex dazu zu zwingen, meine Zitierungen tatsächlich ab der Einleitung (in ) zu sortieren, mainmattersodass diese Zitierungen bei beginnen [1]und die in frontmatteram Ende gezählt werden?

Ich verwende den unsrtStil ohne zusätzliche Pakete und die reportDokumentklasse.

Antwort1

Sie sollten in der Lage sein,

{\csname @fileswfalse\endcsname\cite{aaa}}

in Ihrem Vorspann und dann

\nocite{aaa}

Am Ende.

Dadurch wird ein normales Zitat dort erstellt, wo Sie es benötigen, aber das Schreiben der Biblicite-Zeile in die AUX-Datei wird gestoppt. Sie müssen dann \nocitespäter in die AUX-Datei schreiben und den Eintrag in die generierte Bibliografie einfügen.

Antwort2

Sie können es ändern frontmatterund mainmatterdie Idee von David verwenden:

\documentclass{book}

\usepackage{letltxmacro}
\makeatletter
\LetLtxMacro\@citexOrig\@citex
\g@addto@macro\frontmatter{%
\def\@citex[#1]#2{\leavevmode
  \let\@citea\@empty
  \@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\ }%
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
%     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{\hbox{\reset@font\bfseries ?}%
       \G@refundefinedtrue
       \@latex@warning
         {Citation `\@citeb' on page \thepage \space undefined}}%
       {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}{#1}%
   \AtEndDocument{\nocite{#2}}%
  }%
}
\g@addto@macro\mainmatter{\LetLtxMacro\@citex\@citexOrig}
\makeatother

\usepackage{lipsum}
\begin{document}
\frontmatter
frontmatter Text \cite{article-full} and \cite{article-minimal}

\mainmatter
mainmatter Text \cite{book-full} and \cite{book-minimal}

\bibliography{xampl}
\bibliographystyle{unsrt}

\end{document}

Natürlich kann man dasselbe erreichen durch eine Neudefinition von\cite

\documentclass{book}

\usepackage{letltxmacro}
\makeatletter
\LetLtxMacro\citeOrig\cite
\g@addto@macro\frontmatter{%
 \renewcommand*\cite[2][]{%
   \ifx\relax#1\relax {\@fileswfalse\citeOrig{#2}}\else {\@fileswfalse\citeOrig[#1]{#2}}\fi%
    \AtEndDocument{\nocite{#2}}%
  }%
}
\g@addto@macro\mainmatter{\LetLtxMacro\cite\citeOrig}
\makeatother

\usepackage{lipsum}
\begin{document}
\frontmatter
frontmatter Text \cite{article-full} and \cite{article-minimal}

\mainmatter
mainmatter Text \cite{book-full} and \cite{book-minimal}

\bibliography{xampl}
\bibliographystyle{unsrt}

\end{document}

Beide Lösungen basieren auf der Idee von David.

verwandte Informationen