更改 \namepartgiveni 的格式

更改 \namepartgiveni 的格式

我正在尝试以我自己的 BibLaTeX 样式更改姓名首字母的格式,但无法使其正常工作。

以下是 MWE:

\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\DeclareNameFormat{LAST-first}{%
  \usebibmacro{name:family-given}
    {\MakeUppercase{\namepartfamily}}%.. WORKS
    % {\namepartgiveni}%................ WORKS
    {\MakeLowercase{\namepartgiveni}}%.. DOESN'T WORK
    {\namepartprefix}%
    {\namepartsuffix}%
    \usebibmacro{name:andothers}%
}
\DeclareNameAlias{default}{LAST-first}%

\begin{document}
  \cites{aksin}{baez/article}{bertram}
  \printbibliography
\end{document}

(我实际上想有条件地用小写字母打印整个名字,但我认为仅用\namepartgiveni小写字母就足以说明问题。)

我也尝试在宏中更改它name:family-given,但出现相同的错误(! Missing = inserted for \ifnum.等等)。


编辑:

以下回答实际上不符合我的要求,因为它不仅改变了参考书目,还改变了引文的风格。以下是另一个 MWE:

\documentclass{article}
\usepackage[style=abnt]{biblatex}
\addbibresource{biblatex-examples.bib}

\renewcommand*{\mkbibnamefamily}[1]{\MakeUppercase{#1}}

\begin{document}
  \textcites{aksin}{baez/article}{bertram}
  \printbibliography
\end{document}

如您所见,名称在正文中也是大写的,而不仅仅是在参考书目中。所以我又回到了原点。有什么想法吗?

答案1

好吧,我甚至不知道我是如何设法弄清楚这一点的,因为它不在手册中,我只是从中随机读取了几行代码biblatex.def,但显然我们可以通过重新定义来改变每个部分的格式\mkbibnamefamily\mkbibnamegiven等等。

因此,对于我最初的例子来说,这是可行的:

\renewcommand*{\mkbibnamegiven}[1]{\ifgiveninits{\MakeLowercase{#1}}{#1}}

我不确定这是否是最佳做法,所以如果有人有异议,请告诉我。不过到目前为止,它似乎运行良好。

编辑:根据@moewe 上面的评论,重新定义必须在内部,\AtBeginBibliography这样它才不会影响引用。

相关内容