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.
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 %%START
und einfügen %%END
.
Die filecontents
Umgebung 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}
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, \mycite
können Sie einfach verwenden \ref{<bib=key}
.
Anschließend geben Sie die eigentlichen Bibliographieeinträge mit dem Befehl \mybib
für jeden Eintrag ein. Diese erscheinen mit der Nummer, die Sie im \mycite
Befehl verwendet haben, und in der Reihenfolge, in der Sie sie in der itemize
Umgebung 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}
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}