goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 99644
Top-Poster: Johannes_B (5059)

Wir begrüßen unseren neuesten Benutzer derFragensteller.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Neuen "Internet" Typ für biblatex-apa definieren

 

Tassadar
Forum-Anfänger
Forum-Anfänger

Beiträge: 26
Anmeldedatum: 06.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2019, 16:40     Titel: Neuen "Internet" Typ für biblatex-apa definieren
  Antworten mit Zitat      
Hallo alle miteinander,

für den Großteil meiner Arbeiten nutze ich den biblatex-apa Style bzw. einen darauf basierenden eigenen Style mit kleinen Anpassungen. Ich bin inzwischen auch ganz gut in der Lage Anpassungen die ich brauche selbstständig zu machen, aber bei der jetzigen Frage brauche ich definitiv Hilfe.

Und zwar:
Ich hätte gerne die Möglichkeit, dass ich Internetseiten wie folgt zitieren kann.
Im Text erfolgt die Zitation nach (URL1) (URL2) usw.
Im (gesonderten) Literaturverzeichnis erfolgt die Zitation wie folgt:
URL1: link (besucht am urldate).
URL2: link (besucht am urldate).

Als ich das zuletzt machen musste, habe ich das ganze etwas umschifft und in der .bib Datei die Einträge als @online gesetzt, als Autor dann das URL1 usw. gesetzt und dann den APA Style so angepasst, dass die Dinge ausgegeben werden die ich brauche. Das ist natürlich aber nur eine Notlösung, da ich zum Beispiel manuell die Nummerierung machen musste und es auch sonst nur hingebastelt ist.

Was ich mir vorstelle:
Da es sich ja um sehr simple Formatierungen handelt und man nicht alle möglichen Szenarien mit autor, journal, etc. berücksichtigen muss, dachte ich es wäre das Einfachste, man definiert einen neunen Entrytype (homepage oder so) bei dem man in der .bib Datei url und urldate setzt. Dann definiert man einen neuen Citecommand und Bibliographydriver, die die interne Nummerierung übernehmen und es so ausgeben wie es sein soll.

Ich habe aber leide gar keine Ahnung wie man das macht. Smile
Kann mir da jemand helfen oder hat einen anderen kreativen Ansatz wie man das umsetzen kann?

Vielen Dank schon mal im Voraus!
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.05.2019, 08:33     Titel:
  Antworten mit Zitat      
Prinzipiell brauchst Du keinen neuen Typen, Du kannst einfach @online völlig umbauen. Wenn Du unbedingt einen neuen Typen möchtest, dann kannst Du Dir https://tex.stackexchange.com/q/175776/35864 ansehen. Gerade bei biblatex-apa ist aber in beiden Fällen etwas Gefriemel notwendig, um die Zitate dann richtig aussehen zu lassen.

Ich bin der Meinung, dass es gerade bei URLs viel zu wenig ist, nur dem Link anzugeben. Was wenn der nicht mehr abrufbar ist? Dann kann eine Leserin die Quelle praktisch nicht mehr finden. Wenn Du aber Titel und Autor sowie ein Datum angibst, dann besteht zumindest noch die Chance mit etwas Google-Fu an die Quelle heranzukommen. Außerdem ist es nicht nachvollziehbar, dass Autoren von anderen Quellen mit Namen genannt werden, die von Online-Quellen aber nicht. Damit verwehrst Du ihnen gewissermaßen die Anerkennung, die Du anderen zuteilwerden lässt.

Ferner verstehe ich nicht ganz, wie "(URL1)", "(URL2)" zu verstehen ist. Soll da wirklich "URL1" und "URL2" stehen oder sind das Platzhalter für etwas sprechendere Namen?

Vielleicht kannst Du uns ja ein InfoMinimalbeispiel zeigen und dort schon direkt die gewünschte Ausgabe emulieren und am Beispiel konkret machen.

Tassadar
Forum-Anfänger
Forum-Anfänger

Beiträge: 26
Anmeldedatum: 06.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.05.2019, 09:55     Titel:
  Antworten mit Zitat      
Erstmal vielen Dank für deine Antwort!

Eins vorweg: Ich stimme dir vollkommen zu, dass es nicht schön und nicht sinnvoll usw. ist. Aber so ist die Vorgabe der Uni...

Hier mal das MWE:

