Ändern der Bibliografiereihenfolge mit ModernCV und Renewenvironment-Anweisung

Ändern der Bibliografiereihenfolge mit ModernCV und Renewenvironment-Anweisung

Vor einiger Zeit habe ich den folgenden Code aus dem Internet kopiert und eingefügt, um Veröffentlichungen zu kategorisieren.

Nun stelle ich fest, dass die Publikationsreihenfolge nicht mit der Reihenfolge übereinstimmt, die ich im Literaturverzeichnis definiere. Welchen Befehl muss ich dem \renewenvironment{thebibliography}Block hinzufügen, damit meine Reihenfolge unsortiert ist? Das einfache Setzen des Bibliografiestils funktioniert mit diesem angepassten Code nicht.

Ich habe es versucht \renewcommand{\bibliographystyle}{\unsrt}, aber ich bin schlecht in LaTeX und weiß nicht, was ich eigentlich tue.

Ich verwende multibibund moderncvOverleaf.

Hier ist mein Code:

\makeatletter\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}\makeatother

\makeatletter
\renewenvironment{thebibliography}[1]%
  {%
    \subsection{\refname}%
    \small%
    \begin{list}{\bibliographyitemlabel}%
      {%
        \setlength{\topsep}{0pt}%
        \setlength{\labelwidth}{\hintscolumnwidth}%
        \setlength{\labelsep}{\separatorcolumnwidth}%
        \leftmargin\labelwidth%
        \advance\leftmargin\labelsep%
        \@openbib@code%
        \usecounter{enumiv}%
        \let\p@enumiv\@empty%
        \renewcommand\theenumiv{\@arabic\c@enumiv}}%
        \sloppy\clubpenalty4000\widowpenalty4000%
  }%
  {%
    \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
    \end{list}%
  }
\makeatother
\usepackage{multibib}
\newcites{journal,preprint,bthesis}{{Journals},{Technical Reports \& Pre-prints},{Bachelor Thesis}}

Antwort1

Sie haben uns kein kompilierbares MWE gezeigt, also habe ich einfach ein kürzeres Vorlagenbeispiel verwendet, das Sie mit Klasse moderncv, Version 2.0.0, der aktuellen Version, finden können. Wenn Sie eine ältere verwenden, empfehle ich Ihnen, sie zu aktualisieren! Oder teilen Sie uns in Ihrer Frage mit, welche Version Sie verwenden. Sie haben uns auch nicht gezeigt, wie und welche Bib-Einträge Sie in welcher Reihenfolge zitiert haben, und Sie haben uns nicht die verwendeten Bib-Dateien gezeigt. Bitte stellen Sie Ihre Frage beim nächsten Mal so vollständig wie möglich.

Im Folgenden habe ich einfach die Daten moderncvder Version 2.0.0 verwendet.

Den relevanten Teil zum Zitieren und Erstellen der Bibliographien können Sie im folgenden Codeabschnitt sehen:

%in your preamble:
\newcites{book,misc}{{Books},{Others}} % <==============================

% in your code:
% Publications from a BibTeX file using the multibib package
\section{Publications}
\nocitebook{book1,book2}
\bibliographystylebook{unsrt} % unsrt plain <=================================
\bibliographybook{publications}                   % 'publications' is the name of a BibTeX file
\nocitemisc{misc1,misc2,misc3}
\bibliographystylemisc{unsrt} % unsrt plain <=================================
\bibliographymisc{publications}                   % 'publications' is the name of a BibTeX file

Der Befehl \nocitebook{book1,book2}zitiert zuerst book1, dann book2. Mit dem Befehl \bibliographystylebook{unsrt}wählen Sie den Bibliographiestil, in diesem Fall unsrt, das heißt, die Bibliographieeinträge werden in der Reihenfolge angezeigt, in der sie zitiert wurden. Dasselbe gilt für den zweiten multibib, für den dritten müssen Sie dies ein drittes Mal tun multibib.

Die Verwendung multibibhat die übliche Kompilierungskette geändert. Bei den beiden oben gezeigten Multibibs müssen Sie mit folgendem kompilieren:

  1. pdflatex mwe.tex, angenommen, Ihr Lebenslauf ist in der Datei gespeichert mwe.tex. Nach dem Erstellen des Lebenslaufs finden Sie zwei Dateien book.auxund misc.auxim selben Verzeichnis wie mwe.tex. In Ihrem Fall sollten Sie drei Dateien finden journal.aux, preprint.auxund bthesis.aux.
  2. bibtex bookum die erste Multibib-Bibliographie aufzubauen.
  3. bibtex miscum die zweite Bibliographie aufzubauen.
  4. pdflatex mwe.texzweimal, um wie üblich die richtigen Seitenzahlen, das Inhaltsverzeichnis usw. zu erhalten.

