Anpassen neuer Befehle für Literaturkategorien

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


neptun
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 27. Sep 2012, 09:49

Anpassen neuer Befehle für Literaturkategorien

Beitrag von neptun »

Hallo zusammen

Ich bin nun zwar schon etwas geübter im Umgang mit LaTeX, doch will mir folgendes Problem einfach nicht gelingen:

Bei uns am Institut ist es üblich, dass die Bibliographie nach Literatur, resp. Quellen unterschieden wird. Das hab ich mit dem \cite Befehl auch wunderbar hingekriegt. Nun möchte ich aber das selbe noch mit dem \cites Befehl hinkriegen, was dann überhaupt nicht klappen will. Hat da vielleicht jemand von euch eine Idee wie ich das hin bekomme?

Hier ein Minimalbeispiel:
\documentclass[a4paper, 12pt]{article}

\usepackage{typearea}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage[style=historische-zeitschrift,sortcites,backend=bibtex]{biblatex}
\usepackage[right]{eurosym}
\usepackage{calc}
\usepackage{caption}
\usepackage[bottom]{footmisc}
\usepackage{units}
\usepackage{setspace}
%\usepackage{romannum}
\newenvironment{altDescription}[1]
	{\begin{list}{}
		{\renewcommand\makelabel[1]{\textrm{##1:}\hfil}
		\settowidth\labelwidth{\makelabel{#1}}
		\setlength\leftmargin{\labelwidth+\labelsep}}}
	{\end{list}}
\usepackage[pdftex]{hyperref}
\usepackage{hypcap}

\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{.}}}

\bibliography{bib/umbrail}
\defbibheading{bibliography}{\section{Bibliographie}}
\DeclareBibliographyCategory{literatur}
\DeclareBibliographyCategory{quelle-unprint}
\DeclareBibliographyCategory{quelle-print}
\DeclareBibliographyCategory{quelle-abb}
\defbibheading{quelle-abb}{\subsection{Abbildungen}}
\defbibheading{literatur}{\subsection{Literatur}}
\defbibheading{quelle-unprint}{\subsection{ungedruckte Quellen}}
\defbibheading{quelle-print}{\subsection{gedruckte Quellen}}
\newcommand{\citeliteratur}[2][]{\cite[#1]{#2}\addtocategory{literatur}{#2}}
\newcommand{\citesliteratur}[2][]{\cites[#1]{#2}\addtocategory{literatur}{#2}}
\newcommand{\citequellep}[2][]{\cite[#1]{#2}\addtocategory{quelle-print}{#2}}
\newcommand{\citequelleup}[2][]{\cite[#1]{#2}\addtocategory{quelle-unprint}{#2}}
\newcommand{\citeabb}[2][]{\cite[#1]{#2}\addtocategory{quelle-abb}{#2}}
\urlstyle{same}


% ===============
% BibLaTeX custom style for history
% ===============

\DeclareNameAlias{default}{last-first}

%\DeclareNameAlias{sortname}{last-first}

%\DeclareNameFormat{sortname}{%
%  \usebibmacro{name:last-first}{#1}{#3}{#5}{#7}%
%  \usebibmacro{name:andothers}}

% ===============
% end of BibLaTeX custom style for history
% ===============	



\begin{document}

\tableofcontents

\thispagestyle{empty}

\clearpage

\setstretch{1.5}

\section{Einführung}
Ein kurzer Beispieltext\footnote{\citesliteratur[S. 1]{hls.wk} [S. 311.]{bio.sprech} [S. 3]{po.all}}

Noch mehr Beispieltext\footnote{\citeliteratur[S. 70.]{po.all}}

\renewcommand{\labelnamepunct}{\addcolon\space}
\printbibheading
\bibbycategory

\end{document}

\begin{filecontents*}{123.bib} %% This BibTeX bibliography file was created using BibDesk.
%% http://bibdesk.sourceforge.net/


%% Created for Sandro Portmann at 2015-08-24 10:48:18 +0200 


%% Saved with string encoding Unicode (UTF-8) 



@book{po.all,
	Address = {Basel},
	Author = {Mario Podzorski},
	Date-Added = {2015-08-22 13:30:42 +0000},
	Date-Modified = {2015-08-24 08:48:17 +0000},
	Shorttitle = {Kriegsalltag},
	Title = {Kriegsalltag und Kriegserfahrungen von Schweizer Soldaten am Umbrail und im M{\"u}nstertal im ersten Weltkrieg},
	Year = {2015}}

@book{bio.sprech,
	Address = {Z{\"u}rich},
	Author = {Daniel Sprecher},
	Date-Added = {2014-11-25 09:47:44 +0000},
	Date-Modified = {2014-11-25 09:48:27 +0000},
	Shorttitle = {Generalstabschef},
	Title = {Generalstabschef Theophil Sprecher von Berneck. Seine milit{\"a}risch-politische Leistung unter Ber{\"u}cksichtigung der Neutralit{\"a}t},
	Year = {2000}}

@article{hls.wk,
	Author = {Hans Rudolf Fuhrer and Mauro Cerutti and Marc Perrenoud and Markus B{\"u}rgi and},
	Date-Added = {2014-11-25 09:43:54 +0000},
	Date-Modified = {2014-11-25 09:45:58 +0000},
	Journal = {Historisches Lexikon der Schweiz (online)},
	Pages = {zuletzt gepr{\"u}ft: 25.11.2014},
	Shorttitle = {Weltkrieg},
	Title = {Weltkrieg, Erster},
	Url = {http://www.hls-dhs-dss.ch/textes/d/D8926.php},
	Year = {2006},
	Bdsk-Url-1 = {http://www.hls-dhs-dss.ch/textes/d/D23942.php}}

\end{filecontents*}

Hoffe das klappt mit dem Minimalbeispiel und ihr könnt mir weiterhelfen.

Beste Grüsse und schonmal besten Dank für eure Hilfe.

Gast

Beitrag von Gast »

Mit dem Beispiel hat es nur fast geklappt. Aber das war kein Problem.

Ich halte es hier für sinnvoll, die neuen Kommandos direkt über \DeclareCiteCommand zu definieren, dann bekommt man eine vernünftige Behnadlung von Pre- und Postnote und kann sogar direkt das gewünschte Multicite-Makro definieren.

Z.B
\DeclareCiteCommand{\litcite}
  {\usebibmacro{prenote}}
  {\addtocategory{literatur}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \iffootnote
     {\usebibmacro{footcite}}
     {\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
und dann
\DeclareMultiCiteCommand{\litcites}{\litcite}{\multicitedelim}
Analog funktioniert das mit den anderen Quellen-Typen.

Ich bin mir nicht ganz sicher, dass das der eleganteste Weg ist, aber es ist sicher einer, der funktioniert und gute Ergebnisse liefert. Vielleicht fällt mir ja noch was besseres ein.

Vollständiges MWE mit allen Kommandos
\documentclass[a4paper, 12pt]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[style=historische-zeitschrift,sortcites,backend=bibtex]{biblatex}
\usepackage{hyperref}
\usepackage{filecontents}

\defbibheading{bibliography}{\section{Bibliographie}}
\DeclareBibliographyCategory{literatur}
\DeclareBibliographyCategory{quelle-unprint}
\DeclareBibliographyCategory{quelle-print}
\DeclareBibliographyCategory{quelle-abb}
\defbibheading{quelle-abb}{\subsection{Abbildungen}}
\defbibheading{literatur}{\subsection{Literatur}}
\defbibheading{quelle-unprint}{\subsection{ungedruckte Quellen}}
\defbibheading{quelle-print}{\subsection{gedruckte Quellen}}
\urlstyle{same}



\DeclareCiteCommand{\litcite}
  {\usebibmacro{prenote}}
  {\addtocategory{literatur}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \iffootnote
     {\usebibmacro{footcite}}
     {\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\litcites}{\litcite}{\multicitedelim}

\DeclareCiteCommand{\prquecite}
  {\usebibmacro{prenote}}
  {\addtocategory{quelle-print}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \iffootnote
     {\usebibmacro{footcite}}
     {\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\prquecites}{\prquecite}{\multicitedelim}

\DeclareCiteCommand{\upquecite}
  {\usebibmacro{prenote}}
  {\addtocategory{quelle-unprint}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \iffootnote
     {\usebibmacro{footcite}}
     {\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\upquecite}{\upquecites}{\multicitedelim}

\DeclareCiteCommand{\abbcite}
  {\usebibmacro{prenote}}
  {\addtocategory{quelle-abb}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \iffootnote
     {\usebibmacro{footcite}}
     {\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\abbcite}{\abbcites}{\multicitedelim}


\DeclareNameAlias{default}{last-first}
\renewcommand{\labelnamepunct}{\addcolon\space}

\begin{filecontents*}{\jobname.bib}
@book{po.all,
   Address = {Basel},
   Author = {Mario Podzorski},
   Date-Added = {2015-08-22 13:30:42 +0000},
   Date-Modified = {2015-08-24 08:48:17 +0000},
   Shorttitle = {Kriegsalltag},
   Title = {Kriegsalltag und Kriegserfahrungen von Schweizer Soldaten am Umbrail und im M{\"u}nstertal im ersten Weltkrieg},
   Year = {2015}}

@book{bio.sprech,
   Address = {Z{\"u}rich},
   Author = {Daniel Sprecher},
   Date-Added = {2014-11-25 09:47:44 +0000},
   Date-Modified = {2014-11-25 09:48:27 +0000},
   Shorttitle = {Generalstabschef},
   Title = {Generalstabschef Theophil Sprecher von Berneck. Seine milit{\"a}risch-politische Leistung unter Ber{\"u}cksichtigung der Neutralit{\"a}t},
   Year = {2000}}

@article{hls.wk,
   Author = {Hans Rudolf Fuhrer and Mauro Cerutti and Marc Perrenoud and Markus B{\"u}rgi and},
   Date-Added = {2014-11-25 09:43:54 +0000},
   Date-Modified = {2014-11-25 09:45:58 +0000},
   Journal = {Historisches Lexikon der Schweiz (online)},
   Pages = {zuletzt gepr{\"u}ft: 25.11.2014},
   Shorttitle = {Weltkrieg},
   Title = {Weltkrieg, Erster},
   Url = {http://www.hls-dhs-dss.ch/textes/d/D8926.php},
   Year = {2006},
   Bdsk-Url-1 = {http://www.hls-dhs-dss.ch/textes/d/D23942.php}}

\end{filecontents*}

\addbibresource{\jobname.bib}


\begin{document}
Ein kurzer Beispieltext\litcites[1]{hls.wk}[311]{bio.sprech}[3]{po.all}


Und noch etwas\prquecite{po.all}


\printbibheading
\bibbycategory
\end{document}
Ich habe \renewcommand{\labelnamepunct}{\addcolon\space} in die Präambel verschoben, da gefällt es mir etwas besser. Bei biblatex sollte es eigentlich nicht nötig sein, dass "S." selbst anzugeben, das kann biblatex selbst, nur ist Dein Stil dagegen. Das kannst Du mit \DeclareFieldFormat{postnote}{\mkpageprefix[pagination]{#1}} und \DeclareFieldFormat{multipostnote}{\mkpageprefix[pagination]{#1}} wieder einschalten.

Statt \footnote{\cite{sigfridsson}} kannst Du übrigens gleich \footcite{sigfrdisson} verwenden, das spart etwas Tipparbeit.

Dann musst Du die neuen Makros natürlich übernehmen.
\DeclareCiteCommand{\footlitcite}[\mkbibfootnote]
  {\bibsentence
   \usebibmacro{prenote}}
  {\addtocategory{literatur}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \usebibmacro{footcite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\footlitcites}[\mkbibfootnote]{\footlitcite}{\multicitedelim}
Die anderen sind Hausaufgabe :D
Du hast das Prinzip sicher verstanden.

neptun
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 27. Sep 2012, 09:49

Beitrag von neptun »

Besten Dank, das hilft mir schon extrem weiter!

Ich hätte aber noch eine Anschlussfrage. Du hast im Text noch einen Befehl erwähnt, der das S. für die Seitenzahl wieder erscheinen lässt. Irgendwie macht mein LaTeX da was komisch, denn die Seitenzahl wird auf der ersten Seite nicht konsequent gesetzt und auf der zweiten Seite kommen sie gar nicht mehr. Die Dateien sind unten angehängt, damit ihr euch selber ein Bild machen könnt wie es in meiner Arbeit genau aussieht. Hoffe wer von euch hat da eine Idee zu.
Dateianhänge
ba-umbrial-min.zip
Dateien meiner Bachelorarbeit ohne Bilder, die braucht's ja nicht ;)
(180.58 KiB) 239-mal heruntergeladen

Gast

Beitrag von Gast »

Statt 3f schreibst Du besser 3\psq, denn biblatex fügt das "S." nur ein, wenn es die Postnote als Seitenzahl erkennt, "3f" ist für biblatex aber keine Zahl, für "f." gibt es \psq für "ff." dann \psqq.

Warum machst Du eigentlich immer einen Punkt in die Postnote mit dazu ([311.]{bio.sprech})? Wenn Du den immer am Ende der Fußnote dabei haben möchtest, wäre es besser das global einzustellen. Dafür solltest Du - wie oben schon angedeutet - statt \footnote{\cite{foo}} lieber \footcite{foo} nutzen.

PS: Ich weiß nicht, ob es so klug ist, alle Deine persönlichen Daten und den Anfang deiner Bachelorarbeit im Internet hochzuladen.
PPS: Soweit ich weiß, schreibt man "einverleiben" (S. 3 ganz unten) zusammen.

neptun
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 27. Sep 2012, 09:49

Beitrag von neptun »

Besten Dank, jetzt klappt's :D

Die Idee mit dem \footcite ist gut, aber wie klappt das dann mit der Unterteilung in die verschiedenen Kategorien?

PS: Ich bin mir des Risikos bewusst, aber wusste mir gerade nicht anders zu helfen auf die Schnelle :(

Gast

Beitrag von Gast »

Ich habe in meiner großen Antwort oben am Ende ja beschrieben, wie Du \footlitcite und \footlitcites definieren kannst. Du kannst die anderen Befehle ganz analog definieren.
\DeclareCiteCommand{\footlitcite}[\mkbibfootnote]
  {\bibsentence
   \usebibmacro{prenote}}
  {\addtocategory{literatur}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \usebibmacro{footcite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\footlitcites}[\mkbibfootnote]{\footlitcite}{\multicitedelim}

\DeclareCiteCommand{\footprquecite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\addtocategory{quelle-print}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \usebibmacro{footcite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\footprquecites}[\mkbibfootnote]{\footprquecite}{\multicitedelim}

\DeclareCiteCommand{\footupquecite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\addtocategory{quelle-unprint}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \usebibmacro{footcite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\footupquecite}[\mkbibfootnote]{\footupquecites}{\multicitedelim}

\DeclareCiteCommand{\footabbcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\addtocategory{quelle-abb}{\thefield{entrykey}}%
   \usebibmacro{citeindex}%
   \usebibmacro{footcite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}
\DeclareMultiCiteCommand{\footabbcite}[\mkbibfootnote]{\footabbcites}{\multicitedelim}
Das habe ich jetzt nicht getestet, es sollte aber funktionieren. (Sollte da ein Fehler drin sein, kannst Du es durch einfaches Vergleichen mit den Definitionen in der ersten Antwort wahrscheinlich selber beheben.)

Nutz dann statt \footnote{\litcites[1]{hls.wk}[311]{bio.sprech}[3]{po.all}} einfach \footlitcites[1]{hls.wk}[311]{bio.sprech}[3]{po.all} und der Punkt kommt automatisch.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Seitenzahlsequenz mit biblatex kennzeichnen.

Sobald eine Antwort vorhanden ist, kann dann leicht verlinkt werden. Vielleicht will sogar unser fleißiger Gast die Antwort schreiben?
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Antworten