之前有人在这里问过类似的问题,我发现符合 DIN 1505 的 .bbx 和 .cbx但它看起来不像alphadin
。遗憾的是,BibLaTeX 字母样式不适合我的目的。
因此我尝试修改文件但失败了。
我的目标是像这样的外观。它基本上是喧闹.bbx
,并.cbx
与字母风格相结合。
此外,没有作者的条目的标签应该是引用键的前 3 个字符 - 就像alphadin
会这样做但字母不会一样。
有人知道如何修改文件或解决此问题的方法吗?
答案1
当然,需要更多信息来指定字母样式,但下面的文档给出了一个开始。它需要 biber 作为后端。
这里\DeclareLabelalphaTemplate
指定了一个字母标签格式,它大致对应于下列之一,按优先级排序:
shorthand
场地- 该
label
字段加上最后两位数字year
- (截断)列表中姓氏的前三个字母(
labelname
当列表中只有一个项目时)加上姓氏的最后两位数字year
- (截断)中每个姓氏的首字母
labelname
,加上year
- 输入键的前三个字母
如果 的长度labelname
超过 ,maxalphanames
它将被截断为长度 的列表minalphanames
。默认选项设置为minalphanames=1
和maxalphanames=3
。截断在标签中通过字符指示\labelalphaothers
:
\newcommand*{\labelalphaothers}{+}
\newcommand*{\sortalphaothers}{\labelalphaothers}
这些可以用 重新定义\renewcommand*
。\sortalphaothers
变体仅用于排序,如果\labelalphaothers
使用任何格式化命令,则应重新定义。有关\DeclareLabelalphaTemplate
和 的详细信息\defbibenvironment
可以在 biblatex 手册中找到。
\documentclass{article}
\usepackage[backend=biber,citestyle=alphabetic,bibstyle=din]{biblatex}
% Use cite/entry key as fallback label
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{label}
\field[strwidth=3,strside=left,ifnames=1]{labelname}
\field[strwidth=1,strside=left]{labelname}
\field[final,strwidth=3]{citekey}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
% Add labels to bibliography - taken from alphabetic.bbx
\DeclareFieldFormat{labelalphawidth}{\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}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@online{bit:kiel,
title = {Arbeitsgruppe Angewandte Informatik (Wirtschaftsinformatik)},
url = {http://www.informatik.uni-kiel.de/bit/},
year = 2012}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{knuth:ct,companion,aksin,cms,kant:ku,bit:kiel}
\printbibliography
\end{document}
答案2
[style=alphabetic]
导入时使用,如:
\usepackage[style=alphabetic]{biblatex}
请注意,他的解决方案不符合 DIN 1505。它只是实现了与
\bibliographystyle{alphadin}
所以这并不能回答上面提出的问题,但是因为我在尝试找到我的答案提供的解决方案时发现了这个问题(我以某种方式弄明白了),它可能会对其他人到这里有所帮助。