Fallschutz mit Schwerpunkt in Biblatex

Fallschutz mit Schwerpunkt in Biblatex

Nach der Frage Welche Groß- und Kleinschreibung muss beim Speichern von Titeln in der Bibliografiedatenbank verwendet werden?Ich speichere Titel in Groß- und Kleinschreibung in der BIB-Datei und {Schütze} Eigennamen usw., was ich biblatex-chicagobisher verwendet habe und bei dem ich auf keine Probleme gestoßen bin, da Chicago Groß- und Kleinschreibung ohnehin vorschreibt.

Aber jetzt habe ich Probleme biblatex-apamit Anführungszeichen und Hervorhebungen – APA bevorzugt Groß- und Kleinschreibung. Da \mkbibquote{}und \mkbibemph{}bereits die Groß- und Kleinschreibung des Inhalts schützen, wird die Groß- und Kleinschreibung aufgehoben, wenn man sie in zusätzliche Klammern setzt {\mkbibquote{}}. Aber dann habe ich eine Reihe von Problemen.

Betrachten Sie dieses MWE:

% !TEX TS-program = xelatexmk
\documentclass{article} 

\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{bib.bib}

@book{Author2000,
    Title = {This is a Title with Something in {\mkbibquote{Quotes that Should Be Downcased}}},
    Author = {Author, Anton},
    Date = {1990},
}
@book{Author2000a,
    Title = {{\mkbibquote{But if the Title starts in Quotes}} It Turns into All Caps},
    Author = {Author, Anton},
    Date = {2000},
}
@book{Author2000b,
    Title = {A Discussion of the Book {\mkbibemph{{My} New Book}}: It Should Keep the First Word Capitalized},
    Author = {Author, Anton},
    Date = {2010},
}
@book{Author2000c,
    Title = {{\mkbibemph{And if the Title starts with Emphasis}} It also Turns into All Caps and Doesn't Apply the Emphasis},
    Author = {Author, Anton},
    Date = {2001},
}
@book{Author2000d,
    Title = {And If {\mkbibquote{an Acronym {{{AAEE}}} is Included}}, How to Preserve it?},
    Author = {Author, Anton},
    Date = {2011},
}

\end{filecontents}
\addbibresource{bib.bib}

\begin{document}
\autocites{Author2000,Author2000a,Author2000b,Author2000c,Author2000d}
\printbibliography % print the bibliography 
\end{document}

Die Ausgabe ist folgende:

Bildbeschreibung hier eingeben

Es gibt zahlreiche Probleme. Wenn mkbibquoteoder mkbibempham Anfang der Zeichenfolge ausgegeben werden, wird die gesamte Zeichenfolge in GROSSBUCHSTABEN umgewandelt. Außerdem habe ich keine Ahnung, wie ich bestimmte Wörter in einer Zeichenfolge schützen kann, die bereits von mkbibquoteoder umschlossen ist mkbibemph.

Antwort1

Die Satzschreibfunktion für biblatexist in LaTeX implementiert. Die Satzschreibfunktion von BibTeX hingegen ist direkt in BibTeX implementiert. Das bedeutet, dass es einige subtile und nicht so subtile Unterschiede zwischen den beiden gibt. Insbesondere biblatexversucht die Satzschreibfunktion von , Makros nach Möglichkeit zu erweitern.

Das Hauptproblem hierbei ist, dass geschweifte Klammern mit Bedeutung überladen sind: In LaTeX dienen sie als Argumenttrennzeichen oder zur Gruppierung; in BibTeX schützen sie Zeichenfolgen vor der Änderung der Groß- und Kleinschreibung und markieren LaTeX-Makros für Nicht-ASCII-Zeichen wieä -> {\"a} (vgl.Wie schreibt man „ä“ und andere Umlaute und Akzentbuchstaben im Literaturverzeichnis?). Die unterschiedlichen Bedeutungen kollidieren von Zeit zu Zeit. In diesen Fällen sind Workarounds erforderlich, um das Problem zu lösen.

Siehe auch die jüngstenhttps://github.com/plk/biblatex/issues/871und verknüpfte Themen sowie die Dokumentationsergänzungenhttps://github.com/plk/biblatex/commit/863fea969a9f1d37d7f944265cb276cf18293334Undhttps://github.com/plk/biblatex/commit/a291e72a6c8ba2b896eb3f53ada6cc938c2cfa86.

Für die Anwendungsfälle, die Sie im MWE zeigen, kann ich die folgende Problemumgehung anbieten. Die Idee besteht darin, die Verwendung von Klammern durch die Verwendung von abgegrenzten Argumenten (eine Art \foo <argument>\endfooSyntax) zu umgehen. Abgegrenzte Argumente bringen ihre eigenen Probleme mit sich, wenn sie verschachtelt sind, aber sie funktionieren im MWE gut genug.

\documentclass{article} 
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}

\protected\def\horriblemkbibquote#1\endhorriblemkbibquote{\mkbibquote{#1}}
\let\endhorriblemkbibquote\relax
\protected\def\horriblemkbibemph#1\endhorriblemkbibemph{\mkbibemph{#1}}
\let\endhorriblemkbibemph\relax

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Author2000,
  title  = {This is a Title with Something in {\mkbibquote{Quotes that Should Be Downcased}}},
  author = {Author, Anton},
  date   = {1990},
}
@book{Author2000a,
  title = {\horriblemkbibquote {But} if the Title starts in Quotes\endhorriblemkbibquote{} It Turns into All Caps},
  author = {Author, Anton},
  date = {2000},
}
@book{Author2000b,
  title = {A Discussion of the Book \horriblemkbibemph{My} New Book\endhorriblemkbibemph{}: It Should Keep the First Word Capitalized},
  author = {Author, Anton},
  date = {2010},
}
@book{Author2000c,
  title = {\horriblemkbibemph {And} if the Title starts with Emphasis\endhorriblemkbibemph{} It also Turns into All Caps and Doesn't Apply the Emphasis},
  author = {Author, Anton},
  date = {2001},
}
@book{Author2000d,
  title = {And If \horriblemkbibquote an Acronym {AAEE} is Included\endhorriblemkbibquote{}, How to Preserve it?},
  author = {Author, Anton},
  date = {2011},
}

\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
\autocites{Author2000,Author2000a,Author2000b,Author2000c,Author2000d}
\printbibliography % print the bibliography 
\end{document}

Autor, A. (1990). Dies ist ein Titel mit etwas in „Anführungszeichen, das klein geschrieben werden sollte“.//Autor, A. (2000). „Aber wenn der Titel in Anführungszeichen beginnt“, wird er in Großbuchstaben geschrieben.//Autor, A. (2001). Und wenn der Titel mit einer Hervorhebung beginnt, wird er ebenfalls in Großbuchstaben geschrieben und die Hervorhebung wird nicht angewendet.//Autor, A. (2010). Eine Diskussion über das Buch Mein neues Buch: Das erste Wort sollte groß geschrieben werden.//Autor, A. (2011). Und wenn „ein Akronym AAEE enthalten ist“, wie soll es beibehalten werden?

Auf lange Sicht scheint mir die wünschenswerte Lösung die Implementierung einer neuen Funktion zur Änderung der Groß- und Kleinschreibung zu sein, die ein anderes Markup zur Angabe der geschützten Zeichenfolgen verwendet, sodass geschweifte Klammern nicht mehr damit kollidieren.

Die Funktion zur Änderung der Groß- und Kleinschreibung von BibTeX weist ähnliche Probleme auf. Sie schreibt Wörter am Anfang der Zeichenfolge nicht groß, sodass sie nicht unter dem GROSSBUCHSTABEN-Problem leidet, aber die beiden anderen Probleme mit dem Schützen innerhalb des Schutzes sind ebenfalls vorhanden.

verwandte Informationen