множественные цитаты с индивидуальными номерами страниц с использованием natbib

множественные цитаты с индивидуальными номерами страниц с использованием natbib

Мне сложно объединить несколько цитат с отдельными номерами страниц.

я использовалэтот natbibсправочный лист, но я застрял (с тем, что показано ниже). Похоже, я не могу объединить несколько цитат и номеров страниц ссылок одновременно?

Вот что я получил и что мне бы хотелось (рабочий пример ниже),

введите описание изображения здесь

\documentclass[11pt,letter]{article}
     \usepackage{hyperref}
     \usepackage[round]{natbib}

\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{Veblen2005:1899,
    author = {Veblen, Thorstein},
    Isbn = {978-81-87879-29-9},
    publisher = {Aakar Books},
    title = {The Theory of the Leisure Class},
    subtitle = {An Economic Study of Institutions},
    Year = {[1899] 2005}}

@book{Weber2013,
    Author = {Weber, Max},
    Isbn = {9781135973988},
    Language = {en},
    Month = {jul},
    Publisher = {Routledge},
    Title = {The Protestant Ethic and the Spirit of Capitalism},
    Year = {[1905] 2013}} 

\end{filecontents*}

\begin{document}

% These citations will work but in the apalike bibstyle they will not be sorted
% in citation order (the first citation is [2]).
According to \citet[p. 19]{Weber2013, Veblen2005:1899}, this paragraph---and certainly this section---should be \ldots \\

\noindent I would like it show up like this,\\

According to Weber (2013, p. 213); Veblen (2005, p. 19), this paragraph---and certainly this section---should be \ldots \\

\noindent Also, why isn't the year in brackets show in the actual text (Weber ([1905] 2013, p. 213); Veblen ([1899] 2005, p. 19))?

\bibliography{\jobname}
\bibliographystyle{cell}
\end{document}

решение1

Команда цитирования, например, \citet[]{}состоит из двух частей: обязательного тега для цитаты и необязательной части для «точного указания» ссылки в цитате.

Пока вы не используете необязательную часть, \citet{}может использоваться сама по себе для цитирования нескольких работ: \citet{a,b,c}. Но очевидно, что это не работает с необязательным аргументом, потому что неясно, к какой работе он относится. В общем, эта неоднозначность разрешается, если предположить, что это точечная ссылка напоследнийцитируемая работа.

Если вам нужны точные ссылки на несколько источников, у вас есть (насколько мне известно) три варианта:

  1. Перейдите на biblatex, в котором есть специальные команды цитирования, предназначенные именно для этого, которые описаны вмногоместные цитаты со страницами, использующими biblatex. Существует много веских причин для такого перехода, и эту нельзя назвать одной из самых важных. (Возможно, стоит отметить, что для цитирования в стиле APA у biblatex есть особенно тщательно написанный, стабильный и активно поддерживаемый пакет:biblatex-apa.)

  2. Просто сделайте то, что вы сделали в своем примере: вместо \cites[1]{a}[2]{b}, где программное обеспечение вставляет «разделитель» между цитатами, что и предоставляет biblatex, поставьте его сами \cite[1]{a}; \cite[2]{b}. Если у вас их не много и вы не планируете менять «разделитель» довольно часто, это нормально. (Если вы все же подумали, что вам может понадобиться изменить «разделитель», вы всегда можете определить для него макрос, который можно переопределить, чтобы обеспечить согласованность. В большинстве случаев это будет излишним.)

  3. Если вы очень энтузиастичны, напишите что-нибудь, что эмулирует команду biblatex \cites. Это, как говорится, остается в качестве упражнения для читателя, хотя я уверен, что код biblatex даст вам некоторые идеи.

решение2

Для всех остальных читателей, которые попытаются сделать что-то подобное, но не нуждаются в сложном стиле цитирования, вот простая повторная реализация \citesдля natbib:

\makeatletter
\newcommand{\citecomment}[2][]{\citenum{#2}#1\citevar}
\newcommand{\citeone}[1]{\citecomment{#1}}
\newcommand{\citetwo}[2][]{\citecomment[,~#1]{#2}}
\newcommand{\citevar}{\@ifnextchar\bgroup{;~\citeone}{\@ifnextchar[{;~\citetwo}{]}}}
\newcommand{\citefirst}{\@ifnextchar\bgroup{\citeone}{\@ifnextchar[{\citetwo}{]}}}
\newcommand{\cites}{[\citefirst}
\makeatother

Использование:

According to \cites[p. 213]{Weber2013}[p. 19]{Veblen2005:1899}, this paragraph---and certainly this section---should be \ldots \\

Результат:

Согласно [2, стр. 213; 1, стр. 19], этот параграф — и, конечно, этот раздел — должен быть...

Это взято изэтот ответ TeX.SEЖана Оливье, я только исправил его, заменив \citenна \citenum.

В контексте конкретного настоящего вопроса он имеет следующие ограничения:

  • только числовые цитаты:Сложные стили цитирования с указанием автора/даты не поддерживаются.
  • без сортировки:Ссылки будут отображаться в порядке их упоминания в LaTeX, а не в порядке их указания в библиографии.

Связанный контент