Seitenzahlen im Postnote-Feld erkennen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

Markdown is OFF

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Seitenzahlen im Postnote-Feld erkennen

von ElEsido » Mi 22. Jul 2009, 16:59

Philipp Lehman, der Autor von Biblatex, hat den folgenden Code als Test vorgeschlagen:

Code: Alles auswählen

\iffieldundef{postnote}
 {POSTNOTE UNDEFINED}
 {\savefield{postnote}{\bbx@tempa}%
  \expandafter\ifnumerals\expandafter{\bbx@tempa}
    {POSTNOTE IS A PAGE OR PAGE RANGE}
    {POSTNOTE IS OTHER TEXT}}
Allerdings prüft dieses Code-Stück nicht, ob das postnote-Feld mit einem \pno oder \ppno beginnt. Weiss jemand, wie der Code um diese Prüfung ergänzt werden könnte?[/code]

Seitenzahlen im Postnote-Feld erkennen

von ElEsido » Mi 22. Jul 2009, 15:15

Hallo zusammen

Wenn man eine Quelle mit \footcite[23]{mueller} angibt, erkennt Biblatex ja, ob im Feld <postnote> eine Seitenzahl steht. Dies kann mit der Eingabe \pno oder \ppno forciert werden, z.B\footcite[\pno 3b]{<kürzel>} oder \footcite[\ppno 3b-4c]{<kürzel>}. Eine Abfrage irgendwo in Biblatex prüft, ob eine Seitenzahl steht oder forciert wird und setzt falls ja ein S. vorne daran.

Ich möchte diese Abfrage in einem Stil verwenden und je nach dem die Original-Seitenzahl des zitierten Werks in Klammern setzten oder nicht. (Bsp: "Müller, ZietschriftX 2008 (S. 203-215), S. 212." Bzw. "Müller, ZietschriftX 2008 S. 203-215 mit weiteren Hinweisen.")

Kann mir jemand helfen, den Code, der den Seitenzahl-Check macht, in meinem Stil-Makro zu verwenden?

Der Code, der dies steuert ist _vermutlich_ (ich kann so kompakt geschriebene Befehle leider nicht deuten) im File biblatex.sty ab Zeile 2194:

Code: Alles auswählen

\long\def\blx@mkpageprefix#1#2{%
\blx@imc@ifnumeral{#2}
{\blx@imc@bibstring{#1}\ppspace#2}
{\blx@imc@ifnumerals{#2}
{\blx@imc@bibstring{#1s}\ppspace#2}
{\begingroup
\def\pno{\blx@imc@bibstring{#1}}%
\def\ppno{\blx@imc@bibstring{#1s}}%
#2\endgroup}}}
Dieses Minimalbeispiel zeigt, worum es geht (Glossaries ist eingebunden, da ich dieses im Originaldokument auch verwende und es bei einem andern Lösungsansatz bereits ausschlaggebend war.)

Code: Alles auswählen

\documentclass[11pt, ngerman,oneside]{scrbook} 
\usepackage[T1]{fontenc} 
\usepackage[latin1]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage[style=authortitle-ibid]{biblatex}
\usepackage[babel,german=guillemets]{csquotes} 
\bibliography{faelle}
\usepackage[acronym=true]{glossaries}
\makeglossaries
\newacronym{ff}{ff.}{fortfolgende}
\newacronym{rpw}{RPW}{Recht und Politik des Wettebwerbs}
\glsunset{ff}

\begin{filecontents}{faelle.bib}
@jurisdiction{coop-carr,
Author = {Wettbewerbskommission},
Date = {2008.03.17},
Institution = {Weko},
Journaltitle = {\gls{rpw}},
Number = {4},
Pages = {593 ff.},
Title = {Coop\slash Carre\-four},
Titleaddon = {Ver\-f{\"u}\-gung der Wett\-be\-werbs\-kom\-mis\-sion vom 17.~M{\"a}rz 2008},
Year = {2008}}

@jurisdiction{test,
Author = {Wettbewerbskommission},
Date = {2004.03.17},
Institution = {Weko},
Journaltitle = {\gls{rpw}},
Number = {3},
Pages = {22 ff.},
Title = {Testfall},
Titleaddon = {Testentscheid},
Year = {2004}}
\end{filecontents}

% Es folgt die Anpassung des Biblatex-Stils. 

% Nachfolgend das Makro, das die verschiedenen Felder des Bib-Datensatzes darstellt

\newbibmacro{footcite-jurisdiction}{%
\iffieldundef{shorttitle}{\printfield{title}}{\printfield{shorttitle}}\addcomma\addspace
\iffieldundef{howpublished}{%
\printfield{journaltitle}\addspace%
\printfield{year}\addslash
\iffieldundef{issue}{}{\thefield{issue}}%
\iffieldundef{number}{}{\thefield{number}}%
}{\printfield{howpublished}}%
%%Hier käme die Abfrage, ob im Postnote-Feld eine Sietenzahl setht oder mit \pno der \ppno forciert worden ist
\iffieldundef{postnote}{\addspace\printfield{pages}}{%
%%Hier käme die Abfrage, ob im Postnote-Feld eine Sietenzahl setht oder mit \pno der \ppno forciert worden ist}%
% Wenn Seitenzahlen stehen, dann {\addspace(\thefield{pages})}
% Wenn keine Seitenzahl steht, dann {\addspace\printfield{pages}}
}}


% Hier die Re-Definition des Befehls \footcite: Einträge des Typs jurisdiction werden ausgesondert und dem obigen Makro zugewiesen. 
\DeclareCiteCommand%
{\footcite}% command
[\mkbibfootnote]%wrapper
{\bibsentence
\usebibmacro{prenote}}%precode
{\usebibmacro{citeindex}%
\ifthenelse{\equal{\thefield{entrytype}}{jurisdiction}}{\usebibmacro{footcite-jurisdiction}}{\usebibmacro{cite}}}%loopcode
{\multicitedelim}%sepcode
{\usebibmacro{cite:postnote}}%postcode


\begin{document} 

Dies ist der Fall ohne postnote-Feld\footcite{coop-carr}\\
\\
Dies ist der Fall mit einer Seitenzahl im postnote-Feld\footcite[\pno 600 \protect\gls{ff}]{coop-carr}. \\
\\
Dies ist der Fall mit einer Seitenzahl im postnote-Feld\footcite[600]{test}. \\
\\
Dies ist der Fall mit mehreren Seitenzahlen im postnote-Feld\footcite[600-602]{coop-carr}. \\
\\
Dies ist der Fall mit einer Nicht-Seitenzahl im postnote-Feld\footcite[Erwägung 3]{coop-carr}. \\
\end{document}
Ich bin für jede Hilfe dankbar.
Schöne Grüsse
ElEsido

P.S. ich verwende
biblatex 2009/07/04 v0.8e und
csquotes 2009/07/04 v4.4a

Code: Alles auswählen

[quote][/quote]

Nach oben