我尝试使我的 bibmacros 适应新版本的 Biblatex,但现在当我使用它们时,我的引用中只显示年份。
我的 bibmacro 如下所示:
\newbibmacro{name:normalfall}{% Normalfall: 1,4,5,8
\textbf{\namepartfamily} % #1->\namepartfamily, #2->\namepartfamilyi
\textbf{\namepartgiveni} % #3->\namepartgiven, #4->\namepartgiveni
\namepartprefix % #5->\namepartprefix, #6->\namepartprefixi
\namepartsuffixi % #7->\namepartsuffix, #8->\namepartsuffixi
}
我使用它来:
\DeclareNameFormat{sortname}{% Bibliographie
\nameparts{#1}
\ifnum\value{uniquename}=0 % Normalfall
\ifuseprefix
{\usebibmacro{name:normalfall}}
{\usebibmacro{name:normalfall2}}%
\fi
文本下方的页面上只写有年份,没有写作者。
它看起来应该是这样的:
但它看起来像这样:
我希望我所写的我的问题是可以让人理解的。
感谢您的帮助!
编辑:
我正在使用我所在大学准备好的测试文件,其中除了引用之外一切正常。
.bib 文件示例:
@Book{Test,
Title = {TestTitle},
Author = {Testauthor, N.},
Year = {2007},
Publisher = {TestPublisher},
Address = {TestAdress},
Owner = {Testowner},
Timestamp = {2015.01.04}
}
我想在文本中使用它:
\documentclass[]{article}
\usepackage[ % Biblatex
backend=biber,
bibstyle=_dhbw_authoryear,
citestyle=authoryear,
uniquename=true, useprefix=true,
bibencoding=utf8]{biblatex}
\input{includes/_dhbw_biblatex-config.tex}
\bibliography{includes/literatur-datenbank.bib}
\begin{document}
Testauthor\footcite{Test} here is more text.
\end{document}
_dhbw_biblatex-config.tex 由 newbibmacro 和我在问题开头写的 DeclareNameFormat 组成。
我希望这会有所帮助,如果没有,请纠正我并询问更多信息。
编辑:我不知道是否应该删除旧部分,现在我将尝试提供所有需要的信息。
我的 MWE 是:
\documentclass[]{article}
\usepackage[ % Biblatex
backend=biber,
bibstyle=authoryear,
citestyle=authoryear,
uniquename=true, useprefix=true,
bibencoding=utf8]{biblatex}
\input{includes/_dhbw_biblatex-config.tex}
\bibliography{includes/literatur-datenbank.bib}
\begin{document}
Testauthor\footcite{Test} here is more text.
\end{document}
纳入的文献数据库(literatur-datenbank.bib)为:
@Book{Test,
Title = {TestTitle},
Author = {Testauthor, N.},
Year = {2007},
Publisher = {TestPublisher},
Address = {TestAdress},
Owner = {Testowner},
Timestamp = {2015.01.04}
}
_dhbw_biblatex-config.tex 是:
\newbibmacro{name:normalfallZ}{% complete first name: 1, ,5,8
\textbf{\namepartfamily} % #1->\namepartfamily, #2->\namepartfamilyi
\textbf{} % #3->\namepartgiven, #4->\namepartgiveni
\namepartprefix % #5->\namepartprefix, #6->\namepartprefixi
\namepartsuffixi % #7->\namepartsuffix, #8->\namepartsuffixi
}
%Order of authors
%
% http://golatex.de/viewtopic,p,80448.html#80448
% Argumente: siehe http://texwelt.de/blog/modifizieren-eines-biblatex-stils/
\DeclareNameFormat{labelname}{%
\ifnum\value{uniquename}=0 %
\ifuseprefix
{\usebibmacro{name:normalfallZ}}
\fi
}
我怎么说呢,我的 PDF 底部只显示年份,而不是作者。
感谢您的帮助!
答案1
名称格式的定义缺少对 的调用 \nameparts{#1}
。此命令填充名称的各个部分(对于每个部分,它会生成两个值,即完整值和初始值)。
因此\DeclareNameFormat
定义应该修改如下
\DeclareNameFormat{labelname}{%
\nameparts{#1}% <== add this line
\ifnum\value{uniquename}=0 %
\ifuseprefix
{\usebibmacro{name:normalfallZ}}
\fi
}
顺便说一下,各种条件的用法不清楚,因此定义可以简单地为:
\DeclareNameFormat{labelname}{%
\nameparts{#1}%
\usebibmacro{name:normalfallZ}%
}