在参考书目中,我希望将所有作者的姓名都放在 scshape 中 - 我的意思是包括首字母。请考虑以下代码:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{textcase}
\usepackage[babel,italian=guillemets]{csquotes}
\usepackage[style=philosophy-verbose,backend=biber,classical=true,%
firstinits=true,volnumformat=strings,volumeformat=romansc,sorting=nyt,%
indexing]{biblatex}
\DeclareFieldFormat[article,book,inbook,incollection]{author}%
{\textsc\MakeTextLowercase{#1}}
\nocite{*}
\begin{filecontents*}{\jobname.bib}
@book{ bertelli:2012,
author = "Lucio Bertelli",
title = "Tra storia e utopia",
publisher = "Edizioni dell'Orso",
location = "Alessandria",
year = "2012",
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\printbibliography
\end{document}
嗯,字符串
\DeclareFieldFormat[article,book,inbook,incollection]{author}%
{\textsc\MakeTextLowercase{#1}}
没有产生任何结果。那么,我该怎么办?谢谢!
答案1
只需添加选项,scauthors
让参考书目和引文中的作者姓名都采用小写字母即可。您还可以选择scauthorsbib
或scauthorscite
。参见 文档第 8 页第 6 节biblatex-philosophy
。
如果您确实想对整个名称使用小型大写字母,则必须重新定义设置scauthors
选项并\texsc
用\textlcsc
命令替换时发生的情况,借用@Gonzalo Medina 的帖子:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{ebgaramond}
\usepackage{textcase}
\usepackage[babel,italian=guillemets]{csquotes}
\usepackage[style=philosophy-verbose,backend=biber,classical=true,scauthors = true, %
firstinits=true,volnumformat=strings,volumeformat=romansc,sorting=nyt,%
indexing]{biblatex}
\nocite{*}
\begin{filecontents*}{\jobname.bib}
@book{ bertelli:2012,
author = {Lucio Bertelli},
title = {Tra storia e utopia},
publisher = {Edizioni dell'Orso},
location = {Alessandria},
year = {2012},
}
\end{filecontents*}
\newcommand\textlcsc[1]{\textsc{\MakeLowercase{#1}}}
\AtBeginBibliography{%
\iftoggle{bbx:scauthors}{%
\DeclareNameFormat{sortname}{%
\renewcommand{\mkbibnamefirst}{\textlcsc}%
\renewcommand{\mkbibnamelast}{\textlcsc}%
\renewcommand{\mkbibnameprefix}{\textlcsc}%
\renewcommand{\mkbibnameaffix}{\textlcsc}%
\ifnumequal{\value{listcount}}{1}
{\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
\ifblank{#3#5}
{}
{\usebibmacro{name:revsdelim}}}
{\iffirstinits
{\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}%
\usebibmacro{name:andothers}}}%
{}}%
\addbibresource{\jobname.bib}
\begin{document}
\printbibliography
\end{document}