natbibはソートと圧縮をしません

natbibはソートと圧縮をしません

オプション付きでnatbibを使用している記事がありますsort&compressが、動作していないようです

\documentclass[11pt,english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=3cm,bmargin=3cm,lmargin=2cm,rmargin=2cm}
\usepackage{mathrsfs}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[sort&compress,numbers]{natbib}
\usepackage{babel}
\begin{document}

\title{Title}
\maketitle
\begin{abstract}
Abstract text
\end{abstract}

\section{Introduction}

Introduction text \citet{J2009,J2013,J2016}.

\bibliographystyle{unsrtnat}
\bibliography{references}

\end{document}

これは参照ファイルです

% filename references.bib

@Article{J2016,
  author  = {Jappo, P.M.},
  title   = {Title1},
  journal = {Mech. Res. Commun.},
  year    = {2016},
  volume  = {X},
  pages   = {1--2},
}

@Article{J2013,
  author  = {Jappo, P.M.},
  title   = {Title2},
  journal = {Phys. Lett. A},
  year    = {2013},
  volume  = {X},
  pages   = {1--2},
}

@Article{J2009,
  author  = {Jappo, P.M.},
  title   = {Title3},
  journal = {Math. Comput. Simul},
  year    = {2009},
  volume  = {X},
  pages   = {1--2},
}

答え1

natbibは、数字のシーケンスのみをソートして圧縮するため、引用をソートできません\citet。数字のシーケンスを圧縮する前に、名前が同じかどうかをテストしません。したがって、\citeまたはのみが\citep圧縮できます。

\documentclass[11pt,english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[sort&compress,numbers]{natbib}
\usepackage{babel}
\begin{document}

\title{Title}
\maketitle
\begin{abstract}
Abstract text
\end{abstract}

\section{Introduction}

Introduction text \cite{J2009,J2013,J2016}.

\bibliographystyle{unsrtnat}
\bibliography{\jobname}

\end{document}

ここに画像の説明を入力してください

確かに、ドキュメントはnatbib誤解を招く可能性があります。

著者が同じであることが分かっている場合は、

Introduction text \citeauthor{J2009} \cite{J2009,J2013,J2016}.

取得するため

ここに画像の説明を入力してください

しかし、これは単なる回避策であり、解決策ではないと思います。

本当の解決策は、biblatexbiber既存のドキュメントのnatbibすべてを変更したくない場合は、オプション を使用できます。\citet

\begin{filecontents*}{\jobname.bib}
% filename references.bib

@Article{J2016,
  author  = {Jappo, P.M.},
  title   = {Title1},
  journal = {Mech. Res. Commun.},
  year    = {2016},
  volume  = {X},
  pages   = {1--2},
}

@Article{J2013,
  author  = {Jappo, P.M.},
  title   = {Title2},
  journal = {Phys. Lett. A},
  year    = {2013},
  volume  = {X},
  pages   = {1--2},
}

@Article{J2009,
  author  = {Jappo, P.M.},
  title   = {Title3},
  journal = {Math. Comput. Simul},
  year    = {2009},
  volume  = {X},
  pages   = {1--2},
}
\end{filecontents*}

\documentclass[11pt,english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[style=numeric-comp,sortcites,natbib]{biblatex}
\usepackage{babel}
\addbibresource{\jobname.bib}

\begin{document}

\title{Title}
\maketitle
\begin{abstract}
Abstract text
\end{abstract}

\section{Introduction}

Introduction text \citet{J2009,J2013,J2016}.

\printbibliography

\end{document}

結果は次のようになります:

ビブラテックスソリューション

関連情報