
Мне нужно сослаться на элемент, у автора которого нет фамилии, только имя (псевдоним). Я бы хотел, чтобы система распознавала его как имя (потому что при полиглоссии и французском варианте фамилии пишутся малыми буквами). Моя цель — писать имена в метках или записях обычными буквами, а не малыми буквами.
Я использую biblatex, но, полагаю, может быть, есть решение для обычного использования biblio?
Я уже попробовал эти две вещи:
@book{one,
author={{}, William}, % Results in [ , William]
author={William}, % Results in [WILLIAM]
...
}
но в первом случае метка пустая и в списке отображается запятая, а во втором случае предполагается, что имя является фамилией.
Есть ли у вас какие-либо идеи, как действовать дальше?
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{test,
title={Le petit prince},
author={de Saint-Exup{\'e}ry, Antoine},
year={1943},
}
@book{one,
author = {William},
title = {First try},
year = {2001},
}
@book{two,
author = {{}, William},
title = {Second try},
year = {2001},
}
\end{filecontents*}
\usepackage{polyglossia}
\setmainlanguage{french}
\usepackage[
backend=biber,
style=authoryear,
sorting=anyt,
labelalpha,
]{biblatex}
\addbibresource{\jobname.bib}
\DeclareNameAlias{sortname}{family-given}
\begin{document}
Look at book [\cite{one}] ! And book [\cite{two}]!
And look at book [\cite{test}]!
\printbibliography
\end{document}
решение1
Адаптирован изhttps://tex.stackexchange.com/a/429110/263192
\documentclass{article}
\begin{filecontents*}[overwrite]{\jobname.bib}
@book{test,
title={Le petit prince},
author={de Saint-Exup{\'e}ry, Antoine},
year={1943},
}
@book{three,
author = {William},
author+an = {=pseudonym},
title = {Third try},
year = {2022},
}
\end{filecontents*}
\usepackage{polyglossia}
\setmainlanguage{french}
\usepackage[
backend=biber,
style=authoryear,
sorting=anyt,
labelalpha,
]{biblatex}
\addbibresource{\jobname.bib}
\renewcommand*{\mkbibnamefamily}[1]{%
\iffieldannotation{pseudonym}
{#1}
{\textsc{#1}}
}
\DefineBibliographyExtras{french}{\restorecommand\mkbibnamefamily}
\DeclareNameAlias{sortname}{family-given}
\begin{document}
[\cite{test}]
[\cite{three}]
\printbibliography
\end{document}