Zitierstil für einzelne Dokumente (Normen) anpassen?

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: Zitierstil für einzelne Dokumente (Normen) anpassen?

von JK5463 » So 1. Mär 2015, 14:30

@Besserwisser
Vielen Dank für die Erklärung!

Bezüglich deines Tipps über das Umdefinieren des Makros "cite" hätte ich noch ein paar Fragen. Ich habe mir jetzt mal die Datei "authoryear.cbx" angesehen und versucht herauszufinden, wie ich deinen Vorschlag umsetzen könnte.

authoryear.cbx
\ProvidesFile{authoryear.cbx}
[\abx@cbxid]

\ExecuteBibliographyOptions{labeldate,uniquename,uniquelist,autocite=inline}

\renewcommand*{\iffinalcitedelim}{\iflastcitekey}

\newbool{cbx:parens}

\newbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \setunit{\nameyeardelim}}%
     \usebibmacro{cite:labelyear+extrayear}}
    {\usebibmacro{cite:shorthand}}}

\newbibmacro*{citeyear}{%
  \iffieldundef{shorthand}
    {\iffieldundef{labelyear}
       {\usebibmacro{cite:label}}
       {\usebibmacro{cite:labelyear+extrayear}}}
    {\usebibmacro{cite:shorthand}}}

\newbibmacro*{textcite}{%
  \ifnameundef{labelname}
    {\iffieldundef{shorthand}
       {\usebibmacro{cite:label}%
        \setunit{%
          \global\booltrue{cbx:parens}%
          \addspace\bibopenparen}%
        \ifnumequal{\value{citecount}}{1}
          {\usebibmacro{prenote}}
          {}%
        \usebibmacro{cite:labelyear+extrayear}}
       {\usebibmacro{cite:shorthand}}}
    {\printnames{labelname}%
     \setunit{%
       \global\booltrue{cbx:parens}%
       \addspace\bibopenparen}%
     \ifnumequal{\value{citecount}}{1}
       {\usebibmacro{prenote}}
       {}%
     \usebibmacro{citeyear}}}

\newbibmacro*{cite:shorthand}{%
  \printtext[bibhyperref]{\printfield{shorthand}}}

\newbibmacro*{cite:label}{%
  \iffieldundef{label}
    {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
    {\printtext[bibhyperref]{\printfield{label}}}}

\newbibmacro*{cite:labelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperref]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}}

\newbibmacro*{textcite:postnote}{%
  \iffieldundef{postnote}
    {\ifbool{cbx:parens}
       {\bibcloseparen}
       {}}
    {\ifbool{cbx:parens}
       {\setunit{\postnotedelim}}
       {\setunit{\addspace\bibopenparen}}%
     \printfield{postnote}\bibcloseparen}}

\DeclareCiteCommand{\cite}
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand*{\cite}
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{citeyear}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\parencite}[\mkbibparens]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand*{\parencite}[\mkbibparens]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{citeyear}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\footcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{cite}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\textcite}
  {\boolfalse{cbx:parens}}
  {\usebibmacro{citeindex}%
   \iffirstcitekey
     {\setcounter{textcitetotal}{1}}
     {\stepcounter{textcitetotal}%
      \textcitedelim}%
   \usebibmacro{textcite}}
  {\ifbool{cbx:parens}
     {\bibcloseparen\global\boolfalse{cbx:parens}}
     {}}
  {\usebibmacro{textcite:postnote}}

\DeclareMultiCiteCommand{\textcites}{\textcite}{}

\endinput

Das Makro "cite" wird hier wie folgt definiert:
\newbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \setunit{\nameyeardelim}}%
     \usebibmacro{cite:labelyear+extrayear}}
    {\usebibmacro{cite:shorthand}}}
Es setzt sich also aus folgenden drei Teilen zusammen, die ineinander verschachtelt sind:
\newbibmacro*{name}[arguments][option]{definition}
\iffieldundef{field}{true}{false}
\ifthenelse{tests}{true}{false}
Würde es also reichen, wenn ich das bestehende "\ifthenelse{...}{...}{...}" in die Operationsanweisung "true" eines weiteren "\iffieldundef{Number}{...}{...}" packe und mit der Operationsanweisung "false" dann "\usebibmacro{dincite}" aufrufe?
\newbibmacro*{cite}[arguments][option]{\iffieldundef{shorthand}{\iffieldundef{number}{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}{true}{false}}{\usebibmacro{dincite}}}{false}}

von Besserwisser » So 1. Mär 2015, 08:35

TeX Live Utility ist eine Zugabe von MacTeX zu TeX-Live. Letztlich ist MacTeX aber eben auch nur ein TeX-Live mit wenigen Zugaben. Deshalb kann man MacTeX auch wie TeX Live über tlmgr managen. Manchmal sollte man das sogar weil TeX Live Utility einigen Meldungen zufolge nicht alles kann, was tlmgr kann (beispielsweise macht es wohl Probleme mit dem pinning).