Mit der aktuellen Version moderncv(2.0.0) müssen Sie den Block nicht in Ihren Code kopieren \renewenvironment{thebibliography}[1]%. Natürlich müssen Sie die von Ihnen verwendeten Multibibs \newcites{journal,preprint,bthesis}{{Journals},{Technical Reports \& Pre-prints},{Bachelor Thesis}}in der Präambel definieren (wie ich es für die beiden Bib-Dateien in diesem Beispiel getan habe).

Mit folgendem kompilierbaren MWE (unter Verwendung der Bib-Datei publication.bibaus moderncvder Vorlage):

% pdflatex mwe.tex
% bibtex book
% bibtex misc
% pdflatex mwe.tex
% pdflatex mwe.tex
\documentclass[11pt,a4paper,sans]{moderncv}

\moderncvstyle{casual}
\moderncvcolor{blue}

\usepackage[scale=0.75]{geometry}

\name{John}{Doe}
\title{Resumé title}
\address{street and number}{postcode city}{country}
\phone[mobile]{+1~(234)~567~890}
\phone[fixed]{+2~(345)~678~901}
\phone[fax]{+3~(456)~789~012}
\email{[email protected]}
\homepage{www.johndoe.com}
\social[linkedin]{john.doe}
\social[twitter]{jdoe}
\social[github]{jdoe}
\extrainfo{additional information}
\photo[64pt][0.4pt]{example-image-golden-upright}
\quote{Some quote}

\setlength{\footskip}{70pt}

\makeatletter
\renewcommand*{\bibliographyitemlabel}{\@biblabel{\arabic{enumiv}}}
\makeatother

\usepackage{multibib}
\newcites{book,misc}{{Books},{Others}} % <==============================


\begin{document}

\makecvtitle

\section{Education}
\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description}  % arguments 3 to 6 can be left empty
\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description}

\section{Master thesis}
\cvitem{title}{\emph{Title}}
\cvitem{supervisors}{Supervisors}
\cvitem{description}{Short thesis abstract}

\section{Extra 2}
\cvlistdoubleitem{Item 1}{Item 4}
\cvlistdoubleitem{Item 2}{Item 5\cite{book1}}
\cvlistdoubleitem{Item 3}{Item 6. Like item 3 in the single column list before, this item is particularly long to wrap over several lines.}

\section{References}
\begin{cvcolumns}
  \cvcolumn{Category 1}{\begin{itemize}\item Person 1\item Person 2\item Person 3\end{itemize}}
  \cvcolumn{Category 2}{Amongst others:\begin{itemize}\item Person 1, and\item Person 2\end{itemize}(more upon request)}
  \cvcolumn[0.5]{All the rest \& some more}{\textit{That} person, and \textbf{those} also (all available upon request).}
\end{cvcolumns}

% Publications from a BibTeX file using the multibib package
\section{Publications}
\nocitebook{book1,book2}
\bibliographystylebook{unsrt} % unsrt plain <=================================
\bibliographybook{publications}                   % 'publications' is the name of a BibTeX file
\nocitemisc{misc1,misc2,misc3}
\bibliographystylemisc{unsrt} % unsrt plain <=================================
\bibliographymisc{publications}                   % 'publications' is the name of a BibTeX file

\end{document}

Sie erhalten das Ergebnis:

resultierende Bibliographie

Damit Sie sicher sein können, dass Sie mein angegebenes MWE testen können, hier die Beispiel-Bib-Datei publication.bib:

%% start of file `publications.bib'.
%% Copyright 2006-2012 Xavier Danaux (xdanaux at gmail.com).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.


@BOOK{book1,
  author = {John Doe and Author 1},
  title = {Title},
  publisher = {Publisher},
  edition = {edition},
  year = {year},
}

@BOOK{book2,
  author = {John Doe and Author 2},
  title = {Title},
  publisher = {Publisher},
  edition = {edition},
  year = {year},
}

@MISC{misc1,
  author = {John Doe},
  title = {Title},
  year = {year},
}

@MISC{misc2,
  author = {John Doe and Author 3},
  title = {Title},
  year = {year},
}

@MISC{misc3,
  author = {John Doe},
  title = {Title},
  year = {year},
}


%% end of file `publications.bib'.

verwandte Informationen