我最近切换了一个文档,其中bibtex
使用阿尔法bibstyle 到biblatex
。字母的风格看起来不错,但我缺少阿尔法如果作者有多个条目,则生成。esbiblatex
文档指出该dashed
选项仅适用于作者年份和其他一些风格,但不适合字母的。为什么会这样?我该如何找回破折号?
答案1
另一种解决方案是使用ieee-alphabetic
由biblatex-ieee
捆绑。我还不确定风格上是否存在任何重大差异alphabetic
,但它至少具有基本要素:字母标签和使用破折号对相似作者进行分组。
\usepackage[style=ieee-alphabetic]{biblatex}
答案2
根据 T.Verron 的想法(现已删除),您可以使用支持 dash-option 的 bibstyle。您可以authortitle
使用默认的 ,而不是 的预定义书目环境alphabetic
。提供标签所需的所有选项都由 style 决定alphabetic
:
\documentclass{article}
\usepackage[style=alphabetic,bibstyle=authortitle]{biblatex}
\DeclareNameAlias{author}{default}
\DeclareNameAlias{editor}{default}
\DeclareNameAlias{translator}{default}
\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}}
\DeclareFieldFormat{shorthandwidth}{\mkbibbrackets{#1}}
\defbibenvironment{bibliography}
{\list
{\printtext[labelalphawidth]{%
\printfield{prefixnumber}%
\printfield{labelalpha}%
\printfield{extraalpha}}}
{\setlength{\labelwidth}{\labelalphawidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{##1\hss}}
{\endlist}
{\item}
\defbibenvironment{shorthands}
{\list
{\printfield[shorthandwidth]{shorthand}}
{\setlength{\labelwidth}{\shorthandwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\renewcommand*{\makelabel}[1]{##1\hss}}}
{\endlist}
{\item}
\addbibresource{biblatex-examples.bib}
\begin{document}
Text
\cite{knuth:ct,knuth:ct:a,knuth:ct:b,knuth:ct:c,knuth:ct:d,knuth:ct:e}
\printbibliography
\end{document}
要设置破折号的格式,您可以按如下方式定义破折号:
\renewcommand*{\bibnamedash}{\mbox{\textemdash\space}}