Code

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage{filecontents}
\begin{filecontents}{literature.bib}
@online{NABU,
author = {{URL 4
}},
title = {{Kirsche}},
url = {https://www.nabu.de/imperia/md/nabu/images/arten/pflanzen/nutzpflanzen/obst/steinobst/20141015-nabu-sauerkirsche-helge-may2.jpeg},
urldate = {2019-04-24}
}
@online{BUND,
author = {{URL 1
}},
title = {{Weinbergschnecke}},
url = {http://www.bund-hessen.de/themen{\_}und{\_}projekte/natur{\_}und{\_}artenschutz/natur{\_}erleben/w/weinbergschnecke/},
urldate = {2019-04-25}
}
\end{filecontents}

\usepackage[
backend = biber,      
style = apa      
]{biblatex}
\addbibresource{literature.bib}
\AtEveryBibitem{%
   \ifentrytype{online}{%
      \clearfield{labelyear}%
      \clearfield{title}%
   }{%
   }%
}
\DeclareFieldFormat{url}{\url{#1}}

\begin{document}

Hier würde man sich auf die erste Quelle beziehen (\citeauthor{BUND}), und weil man es manuell so gemacht hat, wird auch richtig (URL 1) angezeigt. Und hier bei der zweiten Quelle (\citeauthor{NABU}) sollte aber eigentlich (URL 2) stehen.

Im Literaturverzeichnis dann eben analog.

\printbibliography[type=online,title=Verzeichnis der Internetquellen]

\end{document}
 


Overleaf scheint die Ausgabe von dem "retrieved urldate from" nicht richtig hinzubekommen. Aber man sollte sehen worum es geht.
In dem MWE sieht man, wie ich das Problem umschifft habe aber man sieht auch, warum das ganz sicher keine gute Lösung ist.
Idealerweise sollte das Verzeichnis die folgende Form haben:
URL 1: url, genutzt am urldate

Ich fände es am schönsten einen neuen Typ zu haben, aber wenn es einfacher ist @online komplett umzudefinieren wäre ich auch damit glücklich.
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1867
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 16.05.2019, 19:03     Titel:
  Antworten mit Zitat      
Deine Behandelung der Unterstriche im Datenfeld für URLs ist nicht nötig und verunstaltet die Ausgabe.

Der Stil apa braucht bei der älteren TeX-Distribution von Overleaf noch den Befehl \DeclareLanguageMapping.
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2019, 08:04     Titel:
  Antworten mit Zitat      
Prinzipiell ginge es in etwa so
Code
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=apa]{biblatex}

\ExecuteBibliographyOptions[online]{labelnumber}
\DeclareFieldFormat[online]{labelnumber}{URL~#1}

\makeatletter
\renewbibmacro*{cite}{%
  \ifentrytype{online}
    {\printfield{labelnumber}}
    {\iffieldequals{fullhash}{\cbx@lasthash}
% Multiple cites in one command
      {\setunit{\compcitedelim}%
       \usebibmacro{cite:plabelyear+extradate}}%
% Single cite
      {\ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
% No author/editor
        {\usebibmacro{cite:noname}%
          \setunit{\printdelim{nameyeardelim}}%
          \usebibmacro{cite:plabelyear+extradate}%
          \savefield{fullhash}{\cbx@lasthash}}
% Normal cite
        {\ifnameundef{shortauthor}
           {\printnames[labelname][-\value{listtotal}]{labelname}}%
           {\cbx@apa@ifnamesaved
             {\printnames{shortauthor
}}
             {\printnames[labelname][-\value{listtotal}]{author}\addspace\printnames[sabrackets]{shortauthor}}}%
         \setunit{\printdelim{nameyeardelim}}%
         \usebibmacro{cite:plabelyear+extradate}%
         \savefield{fullhash}{\cbx@lasthash}}}}%
   \setunit{\multicitedelim}}

\newbibmacro*{textcite}{%
  \ifentrytype{online}
    {\ifbool{cbx:parens}
       {\bibcloseparen\global\boolfalse{cbx:parens}}
       {}%
     \setunit{\compcitedelim}%
     \printfield{labelnumber}%
     \ifboolexpr{test {\iflastcitekey}
                 and not test {\iffieldundef{postnote}}}
       {\ifbool{cbx:np}
          {}
          {\printunit{\global\booltrue{cbx:parens
}\addspace\bibopenparen}}}
       {}}
    {\iffieldequals{fullhash}{\cbx@lasthash}
% Compact cite - more than one thing for same author
       {\setunit{\compcitedelim}%
        \usebibmacro{cite:plabelyear+extradate}}
% New cite
       {%
       \ifbool{cbx:parens}
         {\bibcloseparen\global\boolfalse{cbx:parens}}
         {}%
         \setunit{\compcitedelim}%
         \ifthenelse{\ifnameundef{labelname}\OR\iffieldequalstr{entrytype}{patent}}
  % No author/editor or patent
          {\iffieldundef{shorthand}%
    % Cite using title
            {\usebibmacro{cite:noname}%
             \setunit{\ifbool{cbx:np}%
                      {\printdelim{nameyeardelim}}%
                      {\global\booltrue{cbx:parens}\addspace\bibopenparen}}%
             \usebibmacro{cite:plabelyear+extradate}}
    % Cite using shorthand
            {\usebibmacro{cite:shorthand}}}
  % Normal cite with author/editor
  % Normal full cite
          {\ifnameundef{shortauthor}%
    % Normal full cite
            {\printnames[labelname][-\value{listtotal}]{labelname}}
    % Cite using short author
            {\cbx@apa@ifnamesaved
              {\printnames{shortauthor
}}
              {\printnames[labelname][-\value{listtotal}]{author}}}%
  % Year
           \setunit{\ifbool{cbx:np}
                     {\printdelim{nameyeardelim}}
                     {\global\booltrue{cbx:parens}\addspace\bibopenparen}}%
  % Put the shortauthor inside the year brackets if necessary
           \ifnameundef{shortauthor}
            {}
            {\cbx@apa@ifnamesaved
              {
}
              {\printnames{shortauthor
}\setunit{\printdelim{nameyeardelim}}}}%
  % Actual year printing
           \usebibmacro{cite:plabelyear+extradate}%
  % Save name hash for checks later
           \savefield{fullhash}{\cbx@lasthash}}}}}
\makeatother

\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{std:urldate}{\mkbibparens{\bibstring{urlseen}\space#1}}
\newbibmacro*{std:url+urldate}{%
  \usebibmacro{url}%
  \iffieldundef{urlyear}
    {}
    {\setunit*{\addspace
}%
     \printtext[std:urldate]{\printurldate}}}

\DeclareBibliographyDriver{online}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printfield{labelnumber}
  \printunit{\addcolon\space}%
  \iftoggle{bbx:doi}
    {\printfield{doi}%
     \iffieldundef{doi}{}{\renewcommand*{\finentrypunct}{\relax}}}
    {}%
  \newunit\newblock
  \iftoggle{bbx:eprint}
    {\usebibmacro{eprint}%
     \iffieldundef{eprint}{}{\renewcommand*{\finentrypunct}{\relax}}}
    {}%
  \newunit\newblock
  \usebibmacro{std:url+urldate}%
  \iffieldundef{url}{}{\renewcommand*{\finentrypunct}{\relax}}
  \newunit\newblock
  \printfield{addendum}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{apa:pageref}%
  \usebibmacro{apa:finpunct}%
  \usebibmacro{finentry}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@online{NABU,
  title   = {Kirsche
},
  url     = {https://www.nabu.de/imperia/md/nabu/images/arten/pflanzen/nutzpflanzen/obst/steinobst/20141015-nabu-sauerkirsche-helge-may2.jpeg},
  urldate = {2019-04-24},
}
@online{BUND,
  title   = {Weinbergschnecke
},
  url     = {http://www.bund-hessen.de/themen_und_projekte/natur_und_artenschutz/natur_erleben/w/weinbergschnecke/},
  urldate = {2019-04-25},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Hier würde man sich auf die erste Quelle beziehen \autocite{NABU}, und weil man es manuell so gemacht hat, wird auch richtig (URL 1) angezeigt. Und hier bei der zweiten Quelle \autocite{BUND} sollte aber eigentlich (URL 2) stehen.

\autocite{sigfridsson}

\textcite{BUND}

\textcite[14]{BUND}

\textcite{sigfridsson,BUND}

\printbibliography[nottype=online]
\newrefcontext[sorting=none]
\printbibliography[type=online,title=Verzeichnis der Internetquellen]
\end{document}


Wir lassen biblatex und Biber labelnumbers für den Typen @online definieren. Die können wir dann in den Zitaten nutzen. Dazu müssen wir aber die ohnehin nicht ganz simplen Zitatmakros umdefinieren (die Originaldefinitionen findest Du in apa.cbx, eigentlich kommt immer nur der \ifentrytype{online}-Teil und das \printfield{labelnumber} dazu, bei textcite auch noch etwas für die Klammern). Dann können wir den Driver komplett umkrempeln und ihn nur noch Link-Infos anzeigen lassen statt anderer bibliographischer Angaben.

Wenn alle Online-Quellen wirklich so behandelt werden sollen, dann sehe ich absolut keinen Vorteil, einen neuen Typen @homepage zu definieren. Aber Du kannst das natürlich machen. Du musst dazu nur wie in https://tex.stackexchange.com/q/175776/35864 vorgehen und den neuen Typen definieren und dann in dem Code hier jedes online durch homepage ersetzen.

Getestet ist der Code mit der aktuellen Version von biblatex (3.12) und Biber (2.12) sowie biblatex-apa (7.7). Was Overleaf mit seinem veralteten System davon macht, habe ich mir jetzt nicht angesehen.

Tassadar
Forum-Anfänger
Forum-Anfänger

Beiträge: 26
Anmeldedatum: 06.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2019, 16:35     Titel:
  Antworten mit Zitat      
Du bist mein Held! Vielen, vielen Dank! Funktioniert perfekt! Very Happy
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de