当引文按章节分组时如何正确引用

当引文按章节分组时如何正确引用

我想对每个部分的参考文献进行编号,并在前面加上该部分的编号。但是,我需要在另一个小节中引用某个部分的参考文献,但我的解决方案不允许这样做。事实上,代码如下:

\documentclass{article}

\pagestyle{empty}

\usepackage{filecontents}

\begin{filecontents*}{test.bib}

@article{A1,
  keywords = {articles},
  title={First Paper},
  author={Green},
  journal={Journal 1}, 
  note={based on \cite{C2}},
  year={2014}
}

@article{A2,
  keywords = {articles},
  title={Second paper},
  author={Smith},
  journal={Journal 2}, 
  year={2013}
}

@article{C1,
  keywords = {conferences},
  title={First Communication},
  author={Jack},
  journal={Conference 1}, 
  year={2012}
}

@article{C2,
  keywords = {conferences},
  title={Second Communication},
  author={John},
    journal={Conference 2}, 
  year={2011}
}
\end{filecontents*}

\usepackage[
  backend=biber,
  defernumbers=true,
  citestyle=numeric,
  refsection=section 
]{biblatex}

\DeclareFieldFormat{labelnumber}{\mkbibsecnum{#1}}
\newrobustcmd{\mkbibsecnum}[1]{\thesection-#1\relax}

\addbibresource{test.bib}
\begin{document}
\section{Articles}
\nocite{*}
\printbibliography[
  title={Articles},
  heading=none,
  keyword=articles,
  resetnumbers=true 
]

\section{Conferences}
\nocite{*}
\printbibliography[
  title={Conferences},
  heading=none,
  keyword=conferences,
  resetnumbers=true 
]

\end{document}

产生(我使用粗体表示问题所在):

1 篇文章

[1-1] Green.“第一篇论文”. 见:期刊 1(2014 年)。根据[1-4]

[1-2] Smith. “第二篇论文”. 刊于:期刊 2 (2013).

2 次会议

[2-1] 杰克。“第一次沟通”。见:第 1 次会议(2012 年)。

[2-2] 约翰。“第二次沟通”。见:第 2 次会议(2011 年)。

我希望第一行是:

[1-1] Green.“第一篇论文”. 见:期刊 1(2014 年)。基于[2-2]

欢迎任何帮助。

答案1

这里有一个使用 latex crossref 机制来定义书目参考标签的技巧。

诀窍是重新定义如何处理参考书目(使用 提供的功能biblatex)。要重新定义它,我们使用enumitem,它允许我们指定标签和参考文献的格式。我们还必须\cite相应地重新定义。

\usepackage{enumitem}
\usepackage[
  backend=biber,
  defernumbers=true,
  citestyle=numeric,
  refsegment=section 
]{biblatex}

\DeclareCiteCommand{\cite}
  [\mkbibbrackets]
  {}
  {\ref{\thefield{entrykey}}}
  {\addcomma}
  {\iffieldundef{postnote}{}{\addcomma\addspace\printfield{postnote}}}

\defbibenvironment{bibliography}
  {\begin{enumerate}[label={[\thesection-\arabic*]},ref=\thesection-\arabic*]}
  {\end{enumerate}}
  {\item\label{\thefield{entrykey}}}

\addbibresource{test.bib}

\begin{document}
\section{Articles}\label{sec:article}
\nocite{*}
\printbibliography[
  title={Articles},
  heading=none,
  keyword=articles,
  resetnumbers=true,
]

\section{Conferences}\label{sec:conf}
\nocite{*}
\printbibliography[
  title={Conferences},
  heading=none,
  keyword=conferences,
  resetnumbers=true,
]

\end{document}

在此处输入图片描述

相关内容