Wie kann ich die BibTex-Nummerierung in einem Dokument anpassen?

Wie kann ich die BibTex-Nummerierung in einem Dokument anpassen?

Ich habe ein einfaches LaTeX-Dokument, das einige BibTeX-Referenzen enthält:

\documentclass[12pt]{article}
\begin{document}
 
\section{First section}
 
This document is an example of \texttt{thebibliography} environment using 
in bibliography management. Three items are cited: \textit{The \LaTeX\ Companion} 
book \cite{latexcompanion}, the Einstein journal paper \cite{einstein}, and the 
Donald Knuth's website \cite{knuthwebsite}. The \LaTeX\ related items are
\cite{latexcompanion,knuthwebsite}. 
 
\medskip
\bibliographystyle{unsrt}
\bibliography{sample}
 
\end{document}

Die Ausgabe ist wie folgt.

Bildbeschreibung hier eingeben

Ich möchte die Nummerierung der Referenzen im Text und im Abschnitt „Referenzen“ durch eine Reihe spezifischer Nummern meiner Wahl ersetzen. Wie kann ich das tun?

Nehmen wir an, ich hätte gerne so etwas:

1 Erster Abschnitt

Dieses Dokument ist ein Beispiel für die Verwendung der Bibliographieumgebung in der Bibliographieverwaltung. Drei Elemente werden zitiert: Das LATEX-Begleitbuch [11], der Einstein-Journalartikel [22] und die Website von Donald Knuth [33]. Die mit LATEX in Zusammenhang stehenden Elemente sind [11, 33].

Verweise

[11] Michel Goossens, Frank Mittelbach und Alexander Samarin. The LATEX Companion. Addison-Wesley, Reading, Massachusetts, 1993.

