
У моего друга проблема, когда он использует \footcite
вместе с authorstyle-icomp
и хочет, чтобы такие вещи, как "ibid." (ebd. на немецком языке) были заглавными, когда они находятся в начале a footnote
. Кроме того, в его библиографии есть арабские фамилии, такие как "al-Kabir", которые также должны быть заглавными, если a footnote
начинается с них. Так что в общем-то: сноски всегда должны начинаться с заглавной буквы.
Я попытался решить проблему с помощью макроса, который нашел здесьhttps://stackoverflow.com/questions/2818119/автоматически-заглавные-первые-буквы-первого-слова-в-новом-предложении-в-латексе( \uppercasesingleletter
), который, к сожалению, (а) по-прежнему все пишет заглавными буквами и (б) не позволяет интегрировать себя в обновленную footnote
команду.
Вот минимальный нерабочий пример:
\documentclass{scrartcl}
\usepackage{csquotes}
\usepackage{polyglossia}
\setmainlanguage[spelling=new]{german}
\def\uppercasesingleletter#1{\uppercase{#1}}
\let\oldfootnote\footnote
% compiles, but doesn't do anything
\renewcommand\footnote[1]{\oldfootnote{\uppercasesingleletter{#1}}}
% does not compile in the first place
% \renewcommand\footnote[1]{\oldfootnote{\uppercasesingleletter{#1}}}
\begin{filecontents}{test.bib}
@book{ali:title:2008,
title = {Ali's Title},
author = {Ali, Jamal},
date = {2008}
}
@book{azzayn:title:1965,
title = {Az-Zayn's Title},
editor = {az-Zayn, Ahmad},
date = {1965}
}
\end{filecontents}
\usepackage[backend=biber,citestyle=authoryear-icomp]{biblatex}
\addbibresource{test.bib}
\DeclareFieldFormat*{citetitle}{\emph{#1}}
\begin{document}
\uppercasesingleletter{only the first letter of this should be uppercase!}
To this here I want to make a reference.\footcite[p. 14]{ali:title:2008} And another one.\footcite[p. 15]{ali:title:2008}
However, what follows needs some more explaining.\footnote{\cite[p. 16]{ali:title:2008}, compare \cite[p. 141]{azzayn:title:1965}.}
First we go back to the first source,\footcite[p. 12]{ali:title:2008} and then we can see that this is an entirely different thing though.\footcite[p. 150]{azzayn:title:1965}
\end{document}
решение1
Это не сработает. \uppercase
Это примитив, который будет нормально работать с простым текстом, но не с произвольным содержимым и не со сложными командами, такими как \cite
.
В вашем случае я также не вижу необходимости его использовать. Сноски начинаются с заглавной буквы уже в большинстве случаев. Есть \Cite command
, а для az-Zayn вы можете использовать \autocap
:
@book{azzayn:title:1965,
title = {Az-Zayn's Title},
editor = {\autocap{a}z-Zayn, Ahmad},
date = {1965}
}
(смотрите такжеBiblatex, заглавные буквы в арабских именах и префиксах имен)
\documentclass{scrartcl}
\usepackage{csquotes}
\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage[backend=biber,citestyle=authoryear-icomp]{biblatex}
\addbibresource{bib.bib}
\begin{document}
\footcite[14]{ali:title:2008}\footcite[1]{ali:title:2008}
\footnote{\Cite[16]{ali:title:2008}, compare \cite[141]{azzayn:title:1965}.}
\footcites[16]{ali:title:2008}[compare][141]{azzayn:title:1965}
\footcite[12]{ali:title:2008} \footcite[150]{azzayn:title:1965}
\end{document}
Кстати: не добавляйте "п. " в примечаниях. Пусть это сделает biblatex.