Zwei- oder dreibuchstabige Initialen in der Bibliographie mit Biblatex

Zwei- oder dreibuchstabige Initialen in der Bibliographie mit Biblatex

In meiner Bibliographie muss ich Vornamen unter Beibehaltung von Digraphen und Trigraphen abkürzen.

  • John sollte als J abgekürzt werden.
  • Clare sollte als Cl abgekürzt werden.
  • Charles sollte als Ch abgekürzt werden.
  • Christine sollte als Chr. abgekürzt werden.
  • Philippe sollte mit Ph. abgekürzt werden.
  • usw.

Die Lösung besteht darin, den Vornamen in den bibliographischen Daten zu ändern von

Karl

Zu

{\relax Ch}arles


Im folgenden Beispiel wird das \DeclareSourcemapAnpassungsmakro in Biblatex zum Ändern Charlesverwendet {\relax Ch}arles, aber ich suche nach einer allgemeineren Lösung, die alle Vornamen, die mit zwei oder drei Konsonanten beginnen, automatisch ändert.

\documentclass{article}
\usepackage{filecontents}
 \begin{filecontents}{\jobname.bib}
  @book{Book1,
  author = {Doe, Charles},
  title  = {An Important Book},
  publisher = {Publisher},
  date = {2012},
}
@book{Book2,
  author = {Doe, Charlotte},
  title  = {Another Important Book},
  publisher = {Publisher},
  date = {2014},
}
@book{Book3,
  author = {Smith, Theodore},
  title  = {A very Important Book},
  publisher = {Publisher},
  date = {2016},
}
\end{filecontents}
\usepackage[style=verbose,firstinits=true, backend=biber]{biblatex}
\DeclareSourcemap{
 \maps[datatype=bibtex]{
    \map{
    \step[fieldsource=author, 
            match={Charles},
            replace=\regexp{\{\\relax \x20Ch\}arles}]
  }
 }
}
\addbibresource{\jobname.bib}
\begin{document}

\cite{Book1}

\cite{Book2}

\cite{Book3}

\end{document}

Ergebnis

Antwort1

Ein möglicher Ausgangspunkt wäre die Verwendung des Codes, den Yves de Saint-Pern im Unterricht geschrieben hatdroit-fr, was ich unten übersetze.

BEARBEITEN :Die hier bereitgestellten regulären Ausdrücke erfassen auch Nachnamen, was außerhalb von Biblatex zu Problemen führen kann, beispielsweise in Indizes, die mit erstellt wurden imakeidx. Eine vorläufige Lösung für dieses Problem isthier bereitgestellt.

Sie können es in einer Datei verwenden biber.confoder in Ihre einschließen .bbx.

Einige Sprachen erfordern möglicherweise zusätzliche Regex-Muster für Vornamen, diese sind jedoch relativ einfach hinzuzufügen.

\DeclareStyleSourcemap{%
  \maps[datatype=bibtex]{%
    \map{%
        % Author field
      \step[fieldsource=author,%
        match={\regexp{\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))(\S*,)}},%
        replace={\regexp{\{$1\}$3}}]% Protect last names (first last)
      \step[fieldsource=author,%
        match={\regexp{([^,]\s)\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))}},%
        replace={\regexp{$1\{$2\}}}]% Protect last names (last, first)
      \step[fieldsource=author,%
        match={\regexp{\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))([^\}])}},%
        replace={\regexp{\{\\relax\{\}$1\}$3}}]% Insert \relax after abbreviating
      % Editor field
      \step[fieldsource=editor,%
        match={\regexp{\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))(\S*,)}},%
        replace={\regexp{\{$1\}$3}}]% Protect last names (first last)
      \step[fieldsource=editor,%
        match={\regexp{([^,]\s)\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))}},%
        replace={\regexp{$1\{$2\}}}]% Protect last names (last, first)
      \step[fieldsource=editor,%
        match={\regexp{\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))([^\}])}},%
        replace={\regexp{\{\\relax\{\}$1\}$3}}]% Insert \relax after abbreviating
}}}%

Was die regulären Ausdrücke betrifft, bin ich kein Experte, aber ich würde vermuten, dass der Ausdruck Folgendes bedeutet:

\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))(\S*,)

Ein Wort ( \b), das mit ( beginnt \S*, bedeutet: endet mit einer beliebigen Anzahl von Zeichen außer Leerzeichen): Chr(Chris) oder Ch(Charles) oder Th(Thomas) oder Ph(Philippe) oder eine beliebige Kombination, die mit einem Konsonanten beginnt (der [B-DF-HJ-NP-TV-XZTeil ist eine Reihe von Bereichen: Buchstaben B bis D, F bis H, J bis N, P bis T, V bis X, Z), gefolgt von loder r(Bruno oder Claire würden in diese Kategorie fallen).

verwandte Informationen