Seitenzahlen ohne S dafür in Klammern

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


Gast

Beitrag von Gast »

Ich dachte, das mit den Klammern hättest Du schon hinbekommen, da Du zwar oben davon geredet hattest, aber nicht mehr explizit danach gefragt hast.
Ich würde ja
\DeclareFieldFormat{postnote}{\mkbibparens{\mkpageprefix[pagination][\mknormrange]{#1}}}
probieren. Wenn Du eine veraltete Version von biblatex hast, musst Du eventuell das [\mknormrange] weglassen.

Welche Fehlermeldungen bekommst Du denn? Wie sieht Dein Versuch der Integration denn aus? Stichwort Minimalbeispiel

Was würde es denn heißen, dass es an \ifcitation liegt? Bei mir funktioniert der Code und auch bei einem Klick auf den Online-Editor bekomme ich die von mir erwartete Ausgabe ohne Fehlermeldungen.


Mit faken meine ich, dass ich lokal im Driver (also im Literaturverzeichnis) den Schalter blx@citation auf wahr stelle und damit dafür sorge, dass \ifcitation wahr ist, obwohl wir eigentlich in einem Kontext sind, in dem die beiden falsch sind.

KJung
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 98
Registriert: Mo 13. Jul 2015, 11:01

Beitrag von KJung »

Für Zeitschriften habe ich das hinbekommen, für incollections bisher nicht. Ich scheine wirklich eine alte biblatex-Version zu verwenden. Bei mir funktioniert es ohne "[\mknormrange]".
Ich habe dann aber immer noch "S." in der Klammer. Wie bekomme ich die da raus?
Die Fehlermeldungen habe ich behoben, das war ein Fehler von mir. Auch wenn ich deinen Code im Overleaf öffne, funktioniert er einwandfrei.
\begin{filecontents*}{Literatur2.bib}  
@incollection{FringsGrundsicherung,
   Author = {Frings, Dorothee},
   Booktitle = {Arbeitsmarktintegration und Integrationspolitik -- zur notwendigen Verknüpfung zweier Politikfelder},
   gender ={sf},
   Date-Added = {2017-03-29 07:41:14 +0000},
   Date-Modified = {2017-10-17 14:02:51 +0000},
   Editor = {Knuth, Matthias},
   Number = {Arbeitsmarktintegration und Integrationspolitik},
   Pages = {23-41},
   Publisher = {Nomos},
   Title = {Grundsicherung für Arbeitsuchende und Migration: EInschlüsse und Ausschlüsse nach der Staatsangehörigkeit und dem Aufenthaltsstatus},
   Year = {2010}}
\end{filecontents*}
\begin{filecontents}{FNaktuell2.cbx}
\ProvidesFile{FNaktuell.cbx}[2017/07/12 v0.1f biblatex citation style]

\RequireCitationStyle{authortitle-dw}%
\ExecuteBibliographyOptions{%
%nopublisher=false,
namefont=italic,% Format für Nachnamen (biblatex-dw)
firstnamefont=italic,% Format für Vornamen (biblatex-dw)
edstringincitations=false,% Kein (Hrsg) im Fußnoten-Zitat (biblatex-dw)
}%
% Kein S. für die konkrete Fundstelle, dafür in Klammern:
\renewbibmacro*{cite:title}{%
  \iffieldundef{entrysubtype}%
    {\usedriver{}{cite:\thefield{entrytype}}}%
    {\usedriver{}{cite:\thefield{entrytype}:\thefield{entrysubtype}}}}
 
% Fußnotenformat für Festschriften:
\DeclareBibliographyDriver{cite:incollection}{%
  \usebibmacro{in:}%
   \printfield{number}   
   \iffieldundef{postnote}%   
     {\addcomma\space%
     \printfield{pages}}%
     {}%
}%

\endinput
\end{filecontents}

\documentclass[oneside]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[citestyle=FNaktuell2, bibstyle=authortitle-dw]{biblatex}
\bibliography{Literatur2}

\DeclareFieldFormat[incollection]{pages}{\ifcitation{\mkfirstpage{#1}}{#1}} 
\renewcommand*{\postnotedelim}{\addspace} 

\DeclareFieldFormat{postnote}{\mkbibparens{\mkpageprefix[pagination]{#1}}}

\begin{document}

1\footnote{\cite[][30]{FringsGrundsicherung}.}
\printbibliography
\end{document}

Gast

Beitrag von Gast »

Sorry, ich dachte irgendwie, Du wolltest das "S." behalten. Es ist wohl schon zu spät für mich und ich kann nicht mehr richtig lesen...
\DeclareFieldFormat{postnote}{\mkbibparens{#1}}
ist der Code für ohne.

KJung
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 98
Registriert: Mo 13. Jul 2015, 11:01

Beitrag von KJung »

Kein Problem, du hast mir schon sehr weitergeholfen. Es funktioniert auch alles. Mir ist jetzt nur aufgefallen, dass bei allen Quellen nun zwischen dem Titel und der Seitenzahl (unabhängig davon, ob sie mit S. oder ohne geschrieben wird, dass "," fehlt. Das liegt wohl an
\renewcommand*{\postnotedelim}{\addspace}
. (Das hattest du oben ja schon geschrieben. Wenn ich da jetzt aber wieder
\renewcommand*{\postnotedelim}{\addcomma\addspace}
draus mache, habe ich auch bei den Zeitschriften wieder zwischen der Anfangsseite und der konkreten Fundstelle in Klammern ein ",". Gibt es noch eine andere Möglichkeit das Komma nur für die Zeitschriften wegzubekommen?
Kann man den
\renewcommand*{\postnotedelim}{\addspace}
nicht nur für bestimmte Quellentypen machen? Sprich nur für Zeitschriften?

Wenn ich bsplw.
\DeclareFieldFormat[book]{postnote}{\addcomma\addspace\mkbibparens{#1}}
mache, sehen die Bücher schon wieder fast so aus, wie ich das will, nur dass ich die Seitenzahl nicht in Klammern, sondern "S. genaue Seitenzahl" haben will. Also wenn mir jemand sagen, kann, wie ich das hinbekomme, müsste ich am Ziel sein. Kann mann bei
\DeclareFieldFormat[book]{postnote}{\addcomma\addspace\mkbibparens{#1}}
dem "mkbib" nicht sagen, dass er einfach nur die Zahl in der Klammer darstellen soll? Bzw. mit einem S.?

%\RequirePackage{filecontents}
\begin{filecontents*}{Literatur.bib}  
@article{SteffenKessler,
   Author = {Steffen, Eva and Keßler, Stefan},
   Date-Added = {2015-07-21 07:03:54 +0000},
   Date-Modified = {2015-07-21 07:04:52 +0000},
   Journal = {ZAR},
   Pages = {245-248},
   Title = {Pacta sunt servanda - Ist der deutsche Vorbehalt zum Europäischen Fürsorgeabkommen wirksam?},
   Year = {2012}}
\end{filecontents*}
\begin{filecontents}{FNaktuell.cbx}
\ProvidesFile{FNaktuell.cbx}[2017/07/12 v0.1f biblatex citation style]

\RequireCitationStyle{authortitle-dw}%
\ExecuteBibliographyOptions{%
%nopublisher=false,
namefont=italic,% Format für Nachnamen (biblatex-dw)
firstnamefont=italic,% Format für Vornamen (biblatex-dw)
edstringincitations=false,% Kein (Hrsg) im Fußnoten-Zitat (biblatex-dw)
}%
% Kein S. für die konkrete Fundstelle, dafür in Klammern:
\renewbibmacro*{cite:title}{%
  \iffieldundef{entrysubtype}%
    {\usedriver{}{cite:\thefield{entrytype}}}%
    {\usedriver{}{cite:\thefield{entrytype}:\thefield{entrysubtype}}}}


%Das Feld, in dem sich die Anfangsseite befindet, ohne führendes S.~
% Falls bei pages mit Seitenbereichen gearbeitet wird, also
% z.B. pages = {797-900}, dann wird beim zitieren nur die Anfangsseite
% ausgegeben.
\DeclareFieldFormat[article]{pages}{\ifcitation{\mkfirstpage{#1}}{#1}}
% da reicht doch diese Zeile von oben

\renewcommand*{\postnotedelim}{\addspace} % Hier liegt das Problem!!!!!

% Fußnotenformat für article
\DeclareBibliographyDriver{cite:article}{%
  \printfield{journaltitle}%
  \setunit{\addspace}%
  \printfield{year}%
  \setunit{\addspace}%
  \printfield{pages}}
\endinput
\end{filecontents}

\documentclass[oneside]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[citestyle=FNaktuell, bibstyle=authortitle-dw]{biblatex}
\bibliography{Literatur}
\begin{document}

\section{Fazit}
123\footcite[vgl.][246]{SteffenKessler}
\printbibliography
\end{document}


KJung
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 98
Registriert: Mo 13. Jul 2015, 11:01

Beitrag von KJung »

Ich habe es jetzt mit
\DeclareFieldFormat[book]{postnote}{\addcomma\addspace\mkpageprefix{#1}}
gelöst.

Gast

Beitrag von Gast »

Ich halte es für eine Unsitte, die einleitende oder schließende Interpunktion in \DeclareFieldFormat zu stopfen. Das funktioniert zwar meist mehr oder weniger zum gewünschten Effekt, aber nur da biblatex mehrere Mechanismen hat, um aufeinander treffende Interpunktion zu verhindern, bei unsachgemäßer Nutzung anderer Funktionen ist das aber nicht immer gewährleistet.

Die "korrekte" Alternative ist leider recht kompliziert, da Befehle für Interpunktion nicht typspezifisch sind. Möglich wäre
\renewcommand*{\postnotedelim}{\ifentrytype{book}{\addcomma\space}{\addspace}}
das kann aber beliebig hässlich werden, wenn das für mehrere Typen mit unterschiedlichen Regeln gelten soll...

Antworten