我正在使用 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}}
反而。