Ich verwende Biblatex und muss vollständige Zitate in meinen Dokumenttext setzen, also verwende ichMoewes \longfullcite
Befehl. Während es die meiste Zeit korrekt funktioniert, gibt es Probleme mit Biber/BibTeX-Einträgen, bei denen das letzte Wort eines Felds in Klammern eingeschlossen ist (um Großschreibung zu erzwingen). In diesen Fällen \longfullcite
kann es sein, dass das folgende Wort nicht richtig großgeschrieben wird. Nehmen wir das folgende Beispiel:
\documentclass{article}
\usepackage{biblatex}
\makeatletter
\newcommand{\tempmaxup}[1]{\def\blx@maxcitenames{\blx@maxbibnames}#1}
\makeatother
\DeclareCiteCommand{\longfullcite}[\tempmaxup]
{\usebibmacro{prenote}}
{\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
@inproceedings{blow2015,
author = {Blow, Joe},
title = {{GNU} loves me},
year = 2015,
booktitle = {Proceedings of Some Conference},
}
@inproceedings{blow2016,
author = {Blow, Joe},
title = {I love {GNU}},
year = 2016,
booktitle = {Proceedings of Some Conference},
}
\end{filecontents}
\addbibresource{test.bib}
\begin{document}
\nocite{*}
\noindent
\longfullcite{blow2015}\\
\longfullcite{blow2016}
\printbibliography
\end{document}
Hier ist die Ausgabe:
Beachten Sie die inkonsistente Groß- und Kleinschreibung des Wortes „In“, das von den beiden \longfullcite
Befehlen erzeugt wird. Im Gegensatz dazu wird „In“ in den von ausgegebenen Zitaten \printbibliography
für beide Einträge korrekt großgeschrieben.
Was verursacht diese Inkonsistenz und wie kann ich sie beheben oder umgehen (vorzugsweise durch Ändern der Definition und \longfullcite
nicht durch Ändern der .bib
Datei)?
Antwort1
Dies ist ein bekanntes Problem (https://github.com/plk/biblatex/issues/295) und betrifft alle Zitate im Text, obwohl es wahrscheinlich nur bei etwas \fullcite
-ähnlichem wirklich sichtbar ist. Leider sind die Chancen für eine richtige Lösung ziemlich gering. biblatex
Der Interpunktionstracker von ändert vorhandene Spacefactors stark, aber dies in Zitaten zu tun, kann unerwünschte Folgeeffekte für Text außerhalb von Zitaten haben.
Sie müssten \@
am Ende eines Titels einen Großbuchstaben hinzufügen. Aber Sie können das automatisch im Format erledigen lassen, wenn Sie möchten
\DeclareFieldFormat{title}{\mkbibemph{#1\@}}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{\mkbibquote{#1\isdot\@}}
\DeclareFieldFormat
[suppbook,suppcollection,suppperiodical]
{title}{#1\@}
Antwort2
Schmutziger Hack:
Fügt etwas Unsichtbares ohne Breite ein. Ich bin sicher, dass dies Probleme verursachen kann, ich weiß nur noch nicht, welche Probleme :)
\documentclass{article}
\usepackage{biblatex}
\makeatletter
\newcommand{\tempmaxup}[1]{\def\blx@maxcitenames{\blx@maxbibnames}#1}
\makeatother
\DeclareCiteCommand{\longfullcite}[\tempmaxup]
{\usebibmacro{prenote}}
{\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
@inproceedings{blow2015,
author = {Blow, Joe},
title = {{GNU} loves me},
year = 2015,
booktitle = {Proceedings of Some Conference},
}
@inproceedings{blow2016,
author = {Blow, Joe},
title = {I love {GNU}\mbox{}},
year = 2016,
booktitle = {Proceedings of Some Conference},
}
\end{filecontents}
\addbibresource{test.bib}
\begin{document}
\nocite{*}
\noindent
\longfullcite{blow2015}\\
\longfullcite{blow2016}
\printbibliography
\end{document}