Seite 1 von 1

Biblatex: Eigener Zitierstil

Verfasst: Mi 25. Aug 2010, 08:56
von IrenaSekuta
Hallo zusammen,

nachdem ich biblatex zum Laufen bekommen habe, übe ich mich im Programmieren eigener Zitier- und Literaturstile.

Anbei mein Minimalbeispiel:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{filecontents}

% Eigenen Zitierstil definieren
\begin{filecontents}{Zitierstil.cbx}
% $Id: Zitierstil.cbx, v 0.1 2010/08/25 08:49:00$

\ProvidesFile{Zitierstil.cbx}
[\abx@cbxid $Id: Zitierstil.cbx, v 0.1 2010/08/25 08:49:00$]

\DeclareFieldFormat{citekey}{#1}

% Standardmakros umdefinieren
\renewbibmacro{prenote}{/}
\renewbibmacro{postnote}{/}

\newbibmacro*{cite}{%
  \printtext[bibhyperref]{\printfield[citekey]{entrykey}}}

\DeclareCiteCommand{\cite}
  {\usebibmacro{prenote}}
  {\usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\endinput 
\end{filecontents}

% Bibtex-Datei erzeugen
\begin{filecontents}{Literatur.bib}
@TECHREPORT{99,
author = {{Hans Mustermann}},
title = {Titel zu Hans Mustermann},
institution = {Test GmbH},
year = {1973-11-05},
number = {A99},
sortkey = {0099},
shorthand = {99}}

@TECHREPORT{4108,
author = {{Mark Bertold}},
title = {Titel zu Gabi Golata},
institution = {Neuer Test AG},
year = {1973-08-08},
number = {A4108},
sortkey = {4108},
shorthand = {4108}}

@TECHREPORT{108,
author = {{Gabi Opla}},
title = {Titel zu Hans Mustermann},
institution = {Test GmbH},
year = {1973-11-05},
number = {A108},
sortkey = {0108},
shorthand = {108}}

@TECHREPORT{7009,
author = {{Rüdiger Hins}},
title = {Titel zu Rüdger Hins},
institution = {Egal},
year = {1973-07-03},
number = {A7009},
sortkey = {7009},
shorthand = {7009}}

@TECHREPORT{44,
author = {{Vorname Nachname}},
title = {Titel zu 44},
institution = {Egal},
year = {1973-07-03},
number = {A44},
sortkey = {0044},
shorthand = {44}}
\end{filecontents}

\usepackage[%
	bibstyle=draft,			% Literaturverzeichnis-Stil
	citestyle=Zitierstil,            % Zitierstil
	block=par,					% Einträge im LitVerz durch Absätze trennen
	natbib = true,
	hyperref = true%
]{biblatex}

% Daten für Literaturverzeichnis
\bibliography{Literatur}

\begin{document}
Hier steht nun \cite[Anhang 1.2]{7009} ein sinnloser Satz \cite{99}, der nichts anderes \cite{4108} bewirken soll als  \cite{44} ein paar Zitate \cite{108} zu demonstrieren.

% Literatur ausgeben
\printbibliography   % Für Biblatex

\end{document}
Wie bekomme ich es hin, dass "\cite[Anhang 1.2]{7009}" im Text auch als "/7009, Anhang 1.2/ ausgegeben wird? Beim Erstellen des eigenen Zitierstiles habe ich den Zitierstil "draft" genommen und entschlackt. Verstanden habe ich vieles nicht. Aber eine Frage nach der anderen. :-)

Eventuell ist jemand bereit mit mir das Erstellen eines eigenen Zitirstiles durchzugehen, sodass ich am Beispiel lernen kann.

Gruß,

Irena

Verfasst: Mi 25. Aug 2010, 09:51
von domwass
Prenote und Postnote sind dazu da, die optionalen Argumente des \cite-
Befehls auszugeben, wie der folgende Pseudocode verdeutlichen soll:
% Pseudocode:
\cite[prenote][postnote]{BibTeX-Key}
Es ist also keine gute Idee, einfach prenote und postnote umzudefinieren.
Wenn die Schrägstriche also vor der prenote und nach der postnote
stehen sollen (und nicht einfach um den zitierten Literatureintrag selbst),
dann würde ich den \cite-Befehl entsprechend umdefinieren (siehe
Minimalbeispiel unten). Für \printtext und \addslash verweise ich jetzt
einfach mal auf die biblatex-Doku.
\documentclass{scrreprt} 
\usepackage[T1]{fontenc} 
\usepackage[ansinew]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage{filecontents} 

% Eigenen Zitierstil definieren 
\begin{filecontents}{Zitierstil.cbx} 
% $Id: Zitierstil.cbx, v 0.1 2010/08/25 08:49:00$ 

\ProvidesFile{Zitierstil.cbx} 
[\abx@cbxid $Id: Zitierstil.cbx, v 0.1 2010/08/25 08:49:00$] 

\DeclareFieldFormat{citekey}{#1} 

\newbibmacro*{cite}{% 
  \printtext[bibhyperref]{\printfield[citekey]{entrykey}}} 

\DeclareCiteCommand{\cite} 
  {\printtext{\addslash}%
   \usebibmacro{prenote}} 
  {\usebibmacro{cite}} 
  {\multicitedelim} 
  {\usebibmacro{postnote}%
   \printtext{\addslash}} 

\endinput 
\end{filecontents} 

% Bibtex-Datei erzeugen 
\begin{filecontents}{\jobname.bib} 
@TECHREPORT{99, 
author = {{Hans Mustermann}}, 
title = {Titel zu Hans Mustermann}, 
institution = {Test GmbH}, 
year = {1973-11-05}, 
number = {A99}, 
sortkey = {0099}, 
shorthand = {99}} 

@TECHREPORT{4108, 
author = {{Mark Bertold}}, 
title = {Titel zu Gabi Golata}, 
institution = {Neuer Test AG}, 
year = {1973-08-08}, 
number = {A4108}, 
sortkey = {4108}, 
shorthand = {4108}} 

@TECHREPORT{108, 
author = {{Gabi Opla}}, 
title = {Titel zu Hans Mustermann}, 
institution = {Test GmbH}, 
year = {1973-11-05}, 
number = {A108}, 
sortkey = {0108}, 
shorthand = {108}} 

@TECHREPORT{7009, 
author = {{Rüdiger Hins}}, 
title = {Titel zu Rüdger Hins}, 
institution = {Egal}, 
year = {1973-07-03}, 
number = {A7009}, 
sortkey = {7009}, 
shorthand = {7009}} 

@TECHREPORT{44, 
author = {{Vorname Nachname}}, 
title = {Titel zu 44}, 
institution = {Egal}, 
year = {1973-07-03}, 
number = {A44}, 
sortkey = {0044}, 
shorthand = {44}} 
\end{filecontents} 

\usepackage[% 
   bibstyle=draft,         % Literaturverzeichnis-Stil 
   citestyle=Zitierstil,            % Zitierstil 
   block=par,               % Einträge im LitVerz durch Absätze trennen 
   natbib = true, 
   hyperref = true% 
]{biblatex} 

% Daten für Literaturverzeichnis 
\bibliography{\jobname} 

\begin{document} 
Hier steht nun \cite[Anhang 1.2]{7009} ein sinnloser Satz \cite{99}, der nichts anderes \cite{4108} bewirken soll als  \cite{44} ein paar Zitate \cite[vgl.][]{108} zu demonstrieren. 

% Literatur ausgeben 
\printbibliography   % Für Biblatex 

\end{document}
Gruß,
Dominik.-