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[]{}、引用の必須タグと、引用内の参照を「特定」するためのオプション部分の 2 つの部分があります。

オプション部分を使わない限り、\citet{}単独で複数の作品を引用することができます。\citet{a,b,c}しかし、オプションの引数ではどの作品に関係するかが曖昧なので、明らかにこれは機能しません。一般的に、その曖昧さは、それが特定の作品の正確な引用であると仮定することで解決されます。最後引用された作品。

複数のソースを正確に引用したい場合は、(私の知る限り)3 つのオプションがあります。

  1. biblatexに切り替えてください。biblatexには、まさにこの目的のための特別な引用コマンドがあります。Biblatex を使用したページの複数箇所の引用切り替える理由は数多くありますが、これが最も重要な理由の 1 つであるとは言えません。(APA スタイルの引用については、biblatex が特に注意深く記述され、安定しており、積極的に保守されているパッケージを持っていることは注目に値します。ビブラテックス-APA

  2. 例で行ったことをそのまま実行してください。 の代わりに\cites[1]{a}[2]{b}、ソフトウェアが引用の間に「セパレータ」を挿入する場所 (biblatex が提供するもの) を自分で に入れます\cite[1]{a}; \cite[2]{b}。このような引用が多数あり、「セパレータ」を頻繁に変更する予定がない限り、これで問題ありません。 (「セパレータ」を変更する可能性があると思われる場合は、常にマクロを定義して、一貫性を確保するために再定義することができます。ほとんどの場合、それはやりすぎです。)

  3. 非常に熱心な方は、biblatex\citesコマンドをエミュレートするものを書いてみてください。これは、いわゆる読者の練習問題として残されていますが、biblatex コードから何らかのアイデアが得られることは間違いありません。

答え2

同様のことを試みているが、複雑な引用スタイルを必要としない他の読者のために、\citesnatbib の簡単な再実装を以下に示します。

\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, p. 213; 1, p. 19]によれば、この段落、そしてもちろんこのセクションは、…であるべきである。

これはこのTeX.SEの回答\citenJean Olivier によるもので、を に置き換えることで調整しただけです\citenum

具体的な現在の質問の文脈では、次の制限があります。

  • 数値引用のみ:著者/日付を含む複雑な引用スタイルはサポートされていません。
  • 並べ替えなし:引用は参考文献の順序ではなく、LaTeX で指定された順序で表示されます。

関連情報