Internetquelle

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


Dave Miller
Forum-Century
Forum-Century
Beiträge: 102
Registriert: Fr 19. Jun 2015, 19:18

Beitrag von Dave Miller »

Anonymous hat geschrieben:Kannst Du mir erst erklären was der Code tut, besonders der \iffieldequalstr{prenote}{XX}-Teil?

Man könnte einfach zwischen Fußnoten und nicht-Fußnote unterscheiden oder nur `\cite` etwas umdefinieren. Was hättest Du denn lieber?
Damit sage ich ihm die Seitenzahl.

Mir eigentlich egal. Hauptsache bei cite kommt kein Vgl. davor :P

Ich glaube ich sollte ein neues Thema öffnen. :D

Gast

Beitrag von Gast »

Ja, bitte öffne ein neues Thema, aber dort kannst Du den folgenden Code verwenden, den ich zumindest auch verstehe, der Test \iffieldequalstr{prenote}{XX} müsste eigentlich immer falsch sein, der gibt so keinen Sinn.
\renewbibmacro*{prenote}{%
  \iffieldundef{prenote}
    {\printtext{Vgl.\isdot}}
    {\printfield{prenote}}%
  \setunit{\prenotedelim}}

Dave Miller
Forum-Century
Forum-Century
Beiträge: 102
Registriert: Fr 19. Jun 2015, 19:18

Beitrag von Dave Miller »

Eine Frage noch dazu:

Wenn ich kein Datum habe von der Internetquelle möchte ich gerne "o.A." reinschreiben. Biblatex gibt mir aber eine Fehlermeldung aus, das es sich hierbei nicht um ein Datum handelt. :/

Gast

Beitrag von Gast »

Wenn Du kein Jahr hast, schreib auch nichts in das Jahr-Feld (oder das Date-Feld).

Probier mal
\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifnameundef{labelname}
       {}
       {\printnames{labelname}
        \setunit{\nametitledelim}}%
     \usebibmacro{cite:title}%
     \newunit
     \iffieldundef{year}
       {\bibstring{nodate}}
       {\printfield{year}}}%
    {\usebibmacro{cite:shorthand}}}
Das basiert auf deinem Beispiel auf der ersten Seite, wenn sich etwas verändert hat, habe ich das hier überschrieben, mit einem Beispiel wäre das nicht passiert.

Du bekommst jetzt, falls kein Datum vorhanden ist den String nodate ausgegeben, um den zu ändern, kannst Du z.B.
\DefineBibliographyStrings{german}{%
  nodate = {{}o\adddot\addabthinspace A\adddot}
}
nutzen.

Dave Miller
Forum-Century
Forum-Century
Beiträge: 102
Registriert: Fr 19. Jun 2015, 19:18

Beitrag von Dave Miller »

