Satz eines vollständigen Zitats, dessen Titel mit einem Wort in Klammern endet

Satz eines vollständigen Zitats, dessen Titel mit einem Wort in Klammern endet

Ich verwende Biblatex und muss vollständige Zitate in meinen Dokumenttext setzen, also verwende ichMoewes \longfullciteBefehl. 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 \longfullcitekann 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:

Ausgabe des obigen Dokuments, die zeigt, dass der erste \longfullcite "In" korrekt großschreibt, der zweite jedoch nicht

Beachten Sie die inkonsistente Groß- und Kleinschreibung des Wortes „In“, das von den beiden \longfullciteBefehlen erzeugt wird. Im Gegensatz dazu wird „In“ in den von ausgegebenen Zitaten \printbibliographyfü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 \longfullcitenicht durch Ändern der .bibDatei)?

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. biblatexDer 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}

verwandte Informationen