
Некоторое время назад я скопировал и вставил следующий код из интернета, чтобы классифицировать публикации.
Теперь я понимаю, что порядок публикации не соответствует порядку, который я определил в библиографии. Какую команду мне нужно добавить в \renewenvironment{thebibliography}
блок, чтобы мой порядок был несортированным. Простая установка bibliographystyle не работает с этим настроенным кодом.
Я пытался \renewcommand{\bibliographystyle}{\unsrt}
, но я полный новичок в LaTeX и не понимаю, что я вообще делаю.
Я использую multibib
, moderncv
и Overleaf.
Вот мой код:
\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}}
решение1
Вы не показали нам компилируемый MWE, поэтому я просто использовал более короткий пример шаблона, который вы можете найти с классом moderncv
, версия 2.0.0, текущая. Если вы используете более старую версию, предлагаю обновить! Или сообщите нам версию, которую вы используете в своем вопросе. Вы также не показали нам, как и какие записи bib вы цитировали в каком порядке, и вы не показали нам используемые файлы bib. В следующий раз, пожалуйста, сделайте свой вопрос как можно более полным.
Далее я просто использовал данные moderncv
, поставляемые с версией 2.0.0.
Соответствующую часть для цитирования и построения библиографии вы можете увидеть в следующем фрагменте кода:
%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
Команда \nocitebook{book1,book2}
cites first book1
, then book2
. С помощью команды \bibliographystylebook{unsrt}
вы выбираете стиль библиографии, в данном случае unsrt
, это означает показывать записи bib в библиографии в порядке, используемом для цитирования. То же самое для второго multibib
, вам нужно сделать это в третий раз для вашего третьего multibib
.
Использование multibib
изменило обычную цепочку компиляции. С двумя показанными выше multibibs вам нужно скомпилировать с помощью:
pdflatex mwe.tex
, предположим, что ваше резюме хранится в файлеmwe.tex
. После компиляции резюме вы найдете два файлаbook.aux
иmisc.aux
в том же каталоге, что иmwe.tex
. В вашем случае вы должны найти три файлаjournal.aux
,preprint.aux
иbthesis.aux
.bibtex book
создать первую многобиблиографическую библиографию.bibtex misc
для создания второй библиографии.pdflatex mwe.tex
дважды, чтобы получить правильные номера страниц, оглавление и т. д., как обычно.
С текущей версией moderncv
(2.0.0) вам не нужно копировать \renewenvironment{thebibliography}[1]%
блок в ваш код. Конечно, вам нужно определить используемые вами multibibs \newcites{journal,preprint,bthesis}{{Journals},{Technical Reports \& Pre-prints},{Bachelor Thesis}}
в преамбуле (как я сделал для двух файлов bib в этом примере).
С помощью следующего скомпилированного MWE (используя файл bib publication.bib
из moderncv
шаблона):
% 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}
вы получаете результат:
Чтобы убедиться, вы можете протестировать мой MWE, вот пример файла bib 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'.