[22] Albert Einstein. Zur Elektrodynamik bewegter Körper. (Deutsch) [Zur Elektrodynamik bewegter Körper]. Annalen der Physik, 322(10):891{921, 1905.

[33] Donald Knuth. Knuth: Computer und Schriftsatz.

Kann ich dies mit LaTeX und BibTeX machen?

Antwort1

Sie können zunächst Ihr Literaturverzeichnis wie gewohnt erstellen. Anschließend können Sie die gewünschten Nummern wie unten gezeigt festlegen, indem Sie den Code zwischen %%STARTund einfügen %%END.

Die filecontentsUmgebung dient nur zu Beispielzwecken. Verwenden Sie Ihre eigene Datenbank.

\begin{filecontents}{\jobname.bib}
@book{Knuth1984texbook,
    Author = {Knuth, D.E.},
    Title = {The \TeX book, volume A of Computers and typesetting},
    Publisher = {Addison-Wesley},
    Year = {1984},
}
@book{Chomsky1957,
    Address = {The Hague},
    Author = {Noam Chomsky},
    Publisher = {Mouton},
    Title = {Syntactic Structures},
    Year = {1957},
}
@book{Chomsky1965,
    Address = {Cambridge Mass.},
    Author = {Noam Chomsky},
    Publisher = {MIT Press},
    Title = {Aspects of the Theory of Syntax},
    Year = {1965},
}
\end{filecontents}

\documentclass{article}
\usepackage{xpatch} % also loads expl3

%%START
\makeatletter
\xpatchcmd{\@bibitem}
  {\item}
  {\item[\@biblabel{\changekey{#1}}]}
  {}{}
\xpatchcmd{\@bibitem}
  {\the\value{\@listctr}}
  {\changekey{#1}}
  {}{}
\makeatother

\ExplSyntaxOn
\cs_new:Npn \changekey #1
 {
  \str_case:nVF {#1} \g_changekey_list_tl { ?? }
 }
\cs_new_protected:Npn \setchangekey #1 #2
 {
  \tl_gput_right:Nn \g_changekey_list_tl { {#1}{#2} }
 }
\tl_new:N \g_changekey_list_tl
\cs_generate_variant:Nn \str_case:nnF { nV }
\ExplSyntaxOff

\setchangekey{Knuth1984texbook}{9}
\setchangekey{Chomsky1957}{3}
\setchangekey{Chomsky1965}{7}
%%END

\begin{document}
\section{First section}

This document is an example of \texttt{thebibliography} environment using 
 bibliography management. Three items are cited: \emph{Syntactic Structures} 
book \cite{Chomsky1957}, \emph{Aspects} \cite{Chomsky1965}, and  
Donald Knuth's \TeX book \cite{Knuth1984texbook}.

\bibliographystyle{plain}
\bibliography{\jobname}

\end{document}

Bildbeschreibung hier eingeben

Ich habe nur aus Faulheit dieselben Daten wie Alan Munn verwendet.

Antwort2

Hier ist eine Version der Lösung, die ich vorgeschlagen habe, um Ihnen den Einstieg zu erleichtern. Angesichts der begrenzten Verwendung lohnt es sich wahrscheinlich nicht, die Lösung noch weiter zu verfeinern. Die grundlegende Syntax einer Referenz lautet:

\mycite{<number>}{<bib-key>}

Wenn Sie auf ein bereits verwendetes Zitat (eingeleitet mit ) verweisen möchten, \mycitekönnen Sie einfach verwenden \ref{<bib=key}.

Anschließend geben Sie die eigentlichen Bibliographieeinträge mit dem Befehl \mybibfür jeden Eintrag ein. Diese erscheinen mit der Nummer, die Sie im \myciteBefehl verwendet haben, und in der Reihenfolge, in der Sie sie in der itemizeUmgebung eingeben.

\begin{filecontents}{\jobname.bib}

@book{Knuth1984texbook,
    Author = {Knuth, D.E.},
    Title = {The TEXbook, volume A of Computers and typesetting},
    Year = {1984}}

@book{Chomsky1957,
    Address = {The Hague},
    Author = {Noam Chomsky},
    Publisher = {Mouton},
    Title = {Syntactic Structures},
    Year = {1957}}

@book{Chomsky1965,
    Address = {Cambridge Mass.},
    Author = {Noam Chomsky},
    Publisher = {{MIT} Press},
    Title = {Aspects of the Theory of Syntax},
    Year = {1965}}
\end{filecontents}
\documentclass[12pt]{article}
\usepackage{natbib}
\usepackage{calc}
\usepackage{etoolbox}
\usepackage{bibentry}
\usepackage{enumitem}
\SetLabelAlign{bibright}{\hss\llap{[#1]}}
\newcounter{mynum}
\newcommand\mycite[2]{[#1]\setcounter{mynum}{0}\addtocounter{mynum}{#1-1}\refstepcounter{mynum}\label{#2}}
\newcommand\mybib[1]{\item[\ref{#1}]\bibentry{#1}}

\begin{document}
\section{First section}

This document is an example of \texttt{thebibliography} environment using 
 bibliography management. Three items are cited: \emph{Syntactic Structures} 
book \mycite{6}{Chomsky1957}, \emph{Aspects} \mycite{4}{Chomsky1965}, and  
Donald Knuth's TeXBook \mycite{10}{Knuth1984texbook}. The Linguistics related items are
[\ref{Chomsky1965},\ref{Chomsky1957}].
\medskip
\bibliographystyle{unsrtnat}
\nobibliography{\jobname}
\begin{itemize}[labelwidth=!,labelsep=1em,align=bibright]
\mybib{Chomsky1957}
\mybib{Chomsky1965}
\mybib{Knuth1984texbook}
\end{itemize}
\end{document}

Ausgabe des Codes

Antwort3

Nachdem ich Ihre Kommentare gelesen habe, denke ich, dass es einen viel einfacheren Weg gibt: Es gibt das nette Paket xcite, mit dem Sie Zitate aus Ihrem anderen Dokument importieren können und sich nicht um die Zahlen kümmern müssen (das folgende Beispiel geht davon aus, dass das andere Dokument heißt document.tex):

\documentclass{article}

\usepackage{xcite}
\externalcitedocument{document}

\begin{document}

\cite{knuth}


\end{document}

Antwort4

Da es in der Frage eigentlich um die Verwendung von benutzerdefinierten Beschriftungen für Einträge in der Bib-Datenbank geht, möchte ich hinzufügen, dass es dafür bei Biblatex eine Standardmethode gibt. Verwenden Sie einfach das DatenfeldKurzschrift, wodurch die Standardabkürzung nur für diesen Eintrag in der Datenbank überschrieben wird. Ich habe im folgenden minimalen Arbeitsbeispiel einige Buchstaben eingegeben, aber Sie können natürlich auch Zahlen oder was auch immer Sie möchten eingeben.

\begin{filecontents}{thebib.bib}
@article{Boll,
author = {Boll, Grodan},
title = {Frogs now and then},
year = 1995,
journal = {Allers},
volume = 3,
shorthand = {FN\&T}
}
\end{filecontents}
\documentclass{article}
\usepackage{biblatex}
\addbibresource{thebib.bib}
\begin{document}
Frogs are common, see also \cite{Boll}.
\printbibliography
\end{document}

Dies ergibt die Ausgabe Screenshot aus PDF-Datei

verwandte Informationen