\iffieldundef in Latex

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


TaiBone
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mo 9. Apr 2012, 15:22

\iffieldundef in Latex

Beitrag von TaiBone »

Hey,

ich möchte, dass bei meinen geänderten Biblatex Style die Buchseite Optional eingesetzt werden. Leider finde ich keine Lösung, warum das nicht geht. Ich versuche das die ganze Zeit mit \iffieldundef{field}{nicht da}{da}.

Bei optional da meine, dass im @book Block keine pages label (oder Tag?) drin steht.

Leider mache ich was falsch. Entweder soll Komma Leerzeichen page Nummer Punkt stehen, oder nur Punkt.

Danke schon mal für Eure Hilfe.
\documentclass[12pt,oneside,a4paper]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=alphabetic]{biblatex}

\DeclareLabelalphaTemplate{% 
	\labelelement{%
		\field{label}
	}
}


\DeclareBibliographyDriver{book}{%
	\printnames{author}%
	\addcolon\addspace
	\printfield{title}%
	\adddot\addspace
	\printfield{edition}%
	\addcomma\addspace
	\printlist{location}%
	\addcomma\addspace
	\usebibmacro{date}%
	\addcomma\addspace%
	\iffieldundef{\usebibmacro{chapter+pages}}{\adddot}{\addcomma\addspace page #1\adddot}%
}




\begin{filecontents}{sandbox1.bib}
	@book{LoEi90,
		label = {LoFe90},
		author =     {Lith, K. and Fel, Q.},
		title =      {Booktitel - Subtitel},
		year =      1990,
		location =     {Stuttgart},
		edition =     {8},
		pages = {144}
	}
\end{filecontents}

\addbibresource{sandbox1.bib}

\begin{document}
Mein Zitat \cite{LoEi90}.
\addcontentsline{toc}{chapter}{Bibliography}
\printbibliography
\end{document}

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

\iffieldundef{\usebibmacro{chapter+pages}} ist unsinnig. "\usebibmacro{..}" ist doch kein Feld. Benutze \iffieldundef{pages}

TaiBone
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mo 9. Apr 2012, 15:22

Beitrag von TaiBone »

super, danke.
Was auch noch wichtig ist, dass ich jetzt erst rausbekommen habe. in den {statments} funktionieren die \addcomma usw. nicht. Darum habe ich nie Resultate gesehen.

Mit
\iffieldundef{pages}{.}{, page \usebibmacro{chapter+pages}.}%
geht es jetzt!

Gast

Beitrag von Gast »

Ich verstehe auch nicht ganz, worauf Du hinauswillst.
Wenn Du Deinen Code etwas biblatex-ifizierst, indem Du \setunit benutzt, dann sollte die Abfrage völlig unnötig sein.
\DeclareBibliographyDriver{book}{%
   \printnames{author}%
   \setunit{\addcolon\addspace}%
   \printfield{title}%
   \setunit{\addperiod\addspace}%
   \printfield{edition}%
   \setunit{\addcomma\addspace}%
   \printlist{location}%
   \setunit{\addcomma\addspace}%
   \usebibmacro{date}%
   \setunit{\addcomma\addspace}%
   \usebibmacro{chapter+pages}%
   \setunit{\addperiod}%
}
Beachte, dass Du so natürlich viele Funktionalitäten von biblatex wegwirfst. Was genau möchtest Du denn erreichen? Es ist nicht immer notwendig, den ganzen driver umzuschreiben.

TaiBone
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Mo 9. Apr 2012, 15:22

Beitrag von TaiBone »

Das ganze soll so aus sehen:
Fachbücher:
Bei Zitaten bzw. der Quellenangabe aus Fachbüchern wird folgendermaßen
vorgegangen:
Nachname, Abkürzung Vorname[; weitere Autoren]: Vollständiger Titel[- Untertitel].[x.
Auflage,] Erscheinungsort, Erscheinungsjahr.
Aufsätze in Sammelwerken:
Bei Zitaten bzw. von Aufsätzen aus Sammelwerken wird folgendermaßen
vorgegangen:
Nachname, Abkürzung Vorname[; weitere Autoren]: Vollständiger Titel[- Untertitel].
In: Nachname, Abkürzung Vorname[; weitere Hrsg.] (Hrsg.): Titel Sammelwerk[-
Untertitel], Erscheinungsort, Erscheinungsjahr, Seiten.
Fachzeitschriften:
Bei Zitaten bzw. der Quellenangabe aus Fachzeitschriften wird folgendermaßen
vorgegangen:
Nachname, Abkürzung Vorname[; weitere Autoren]: Vollständiger Titel[- Untertitel].
Zeitschriftentitel, [Jahrgang,], Erscheinungsjahr, Heftnummer, Seite.
Internet:
Bei Zitaten bzw. der Quellenangabe aus dem Internet wird folgendermaßen
vorgegangen:
5
Nachname, Abkürzung Vorname: Vollständiger Titel. Erscheinungsjahr,
<URL>, Abruf am „Datum“.
ja, das stimmt mit den wegwerfen der ganzen "Sachen". Ich musste sehr viel neu und um definieren usw. Der Code sind nicht ganz so sauber aus, aber: "don't touch running stystems."

Antworten