仅打印第一个姓氏

仅打印第一个姓氏

我正在使用 mik-tex 乳胶。

我需要引用大写姓氏的来源,这个定义有点用

\DeclareNameFormat{}{\uppercase{#1}}

但只有当作者只有一个时,它才有效。当作者很多时,姓氏会接连出现,这不是我想要的。

它应该只打印第一作者的姓氏。

最小示例:

latex 文件

\documentclass[
a4paper,
12pt,
ngerman
]{scrreprt}

\usepackage[style=authoryear,backend=bibtex]{biblatex}

\addbibresource{minimal.bib}

% sources should be the last name and in capital letters
\DeclareNameFormat{}{\uppercase{#1}}


\begin{document}

this works \cite{lakos1996large}. This doesn't work \cite{rajkovicusing}.

\nocite{*}

\printbibliography

\end{document}

最小.bib

@article{lakos1996large,
title={Large-scale C++ software design},
author={Lakos, John},
journal={Reading, MA},
year={1996}
}

@article{rajkovicusing,
title={Using CQRS Pattern for Improving Performances in Medical Information Systems},
author={Rajkovi{\'c}, Petar and Jankovi{\'c}, Dragan and Milenkovi{\'c}, Aleksandar},
year = {2013}
}

答案1

通过声明的姓名格式\DeclareNameFormat主要用于格式化姓名各部分的顺序(即,名字、姓氏、名字等)。

要更改名称的显示方式,biblatex提供包装器宏。因此,您需要使用

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

格式化姓氏和

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

格式化名字。(我使用了 LaTeX 命令,\MakeUppercase而不是 TeX\uppercase命令。有关详细信息,请参阅大小写转换的奇怪现象在英国 TeX 常见问题列表中)

你可能还想看看

\mkbibnamelast{}
\mkbibnamefirst{}
\mkbibnameprefix{}
\mkbibnameaffix{}

分别格式化姓氏、名字、姓名前缀(例如“von”、“van”、“de la”等)和词缀(例如“Jr.”、“Sr.”、“III”等)。

参见 § 4.10.1用户可定义的命令和挂钩biblatex文档

考虑这个用法示例

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}

\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
\renewcommand*{\mkbibnamefirst}[1]{\textbf{#1}}
\renewcommand*{\mkbibnameprefix}[1]{\MakeUppercase{#1}}
\renewcommand*{\mkbibnameaffix}[1]{\emph{#1}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{Uthor,
  author = {von Uthor, Jr., Arnold},
  year = {2001},
  title = {The Work},
}
@misc{UthorA,
  author = {Uthor, Arnold},
  year = {2011},
  title = {The Work II},
  subtitle = {Return of the Work},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

在此处输入图片描述


但请注意,全部大写在排版和文体上都有问题,使用小写字母可能会对你的文档有益。也许可以尝试

\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}

反而。

相关内容