Zitierstil für einzelne Dokumente (Normen) anpassen?

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


JK5463
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Do 26. Feb 2015, 13:45

Beitrag von JK5463 »

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.

Besserwisser

Beitrag von Besserwisser »

:?:
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????

JK5463
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Do 26. Feb 2015, 13:45

Beitrag von JK5463 »

@ 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!

Besserwisser

Beitrag von Besserwisser »

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

JK5463
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Do 26. Feb 2015, 13:45

Beitrag von JK5463 »

@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}}

Antworten