Gibt es eine Möglichkeit, bei biblatex \postnotedelim flexibel zu verwenden? Standardmäßig gibt \postnotedelim ein Komma und ein Leerzeichen aus. Für eine konkrete Textstelle ist das auch optimal:

Open in writeLaTeX
Vgl. Doe, Buch, S. 15. Anmerkung zur Literaturangabe.

Möchte ich aber ein Werk im Allgemeinen oder eine Gesetzesnorm in der Fußnote zitieren und eine Anmerkung dazu machen, ist das nicht mehr optimal, da immer ein Komma dabei ist:

Open in writeLaTeX
Vgl. Doe, Buch,. Anmerkung zur Literaturangabe.
Art. 1 GG,: »Die Würde des Menschen ist unantastbar«.

Ein Punkt oder Doppelpunkt als \postnotedelim würde dann besser passen:

Open in writeLaTeX
Vgl. Doe, Buch. Anmerkung zur Literaturangabe.
Art. 1 GG: »Die Würde des Menschen ist unantastbar«.

Möglich wäre natürlich vor \autocite ein \renewcommand{\postnotedelim}{\adddot\addspace} und danach wieder \renewcommand{\postnotedelim}{\adcomma\addspace}, aber das scheint mir sehr unpraktikabel zu sein. Daher die Frage: Lässt sich das flexibler gestalten?

Minimalbeispiel:

Open in writeLaTeX
\documentclass[fontsize=12pt,paper=a4,titlepage,twoside=false,headings=normal,numbers=noendperiod]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{filecontents}

\begin{filecontents}{Bibliographie.bib}
    @BOOK{Doe14,
      author = {Doe, John},
      title = {Buch},
      year = {2014},
      location = {Ort},
    }
    @BOOK{Joe14,
      author = {Joe, Dohn},
      title = {Anti-Buch},
      year = {2014},
      location = {Ort},
    }
}
\end{filecontents}

\usepackage[style=authortitle,
            language=ngerman,
            sorting=nyt,
            date=short,
            backend=biber]{biblatex}
\bibliography{Bibliographie.bib}

\usepackage[style=german,
            german=guillemets,
            parthreshold=true,
            autopunct=true]{csquotes}

\parskip2ex
\parindent0em

\begin{document}
Text mit konkreter Textstelle.\autocite[Vgl.][1]{Doe14} Text mit konkreter Textstelle und Anmerkung.\autocite[(Korrekt) Vgl.][\pno~1. Es muss aber die Mindermeinung von X, Y und Z beachtet werden]{Doe14} Text, bei dem am Ende ein Gesamtes Werk angegeben wird.\autocite[(Unschön) Vgl.][es muss aber die Mindermeinung von X, Y und Z beachtet werden]{Doe14} Dabei ist ein Komma eher unpassend, da es sich um einen eigenen Satz handelt -- es müsste also mit Punkt getrennt werden. Dies ist wegen \texttt{\textbackslash postnotedelim\{\textbackslash addcomma\textbackslash addspace\}} nicht möglich: Text.\autocite[(Fehlerhaft) Vgl.][. Es muss aber die Mindermeinung von X, Y und Z beachtet werden]{Doe14} Eine umständliche Lösung wäre: \texttt{\textbackslash renewcommand\{\textbackslash postnotedelim\}}:

\texttt{\textbackslash renewcommand\{\textbackslash postnotedelim\}\{\textbackslash adddot\textbackslash addspace\}}\\
\renewcommand{\postnotedelim}{\adddot\addspace}
Text, bei dem am Ende ein Gesamtes Werk angegeben wird.\autocite[(Korrekt) Vgl.][Es muss aber die Mindermeinung von X, Y und Z beachtet werden]{Doe14} Diese Lösung ist bei \texttt{\textbackslash autocites} nicht möglich.\autocites[(Korrekt) Vgl.][Es muss aber die Mindermeinung von X, Y und Z beachtet werden]{Doe14}[S. insb. die Position bei][\pno~1 (Fehlerhaft)]{Joe14}
\renewcommand{\postnotedelim}{\addcomma\addspace}\\
\texttt{\textbackslash renewcommand\{\textbackslash postnotedelim\}\{\textbackslash addcomma\textbackslash addspace\}}

\printbibliography
\end{document}

In der Definition, welche die Ausgabe der Fußnoten/Literaturangaben regelt, müsste somit bei dem Teil, der das optionale postnote-Argument ausgibt, geprüft werden, ob das Argument mit einem Satzzeichen(, ; . : [evtl. auch ? und !] startet und dann die Ausgabe von \postnotedelim unterdrücken. Diese Lösung ist insofern der Lösung mit \renewcommand vorzuziehen, als bei \autocites u.U. mehrere unterschiedliche Trennzeichen benötigt werden.

gefragt 17 Jul '14, 19:29

kurztipp's gravatar image

kurztipp
63136
Akzeptiert-Rate: 0%

bearbeitet 18 Jul '14, 00:16


Ich benutze expl3 um zu prüfen, ob das erste Zeichen der postnote eines von .,?! ist. Ist dies der Fall wird postnotedelim unterdrückt. Dabei reicht es nicht, dass das erste Zeichen von postnote auf eines der oben genannten expandiert. So liefert zum Beispiel

Open in Online-Editor
\def\dot{.}
\autocite[\dot\ postnote]{Doe14}

nicht das gewünschte Verhalten.

Open in Online-Editor
\begin{filecontents}{\jobname.bib}
@BOOK{Doe14,
  author = {Doe, John},
  title = {Buch},
  year = {2014},
  location = {Ort},
}
@BOOK{Joe14,
  author = {Joe, Dohn},
  title = {Anti-Buch},
  year = {2014},
  location = {Ort},
}
\end{filecontents}
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}

\usepackage[style=authortitle,backend=biber]{biblatex}
\addbibresource{\jobname.bib}

\usepackage{xparse}

\ExplSyntaxOn

\cs_generate_variant:Nn \tl_head:N { c }
\cs_generate_variant:Nn \tl_if_in:nnF { nx }

\newbibmacro*{postnote}{%
  \iffieldundef{postnote}
    {}
    {% Test if the postnote starts with any of .,?!
     % If not, set postnote
      \tl_if_in:nxF { .,?! }
       { \tl_head:c { abx@field@postnote } }
       { \setunit{\postnotedelim} }
      \printfield{postnote}}}

\ExplSyntaxOff

\begin{document}

\autocite[. postnote]{Doe14}
\autocite[, postnote]{Doe14}
\autocite[? postnote]{Doe14}
\autocite[! postnote]{Doe14}
\autocite[postnote]{Doe14}
\def\dot{.}
\autocite[\dot\ postnote]{Doe14}

\printbibliography
\end{document}

alt text

Permanenter link

beantwortet 12 Jul '16, 10:29

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×222
×25

gestellte Frage: 17 Jul '14, 19:29

Frage wurde gesehen: 8,428 Mal

zuletzt geändert: 12 Jul '16, 10:29