使用下面的示例,我如何修改姓氏和首字母之间的分隔符?目前这是一个逗号,例如 Fox, P.,它应该只是一个空格:Fox P。
还有一个类似的问题:我怎样才能删除首字母后面的句点?
\RequirePackage{filecontents}
\begin{filecontents}{sample.bib}
@ARTICLE{liu:11,
author = {Peter Fox and Richard Rabbit and Franc Bird},
title = {Animals are the better humans},
journal = {Horse and Hound},
year = {2011},
volume = {10},
pages = {11--15}
}
\end{filecontents}
\documentclass[a4paper,ngerman]{scrartcl}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[style=authortitle,firstinits=true]{biblatex}
\bibliography{sample}
\begin{document}
Samplecite~\cite{liu:11}.
\printbibliography
\end{document}
当前状态
答案1
将其放在加载 biblatex 包之后。如果我理解正确的话,那么您只想从首字母中删除点。
\makeatletter
\def\MKbibnamefirst#1{\expandafter\mkbibnamefirst@i#1..\@nil}
\def\mkbibnamefirst@i#1.#2.#3\@nil{#1}
\renewbibmacro*{name:last-first}[4]{%
\ifuseprefix
{\usebibmacro{name:delim}{#3#1}%
\usebibmacro{name:hook}{#3#1}%
\ifblank{#3}{}{%
\ifcapital
{\mkbibnameprefix{\MakeCapital{#3}}\isdot}
{\mkbibnameprefix{#3}}%
\ifpunctmark{'}{}{\addhighpenspace}}%
\mkbibnamelast{#1}\isdot
\ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}%
\ifblank{#2}{}{\addlowpenspace\mkbibnamefirst{#2}}}
{\usebibmacro{name:delim}{#1}%
\usebibmacro{name:hook}{#1}%
\mkbibnamelast{#1}\isdot
\ifblank{#4}{}{\addlowpenspace\mkbibnameaffix{#4}\isdot}%
% \ifblank{#2#3}{}{\addcomma}%
\ifblank{#2}{}{\addlowpenspace\MKbibnamefirst{#2}}%
% \ifblank{#3}{}{\addlowpenspace\mkbibnameprefix{#3}\isdot}
}}
\makeatother