Großschreibung bei Präfixen ohne Leerzeichen

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


NetteNette
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Mi 4. Nov 2020, 15:02

Großschreibung bei Präfixen ohne Leerzeichen

Beitrag von NetteNette »

Ich habe unter den Autoren, die ich zitiere, Personen mit Namen, die ein kleingeschriebenen Präfix enthalten, das jedoch ohne Leerzeichen vor dem Namen steht.
Meine Frage ist: Gibt es eine Möglichkeit, dass dieses Präfix, wenn der Name am Satzanfang oder zu Beginn einer Fußnote steht, großgeschrieben wird? Befehle wie \Footcite helfen in diesem Fall ja nicht.
\begin{filecontents}{example.bib}
@book{DeSilva.2014,
	author = {deSilva, David A.},
	date = {2014},
	title = {Galatians. A Handbook on the Greek Text},
	address = {Waco, TX},
	publisher = {{Baylor University Press}},
	series = {BHGNT}
}

@book{Jonge.2003,
	author = {de Jonge, Marinus},
	date = {2003},
	title = {Pseudepigrapha of the Old Testament As Part of Christian Literature.},
	address = {Boston, MA},
	publisher = {Brill},
	series = {SVTP}
}
\end{filecontents}


\documentclass[a4paper, 12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[style=authortitle-dw,backend=biber,useprefix=true,series=beforeedition]{biblatex}
\addbibresource{example.bib}


\begin{document}
\Citeauthor{DeSilva.2014} sagt Folgendes: \enquote{Zitat}.\Footcite{DeSilva.2014} Es wäre schön, wenn der Name zu Beginn des Satzes und der Fußnote großgeschrieben würde. In der Satzmitte ist dagegen natürlich vollkommen richtig, dass \citeauthor{DeSilva.2014} kleingeschrieben wird.

Wenn es sich um ein richtiges Präfix mit Leerzeichen handelt gibt es natürlich kein Problem. \Citeauthor{Jonge.2003} ist ein Beispiel.\footcite{Jonge.2003}

\printbibliography
\end{document}

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 802
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Großschreibung bei Präfixen ohne Leerzeichen

Beitrag von MoeWe »

biblatex geht nicht davon aus, dass es jemals die Groß- und Kleinschreibung des Nachnamens ändern muss. Man kann das aber in den Code einbauen.
\documentclass[a4paper, 12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[style=authortitle-dw,backend=biber,useprefix=true,series=beforeedition]{biblatex}

\renewbibmacro*{name:family}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \mkbibcompletenamefamily{%
       \ifdefvoid{#3}
         {\ifcapital
            {\mkbibnamefamily{\MakeCapital{#1}}}
            {\mkbibnamefamily{#1}}}
         {\ifcapital
            {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
            {\mkbibnameprefix{#3}\isdot}%
          \ifprefchar{}{\bibnamedelimc}%
          \mkbibnamefamily{#1}}%
       \isdot}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibcompletenamefamily{%
       \mkbibnamefamily{#1}\isdot}}}

\renewbibmacro*{name:family-given}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \mkbibcompletenamefamilygiven{%
       \ifdefvoid{#3}
         {\ifcapital
            {\mkbibnamefamily{\MakeCapital{#1}}}
            {\mkbibnamefamily{#1}}}
         {\ifcapital
            {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
            {\mkbibnameprefix{#3}\isdot}%
          \ifprefchar{}{\bibnamedelimc}%
          \mkbibnamefamily{#1}}%
       \isdot
       \ifdefvoid{#4}
         {}
         {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
       \ifdefvoid{#2}
         {}
         {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibcompletenamefamilygiven{%
       \ifcapital
         {\mkbibnamefamily{\MakeCapital{#1}}}
         {\mkbibnamefamily{#1}}%
       \isdot
       \ifdefvoid{#4}
         {}
         {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
       \ifboolexpe{%
         test {\ifdefvoid{#2}}
         and
         test {\ifdefvoid{#3}}}
         {}
         {\revsdnamepunct}%
       \ifdefvoid{#2}
         {}
         {\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
       \ifdefvoid{#3}
         {}
         {\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}}

\begin{filecontents}[force]{\jobname.bib}
@book{DeSilva.2014,
	author = {deSilva, David A.},
	date = {2014},
	title = {Galatians. A Handbook on the Greek Text},
	address = {Waco, TX},
	publisher = {{Baylor University Press}},
	series = {BHGNT}
}
@book{Jonge.2003,
	author = {de Jonge, Marinus},
	date = {2003},
	title = {Pseudepigrapha of the Old Testament As Part of Christian Literature.},
	address = {Boston, MA},
	publisher = {Brill},
	series = {SVTP}
}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
\Citeauthor{DeSilva.2014} sagt Folgendes: \enquote{Zitat}.\Footcite{DeSilva.2014}
Es wäre schön, wenn der Name zu Beginn des Satzes und der Fußnote großgeschrieben würde.
In der Satzmitte ist dagegen natürlich vollkommen richtig, dass \citeauthor{DeSilva.2014} kleingeschrieben wird.

Wenn es sich um ein richtiges Präfix mit Leerzeichen handelt gibt es natürlich kein Problem.
\Citeauthor{Jonge.2003} ist ein Beispiel.\footcite{Jonge.2003}

\printbibliography
\end{document}
Auf Dauer wäre es vielleicht sicherer diese Funktion mit einer per-Namen-Funktion abzusichern. Ich hab nämlich das Gefühl, dass es im Allgemeinen besser wäre, die Namen wirklich nur wenn absolut nötig, einer Änderung der Groß- und Kleinschreibung zu unterziehen.

NetteNette
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Mi 4. Nov 2020, 15:02

Re: Großschreibung bei Präfixen ohne Leerzeichen

Beitrag von NetteNette »

Vielen Dank für diese Lösung!

Was würde eine "per-Namen-Funktion" bedeuten?

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 802
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: Großschreibung bei Präfixen ohne Leerzeichen

Beitrag von MoeWe »

Ich meinte Per-Name-Option statt "Per-Name-Funktion", sorry. Du würdest dann das "extended name format" nutzen und bei Bedarf (deSilva) eine Option mitgeben, wenn der Nachname in der Großschreibung angepasst werden soll. Wird die Option nicht gegeben, wird der Nachname wie bisher nicht angefasst. Das ist etwas sicherer, da wir dann die Nachnamen nicht unnötig der Großschreibfunktion aussetzen müssen.
\documentclass[a4paper, 12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}
\usepackage[style=authortitle-dw,backend=biber,useprefix=true,series=beforeedition]{biblatex}

\makeatletter
\newcommand*{\ifcapitalfamily}{%
  \ifcapital
    {\iftoggle{nnblx@capfamily}}
    {\@secondoftwo}}
\makeatother

\renewbibmacro*{name:family}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \mkbibcompletenamefamily{%
       \ifdefvoid{#3}
         {\ifcapitalfamily
            {\mkbibnamefamily{\MakeCapital{#1}}}
            {\mkbibnamefamily{#1}}}
         {\ifcapital
            {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
            {\mkbibnameprefix{#3}\isdot}%
          \ifprefchar{}{\bibnamedelimc}%
          \mkbibnamefamily{#1}}%
       \isdot}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibcompletenamefamily{%
       \mkbibnamefamily{#1}\isdot}}}

\renewbibmacro*{name:family-given}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \mkbibcompletenamefamilygiven{%
       \ifdefvoid{#3}
         {\ifcapitalfamily
            {\mkbibnamefamily{\MakeCapital{#1}}}
            {\mkbibnamefamily{#1}}}
         {\ifcapital
            {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
            {\mkbibnameprefix{#3}\isdot}%
          \ifprefchar{}{\bibnamedelimc}%
          \mkbibnamefamily{#1}}%
       \isdot
       \ifdefvoid{#4}
         {}
         {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
       \ifdefvoid{#2}
         {}
         {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibcompletenamefamilygiven{%
       \ifcapitalfamily
         {\mkbibnamefamily{\MakeCapital{#1}}}
         {\mkbibnamefamily{#1}}%
       \isdot
       \ifdefvoid{#4}
         {}
         {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}%
       \ifboolexpe{%
         test {\ifdefvoid{#2}}
         and
         test {\ifdefvoid{#3}}}
         {}
         {\revsdnamepunct}%
       \ifdefvoid{#2}
         {}
         {\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
       \ifdefvoid{#3}
         {}
         {\bibnamedelimd\mkbibnameprefix{#3}\isdot}}}}

\newtoggle{nnblx@capfamily}
\DeclareBiblatexOption{name}[boolean]{captalizefamilyname}{%
  \settoggle{nnblx@capfamily}{#1}}

\begin{filecontents}{\jobname.bib}
@book{DeSilva.2014,
  author    = {family=deSilva, given=David A., captalizefamilyname=true},
  date      = {2014},
  title     = {Galatians. A Handbook on the Greek Text},
  address   = {Waco, TX},
  publisher = {Baylor University Press},
  series    = {BHGNT}
}
@book{Jonge.2003,
  author    = {de Jonge, Marinus},
  date      = {2003},
  title     = {Pseudepigrapha of the Old Testament As Part of Christian Literature.},
  address   = {Boston, MA},
  publisher = {Brill},
  series    = {SVTP},
}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
\Citeauthor{DeSilva.2014} sagt Folgendes: \enquote{Zitat}.\Footcite{DeSilva.2014}
Es wäre schön, wenn der Name zu Beginn des Satzes und der Fußnote großgeschrieben würde.
In der Satzmitte ist dagegen natürlich vollkommen richtig, dass \citeauthor{DeSilva.2014} kleingeschrieben wird.

Wenn es sich um ein richtiges Präfix mit Leerzeichen handelt gibt es natürlich kein Problem.
\Citeauthor{Jonge.2003} ist ein Beispiel.\footcite{Jonge.2003}

\printbibliography
\end{document}
Wobei wir dann auch gleich dazu übergehen können, dass Du die Variante des Namens für den Satzanfang selbst angibst. Das ist sicherer, wenn der Name so komplex ist, dass das einfache \MakeCapital nicht gut genug ist. Dafür brauchen wir aber eine eigene .dbx-Datei, die hier von filecontents erstellt wird.
\documentclass[a4paper, 12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[babel,german=quotes]{csquotes}

\begin{filecontents*}{familycap.dbx}
\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,familycap}
\end{filecontents*}

\usepackage[
  backend=biber,
  datamodel=familycap,
  style=authortitle-dw,
  useprefix=true,
  series=beforeedition,
]{biblatex}

\DeclareNameFormat{family-given}{%
  \ifgiveninits
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartfamilycap}
      {\namepartgiveni}
      {\namepartprefix}
      {\namepartsuffix}}
    {\usebibmacro{name:family-given}
      {\namepartfamily}
      {\namepartfamilycap}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}%
  \usebibmacro{name:andothers}}

\DeclareNameFormat{family-given/given-family}{%
  \ifnumequal{\value{listcount}}{1}
    {\ifgiveninits
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartfamilycap}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:family-given}
         {\namepartfamily}
         {\namepartfamilycap}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}%
     \ifboolexpe{%
       test {\ifdefvoid\namepartgiven}
       and
       test {\ifdefvoid\namepartprefix}}
       {}
       {\usebibmacro{name:revsdelim}}}
    {\ifgiveninits
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}}%
  \usebibmacro{name:andothers}}

\DeclareNameFormat{labelname}{%
  \ifcase\value{uniquename}%
    \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartfamilycap}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \or
    \ifuseprefix
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffixi}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefixi}
        {\namepartsuffixi}}%
  \or
    \usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \fi
  \usebibmacro{name:andothers}}

\renewbibmacro*{name:family}[5]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#4#1}%
     \usebibmacro{name:hook}{#4#1}%
     \mkbibcompletenamefamily{%
       \ifdefvoid{#4}
         {\ifcapital
            {\mkbibnamefamily{#2}}
            {\mkbibnamefamily{#1}}}
         {\ifcapital
            {\mkbibnameprefix{\MakeCapital{#4}}\isdot}
            {\mkbibnameprefix{#4}\isdot}%
          \ifprefchar{}{\bibnamedelimc}%
          \mkbibnamefamily{#1}}%
       \isdot}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibcompletenamefamily{%
       \mkbibnamefamily{#1}\isdot}}}

\renewbibmacro*{name:family-given}[5]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#4#1}%
     \usebibmacro{name:hook}{#4#1}%
     \mkbibcompletenamefamilygiven{%
       \ifdefvoid{#4}
         {\ifcapital
            {\mkbibnamefamily{#2}}
            {\mkbibnamefamily{#1}}}
         {\ifcapital
            {\mkbibnameprefix{\MakeCapital{#4}}\isdot}
            {\mkbibnameprefix{#4}\isdot}%
          \ifprefchar{}{\bibnamedelimc}%
          \mkbibnamefamily{#1}}%
       \isdot
       \ifdefvoid{#5}
         {}
         {\bibnamedelimd\mkbibnamesuffix{#5}\isdot}%
       \ifdefvoid{#3}
         {}
         {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#3}\isdot}}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibcompletenamefamilygiven{%
       \ifcapital
         {\mkbibnamefamily{#2}}
         {\mkbibnamefamily{#1}}%
       \isdot
       \ifdefvoid{#5}
         {}
         {\bibnamedelimd\mkbibnamesuffix{#5}\isdot}%
       \ifboolexpe{%
         test {\ifdefvoid{#3}}
         and
         test {\ifdefvoid{#4}}}
         {}
         {\revsdnamepunct}%
       \ifdefvoid{#3}
         {}
         {\bibnamedelimd\mkbibnamegiven{#3}\isdot}%
       \ifdefvoid{#4}
         {}
         {\bibnamedelimd\mkbibnameprefix{#4}\isdot}}}}


\begin{filecontents}[force]{\jobname.bib}
@book{DeSilva.2014,
  author    = {family=deSilva, familycap=DeSilva, given=David A.},
  date      = {2014},
  title     = {Galatians. A Handbook on the Greek Text},
  address   = {Waco, TX},
  publisher = {Baylor University Press},
  series    = {BHGNT}
}
@book{Jonge.2003,
  author    = {de Jonge, Marinus},
  date      = {2003},
  title     = {Pseudepigrapha of the Old Testament As Part of Christian Literature.},
  address   = {Boston, MA},
  publisher = {Brill},
  series    = {SVTP},
}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
\Citeauthor{DeSilva.2014} sagt Folgendes: \enquote{Zitat}.\Footcite{DeSilva.2014}
Es wäre schön, wenn der Name zu Beginn des Satzes und der Fußnote großgeschrieben würde.
In der Satzmitte ist dagegen natürlich vollkommen richtig, dass \citeauthor{DeSilva.2014} kleingeschrieben wird.

Wenn es sich um ein richtiges Präfix mit Leerzeichen handelt gibt es natürlich kein Problem.
\Citeauthor{Jonge.2003} ist ein Beispiel.\footcite{Jonge.2003}

\printbibliography
\end{document}

Antworten