是否有一种书目样式可以biblatex
将数据按列排列,尤其是当所引用的作品是较大实体的一部分时?(比下面的模型更好。)
每个条目有多行的模型
\documentclass{minimal}
\begin{document}
\begin{tabular}{p{\parindent}*2{p{0.45\linewidth}}}
\multicolumn{2}{p{0.5\linewidth}}
{Authors} & Editors \\
& Title. Subtitle & Booktitle \\
& Chapter, Pages & Series Volume. Issue \\
& & Publisher, Place. Date, Edition \\
& DOI etc. & ISBN/ISSN etc. \\
& \multicolumn{2}{p{\linewidth}}{Comment, Access Date etc.} \\ % shared data
\end{tabular}
\end{document}
每个条目有 2 行的模型
\documentclass{minimal}
\begin{document}
\begin{tabular}{p{\parindent}*2{p{0.45\linewidth}}}
key & Authors: “Title. Subtitle” (Chapter, Pages).
DOI etc.
& Editors: “Booktitle” (Series Volume, Issue).
Publisher, Place. Date, Edition. ISBN/ISSN etc. \\
& \multicolumn{2}{p{\linewidth}}{Comment, Access Date etc.} \\ % shared data
\end{tabular}
\end{document}
每个条目占一行的模型
\documentclass{minimal}
\begin{document}
\begin{tabular}{p{\parindent}*2{p{0.45\linewidth}}}
key & Authors: “Title. Subtitle” (Chapter, Pages).
DOI etc. Comment, Access Date etc.
& Editors: “Booktitle” (Series Volume, Issue).
Publisher, Place. Date, Edition. ISBN/ISSN etc. \\
\end{tabular}
\end{document}
如果没有那样的事情,你会怎么做?(答案)
你为什么不这么做?(评论)
更新:
自从biblatex
书目应为列表,因此必须首先满足一些先决条件。这个问题似乎已得到解决,至少大部分是由@Audrey在一个答案从 2012 年开始,引入了\defbibtabular
等等。我不确定代码在biblatex
更新方面有多强大,因为它使用了\patchcmd
。
但是,按照那里要求的样式,作者姓名出现在两列中的第一列,其他所有内容都放在其右侧,而我的主要目标是将@article
和@journal
或@inbook
和@book
分成两列,并且可能将引用关键字放在第三列。
答案1
我认为我的问题的 MWE以自定义 biblatex 格式对齐/避免编号和标签可以作为您自己风格的起点。根据 Guido 的建议进行改进,最终源代码如下:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{csquotes}
\usepackage{rotating}
\usepackage[backend=biber, maxnames=99, sorting=none, hyperref=true]{biblatex}
\usepackage[colorlinks=true]{hyperref}
\begin{filecontents}{\jobname.bib}
@ARTICLE{mwe2012,
author = {Smith, A. and Johnson, B. and Willians, C.},
title = {The three most common surnames in the United States of America},
journal = {Review of Useless Knowledge},
year = {2012},
volume = {8},
number = {1},
pages = {290--290}
}
@ARTICLE{mwe2011,
author = {Miller, J. and Brown, D.},
title = {Most used surnames in fake passports},
journal = {Journal of Nosense Ranks},
year = {2011},
volume = {5},
number = {3},
pages = {1--130},
pmid = {1234567},
url = {http://www.mwe.com/mwe2011},
doi = {http://dx.doi.org/10.1016/jnr.2011.01.01},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\defbibenvironment{bibliography}
{\list
{\ifentrytype{article}
{\rotatebox[origin=c]{90}{
\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}%
\addspace%
\MakeSentenceCase{\thefield{entrytype}}}}
{\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\endlist}
{\item}
\DeclareFieldFormat{doi}{\printtext[bibhyperref]{#1}}
\DeclareFieldFormat{url}{\printtext[bibhyperref]{#1}}
% \DeclareNameFormat[article]{author}{\dotfill #1 \dotfill}
\DeclareFieldFormat[article,incollection]{title}{\bf #1\isdot}
\DeclareFieldFormat{journaltitle}{\emph{#1}}
\DeclareFieldFormat[article,incollection]{volume}{#1}
\DeclareFieldFormat[article]{number}{#1}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{year}{#1}
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\begin{tabular}{lp{0.75\textwidth}} \\
\textcolor{gray}{Authors:} & \printnames{author} \\
\textcolor{gray}{Title:} & \printfield{title} \\
\textcolor{gray}{Year:} & \printfield{year} \\
\textcolor{gray}{Journal:} & \printfield{journaltitle} \\
\textcolor{gray}{Volume:} & \printfield{volume} \\
\textcolor{gray}{Number:} & \printfield{number} \\
\textcolor{gray}{Pages:} & \printfield{pages} \\
\iffieldundef{url}{}{\textcolor{gray}{\sc url:} & \printfield{url} \\}%
\iffieldundef{doi}{}{\textcolor{gray}{\sc doi:} & \printfield{doi} \\}%
\end{tabular}
\vspace{1em}
\hrule
\usebibmacro{finentry}}
\begin{document}
\nocite{*}
\printbibliography[title=My example articles]
\end{document}
结果是: