\iffieldundef in Latex

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:

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: \iffieldundef in Latex

von TaiBone » Mo 30. Mai 2016, 13:50

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."

von Gast » Mo 30. Mai 2016, 13:13

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.

von TaiBone » Mo 30. Mai 2016, 13:05

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!

von u_fischer » Mo 30. Mai 2016, 12:28

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

\iffieldundef in Latex

von TaiBone » Mo 30. Mai 2016, 11:16

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}

Nach oben