用于引用图像和表格的自定义 biblatex 样式

用于引用图像和表格的自定义 biblatex 样式

我需要以非常特定的样式引用表格和图像以满足机构的要求。这些\printbibliography引用的最终输出应如下所示:

图 3.http://www.example.com/img/name.jpg,访问日期:2014 年 6 月 3 日

...

表 6.http://www.example.com/tables/tables.pdf,访问于2014年3月9日。

手动操作的话,应该是这样的:

\newcommand{\tablebib}[3]{%
    Table \ref{#1} \url{#2}, visited on \displaydate{date}%
}

我正在使用 biblatex 来引用其他文献,也想用它来引用那些参考文献。biblatex 如何输出这样的格式?

最终的参考书目结果应该是或多或少标准authoryear风格(我设法做到了这一点)和上述从互联网上引用图像和表格来源的风格(我不知道如何做到这一点)的混合:

Tomplinson, D.、Baeyer, CL、Stinson, JN、Sung, L. (2010):《儿童自我报告疼痛强度面部表情量表的系统评价》,《儿科学》,第 126 卷,第 5 期

...

图 3.http://www.example.com/img/name.jpg,访问于2014年3月6日。

另一个手动尝试是:

% arara: xelatex
% arara: biber
% arara: xelatex
\documentclass{scrartcl}
\usepackage[backend=biber,style=authoryear,sorting=nty]{biblatex}
\addbibresource{mwe.bib}

\begin{document}
\begin{table}[htb]
\begin{tabular}{l}
test
\end{tabular}
\caption{Description\cite{tab:test}}
\end{table}

\printbibliography
\end{document}

附有参考书目:

@Online{tab:test,
  Url                      = {http://www.example.com/images/image.jpg},
  Urldate                  = {2014-02-25},
  Timestamp                = {2014.06.13},
  Note                     = {Table \ref{tab:test}}
}

输出:

(2014 年)表??. 網址:http://www.example.com/images/image.jpg(访问日期:2014 年 2 月 25 日)

年份不应可见。引用应被解析。URL:不应显示,但网址本身应可见。

答案1

\ref应该指向表格标题的标签,而不是 bibitem 本身。这应该可以解决引用问题:

  \documentclass{scrartcl}
\usepackage[colorlinks, urlcolor=black, linkcolor=black]{hyperref} %if you want the link to be clickable

\usepackage{filecontents} 
\begin{filecontents} {mwe.bib}
@online{tab:test,
  author                   = {Doe, John},
  Url                      = {http://www.example.com/images/image.jpg},
  Urldate                  = {2014-02-25},
  Timestamp                = {2014.06.13},
  Note                     = {Table \ref{tab1}}, %<== this should point to your table caption label
  year                     = {2014}, %this is necessary for the in-text citation to work
}
\end{filecontents}

\usepackage[backend=biber, backref=true, style=authoryear, sorting=nty]{biblatex}
\addbibresource{mwe.bib}

\DeclareBibliographyDriver{online}{%this defines what will be printed in the bibliography for entries of type 'online'
  \usebibmacro{note+pages}
  \setunit{\addperiod\addspace}%Period+space after 'Note' field
  \usebibmacro{url+urldate}
  \usebibmacro{finentry}}


\begin{document}
\begin{table}
\caption{Figure legend here (\citeyear{tab:test})}{\label{tab1}} %<== this is what your \ref should be pointing to
\end{table}
Example \citeyear{tab:test} %This lets you cite only the year even if there is an author listed in your bib file, as opposed to \cite

\printbibliography
\end{document}

结果

编辑:

添加此项将删除URL:

\DeclareFieldFormat{url}{%
    {\url{#1}}}

相关内容