von JK5463 » Sa 28. Feb 2015, 22:20

@ Besserwisser
Ich nutze MacTeX unter OS X Yosemite und dort habe ich im Programm "TeX Live Utility" die Option "Update all Packages" gewählt. Ich dachte in der Tat, dass "tlmgr" ein Paket ist. Das liegt wohl daran, dass ich mich mit LaTeX etc. noch nicht so gut auskenne.

Man lernt ja gerne dazu! Da du mich darauf hingewiesen hast, habe ich nochmal etwas recherchiert. Ist es richtig, dass "tlmgr" Teil des Programms "TeX Live Utility" ist bzw. dessen Kern darstellt? Das mag jetzt etwas komisch formuliert sein, aber ich hoffe du verstehst was ich meine.

Dann bin ich noch über diesen Link gestolpert: Link
Die Befehle habe ich im Terminal eingegeben und es kam die Rückmeldung, dass keine Updates verfügbar seien. Deshalb gehe ich davon aus, dass das Update mit dem "TeX Live Utility" bereits alles geupdated hat. Liege ich da richtig?


Edit: Jetzt ist auch das Paket "citeall" gelistet!

von Besserwisser » Sa 28. Feb 2015, 20:26

:?:
tlmgr ist kein Paket. Es ist der Paketmanager von TeX Live siehe auch texdoc tlmgr.

Aber wie machst du überhaupt das Update, wenn du tlmgr nicht kennst????

von JK5463 » Sa 28. Feb 2015, 19:18

Vielen Dank für den Link und den Tipp mit dem aktuellen TeX Live. Update läuft! Muss gleich mal schauen, ob sich unter den Packages "tlmgr" befindet.

von u_fischer » Sa 28. Feb 2015, 18:53

JK5463 hat geschrieben: Du verwendest in deinem Beispiel das Package "citeall". Kannst du mir kurz sagen, wofür das gut ist?
http://www.ctan.org/pkg/citeall

Bei einem aktuellen TeXlive müsstest du es mit tlmgr update bekommen.

von u_fischer » Sa 28. Feb 2015, 18:37

Johannes_B hat geschrieben:
\usepackage{citeall}
Wow ;-). Ein Benutzer ;-). Ich habe übrigens gestern entdeckt, dass biber bei Warnungen auch ein "\warn"-Feld erzeugt und dann bekommt man Fehler. Die nächste Version von citeall wird das beheben. Dann wird man auch die Zahl der Bibliographieeinträge begrenzen können mit \printbibliography[category=citeall].

von JK5463 » Sa 28. Feb 2015, 17:12

@Besserwisser

Das mit dem Umdefinieren des Makro "cite" werde ich mir noch anschauen! Danke für den Tipp!

von JK5463 » Sa 28. Feb 2015, 17:10

@ Johannes_B

Vielen Dank, genau das habe ich gesucht! Ich habe folgenden Teil jetzt kurz in meine .cbx-Datei eingefügt und es funktioniert auf den ersten Blick schon mal perfekt.
\DeclareCiteCommand{\citedin} 
  {\usebibmacro{prenote}} 
  {\usebibmacro{citeindex}% 
   \usebibmacro{dincite}} 
  {\multicitedelim} 
  {\usebibmacro{postnote}} 
\newbibmacro*{dincite}{\printfield{number}\addcolon\printfield{year}}
Warum ich Standard verwendet habe?

In der .bib-Datei muss man ja für jedes Werk einen "entrytype" festlegen. Daher habe ich für meine DIN-Norm kurzerhand einfach "standard" definiert und diesen dann in der .bbx-Datei modifiziert. Wird der etwa schon woanders verwendet und würde es somit zu Problemen führen?


Du verwendest in deinem Beispiel das Package "citeall". Kannst du mir kurz sagen, wofür das gut ist? Ich habe im Internet jetzt nur auf die schnelle das Package "cite" gefunden, aber nicht "citeall". Wenn es eine wichtige Funktion bei diesem Beispiel einnimmt, kannst du mir evtl. sagen, wo ich das downloaden kann? Bei mir scheint es nicht auf dem Rechner zu sein.

Vielen Dank für die schnelle und äußerst hilfreiche Unterstützung!

von Besserwisser » Sa 28. Feb 2015, 15:12

Wenn man \dincite definiert hat, kann man das Makro cite beispielsweise auch so umdefiniere, dass es bei vorhandenem Feld `number` dieses Makro verwendet. Vergleichbare Fallunterscheidungen gibt es schon in `authoryear.cbx`. Ich kann das nur gerade nicht testen, deshalb dazu kein Beispiel.

Nach oben