\documentclass[ngerman]{article} 
\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc} 
\usepackage{babel} 
\usepackage{csquotes} 
\usepackage{xpatch} 
\usepackage{filecontents} 
\usepackage[style=authortitle]{biblatex} 
\begin{filecontents*}{\jobname.bib} 
@book{Irgang.2000, 
year = {2000}, 
shorttitle = {Vernetzte Absatzplanung}, 
title = {Entwicklung eines computergestützten Werkzeuges zur vernetzten Absatzplanung}, 
address = {München}, 
edition = {1}, 
publisher = {Grin Verlag}, 
author = {Irgang, Thorsten} 
} 
@online{Internet, 
author = {Autor}, 
title = {Titel}, 
year = {2015}, 
url = {http://www.invalid.invalid}, 
urldate = {2015-08-10} 
} 
@online{jwp, 
author = {{JWP Realisierungs GmbH \& Co. KG}}, 
title = {Jade Weser Port, Historie}, 
date = {}, 
url = {http://www.jadeweserport.de/cms/index.php?idcat=23}, 
urldate = {2012-02-17} 
} 

\end{filecontents*} 
\renewcommand{\bibfootnotewrapper}[1]{ 
\bibsentence#1} 

\renewcommand*{\newunitpunct}{\addcomma\space} 
\renewcommand*{\labelnamepunct}{\addspace} 
\renewcommand*{\nametitledelim}{\addcolon\space} 
\renewcommand*{\finentrypunct}{\addspace} 
\setlength{\bibhang}{1,25cm} 
\DeclareNameAlias{sortname}{last-first} 
\DeclareFieldFormat*{citetitle}{#1} 

% Reihenfolge ändern und Standardtrenner 
\renewbibmacro*{publisher+location+date}{% 
  \printlist{publisher}% 
  \newunit 
  \printlist{location}% 
  \newunit 
  \usebibmacro{date}% 
  \newunit} 

% Kurztitel (shorttitle) hinzufügen 
\renewbibmacro*{title}{% 
  \ifboolexpr{ 
    test {\iffieldundef{title}} 
    and 
    test {\iffieldundef{subtitle}} 
  } 
    {} 
    {\printfield[brackets]{shorttitle}% 
     \setunit{\addspace}% 
     \ifentrytype{online} 
       {\printtext[brackets]{% 
          \printfield[titlecase]{title}% 
          \setunit{\subtitlepunct}% 
          \printfield[titlecase]{subtitle}}} 
       {\printtext[title]{% 
         \printfield[titlecase]{title}% 
         \setunit{\subtitlepunct}% 
         \printfield[titlecase]{subtitle}}}% 
     \newunit}% 
  \printfield{titleaddon}} 

\DeclareFieldFormat[online]{url}{\url{#1}} 
\DeclareFieldFormat{urldate}{Abrufdatum\addcolon\space#1} 

\xpatchbibdriver{online} 
  {\usebibmacro{date}} 
  {} 
  {}{} 

\newbibmacro*{url+urldate}{% 
  \usebibmacro{url}% 
  \ifentrytype{online} 
    {\setunit{\addspace}% 
     \printtext{Stand\addcolon\addspace}% 
     \usebibmacro{date}} 
    {} 
  \iffieldundef{urlyear} 
    {} 
    {\setunit*{\addspace}% 
     \usebibmacro{urldate}}} 

% Jahr hinzufügen 
\renewbibmacro*{cite}{% 
  \iffieldundef{shorthand} 
    {\ifnameundef{labelname} 
       {} 
       {\printnames{labelname} 
        \setunit{\nametitledelim}}% 
     \usebibmacro{cite:title}% 
     \newunit 
     \iffieldundef{year} 
       {\bibstring{nodate}} 
       {\printfield{year}}}% 
    {\usebibmacro{cite:shorthand}}}
\DefineBibliographyStrings{german}{% 
  nodate = {{}o\adddot\addabthinspace A\adddot} 
}

\addbibresource{\jobname.bib} 
\addbibresource{biblatex-examples.bib} 
\begin{document} 
Lorem\footcite{Internet} ipsum\footcite{jwp}. 
Dolor.\footcite{Irgang.2000} 
\printbibliography 
\end{document}
Danke...

geht das auch im Literaturverzeichnis, da steht nämlich kein "o.A." hinter Stand:


:?

Gast

Beitrag von Gast »

Wir brauchen dafür zunächst eigentlich nur noch eine kleine Abfrage in url+urldate.
\renewbibmacro*{url+urldate}{%
  \usebibmacro{url}%
  \ifentrytype{online}
    {\setunit{\addspace}%
     \printtext{Stand\addcolon\addspace}%
     \iffieldundef{year}
       {\bibstring{nodate}}
       {\usebibmacro{date}}}
    {}%
  \iffieldundef{urlyear}
    {}
    {\setunit*{\addspace}%
     \usebibmacro{urldate}}}

Dave Miller
Forum-Century
Forum-Century
Beiträge: 102
Registriert: Fr 19. Jun 2015, 19:18

Beitrag von Dave Miller »

Ich glaube Du hältst mich langsam für verrückt :D

...ABER: Kann ich auch sagen. Das nur bei Internetquellen im Literaturverz. o.J. steht aber sonst die Regelung wie bisher? :D :oops:

Gast

Beitrag von Gast »

Nur für @online bekommst Du das Verhalten, wenn wir statt \iffieldundef{year} in der Abfrage vor dem \bibstring{nodate} das etwas längere \ifboolexpr{test {\iffieldundef{year}} and test {\ifentrytype{online}}} verwenden
\renewbibmacro*{url+urldate}{%
  \usebibmacro{url}%
  \ifentrytype{online}
    {\setunit{\addspace}%
     \printtext{Stand\addcolon\addspace}%
     \ifboolexpr{test {\iffieldundef{year}} and test {\ifentrytype{online}}}
       {\bibstring{nodate}}
       {\usebibmacro{date}}}
    {}%
  \iffieldundef{urlyear}
    {}
    {\setunit*{\addspace}%
     \usebibmacro{urldate}}}

\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifnameundef{labelname}
       {}
       {\printnames{labelname}
        \setunit{\nametitledelim}}%
     \usebibmacro{cite:title}%
     \newunit
     \ifboolexpr{test {\iffieldundef{year}} and test {\ifentrytype{online}}}
       {\bibstring{nodate}}
       {\printfield{year}}}%
    {\usebibmacro{cite:shorthand}}}
\DefineBibliographyStrings{german}{%
  nodate = {{}o\adddot\addabthinspace A\adddot}
}
Es hätte uns allen wirklich Arbeit und Ärger erspart, wenn Du mit einer genauen Idee, was Du erreichen möchtest, hier aufgetaucht wärst, dann hättest Du eine präzise Frage zu Deiner exakten Problemstellung (am liebsten natürlich mit diesem ominösen Minimalbeispiel, nach dem alle immer Fragen) gestellt; diese halbgaren Vorstellungen und Nachbesserungen sorgen dafür, dass wir jetzt weiß der Geier wie viele verschiedene Themen offen haben mit unterschiedlichen Code-Beispielen, die alle unterschiedlich weit sind.

Antworten