Git Product home page Git Product logo

Comments (24)

moewew avatar moewew commented on May 25, 2024 1

Am einfachsten wohl mit

\ExecuteBibliographyOptions{citeauthorformat=initials}

Da gibt es ja eh schon einen Block in archaeologie.bbx (Z. 24)

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

@moewew : Ich habe deine Anmerkungen nun versucht umzusetzen.
Hier ein MWE:

\documentclass[
french,latin,spanish,
italian,
ngerman,
%english
]{article}
\usepackage{babel}
\usepackage{libertine}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}

@Article{Ball2013,
  author       = {Larry F. Ball and John J. Dobbins},
  title        = {Pompeii Forum Project},
  subtitle     = {Current Thinking on the Pompeii Forum},
  journaltitle = AJA,
  shortjournal = AJA-short,
  volume       = {117},
  pages        = {461--492},
  year         = {2013},
  doi          = {10.3764/aja.117.3.0461},
  eprint       = {10.3764/aja.117.3.0461},
  eprinttype   = {jstor},
  month        = {July},
  number       = {3},
}

@Incollection{Carter2014,
  author    = {Carter, Michael J. and Edmondson, Jonathan},
  title     = {Spectacle in Rome, Italy, and the Provinces},
  pages     = {537--558},
  editor    = {Bruun, Christer and Edmondson, Jonathan},
  booktitle = {The Oxford Handbook of Roman Epigraphy},
  publisher = OUP,
  location  = {Oxford},
  year      = {2014},
}

@Review{Hufschmid2010,
  author       = {Hufschmid, Thomas},
  title        = {Von Caesars \emph{theatron kynegetikon} zum \emph{amphitheatrum novum} Vespasians},
  pages        = {487--504},
  volume       = {23},
  journaltitle = JRA,
  shortjournal = JRA-short,
  related      = {Welch2007},
  relatedtype  = {reviewof},
  year         = {2010},
}

\end{filecontents*}


\usepackage{csquotes}
\usepackage[                    
backend=biber,
style=archaeologie,
initials,
%uniquename=true,
]{biblatex}
\addbibresource{\jobname.bib}

 \makeatletter
\newcommand*{\cbx@fseen@names}{}
\newcommand*{\cbx@tseen@names}{}
\newrobustcmd*{\cbx@nameseen}[1]{%
  \iftoggle{blx@footnote}
    {\listcsxadd{cbx@fseen@names}{#1}}
    {\listcsxadd{cbx@tseen@names}{#1}}}
\newrobustcmd*{\cbx@ifnameseen}[1]{%
  \iftoggle{blx@footnote}
    {\xifinlistcs{#1}{cbx@fseen@names}}
    {\xifinlistcs{#1}{cbx@tseen@names}}}


\DeclareNameFormat{citeauthor}{%
  \cbx@ifnameseen{\thefield{hash}}
    {}
    {\setcounter{uniquename}{2}%
     \cbx@nameseen{\thefield{hash}}}%
  \ifcase\value{uniquename}%
    \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \or
    \ifuseprefix
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffixi}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefixi}
        {\namepartsuffixi}}%
  \or
    \usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \fi
  \usebibmacro{name:andothers}}



  %------ aus archaeologie
\renewbibmacro*{cite:name}{%   
% 0: only last names, 1: last name + first name initials, 2: full name
  \ifbool{cbx:fullnames}{\c@uniquename=2}{\ifbool{cbx:lastnames}{\c@uniquename=0}{\c@uniquename=1}}%
  \ifciteindex{\indexnames{labelname}}{}%
  \printtext[bibhyperref]{%
    \iffootnote{\c@uniquename=0 \printnames[citeauthor]{labelname}}{\printnames[citeauthor]{labelname}}}}  

\DeclareCiteCommand{\citeauthor}%
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \renewcommand*{\multinamedelim}{\addcomma\space}%
   \renewcommand*{\finalnamedelim}{%
     \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
     \addspace\bibstring{and}\space}%
   \usebibmacro{prenote}}%
  {\usebibmacro{cite:name}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}%

\makeatother


\usepackage{hyperref}
\begin{document}
%\nocite{*}
\footnote{\cites{Carter2014}{Hufschmid2010}{Ball2013}}
\citeauthor{Ball2013}\\
\citeauthor{Ball2013}\\
\citeauthor{Hufschmid2010}\\
\citeauthor{Hufschmid2010}\\
\citeauthor{Carter2014}\\
\citeauthor{Carter2014}\\
\footnote{\cites{Carter2014}{Hufschmid2010}{Ball2013}}
%\printbibliography
\end{document}

Was jetzt nicht passt, sind die Fußnoten: In der zweiten Zitation gibt es nun die "Langversion".

Noch zwei Dinge: Mir fällt kein Unterschied zu uniquename=true oder false auf.

Und eine Frage: Kann man das mit der Seitenzahlabhängigkeit umsetzen? (s. erstes Kommentar)

Schön wäre wenn man die neue \citeauthor-Funktion in eine Option packen kann (bspw. firstfullnames -- wo wäre die am besten einzubauen?)

from biblatex-archaeologie.

moewew avatar moewew commented on May 25, 2024

Da Du in cite:name selbst an uniquename rumschraubst, hat die Option uniquename keine Auswirkung auf \citeauthor. Eine Auswirkung hat sie aber, wenn Du unqiuename=true setzt, dann funktioniert zumindest bei mir der Kurzname im zweiten Zitat. Auch das hängt denke ich damit zusammen, dass wir in cite:name sonst einen Wert erzwingen, der biblatex dann aus dem Konzept bringt.

Wenn wir für \citeauthor eh ein neues Namensformat brauchen, sollten wir darüber nachdenken, das \c@uniquename-Gepfusche zu lassen.

Das sollte man vielleicht geregelter angehen. Daher die Frage, wie sollen die Namen in normalen Zitaten aussehen?

  • Nur Nachname (Müller, Elk)
  • Vornameninitial und Nachname (K. Müller, A. Elk)
  • Vorname und Nachname (Konrad Müller, Anne Elk)
  • Vornameninitial bzw. Vorname nur bei Uneideutigkeit und Nachname (K. Müller, Elk)
  • ... oder ganz anders?

Und wie soll es bei \citeauthor aussehen?

Was würde das für cbx:fullnames und cbx:lastnames bedeuten?

Ja nach dem, welche Kombination sich hier ergibt, ist es sinnvoll, uniquename zu nutzen und labelname zu bearbeiten oder anders vorzugehen.

Das mit den Seiten müsstest Du genauer spezifizieren, wie soll der Algorithmus, der die Entscheidung fällt, denn genau aussehen. Wir können uns merken, wo wir das letzte Mal einen bestimmten Namen genannt haben und dann, wenn die aktuelle Seitenzahl zu weit weg ist, darauf reagieren. Vom Gefühl hätte ich gesagt, dass bei diesem simplen Plan einiges schief gehen kann, aber das wäre eine Idee.

Wie sich das am besten in eine Option packen lässt hängt mit den anderen Fragen zusammen.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Das mit dem falschen Initial hat sich erledigt, denn ich habe herausgefunden, dass man Biber nochmals durchlaufen lassen muss, dann erst erfolgt die initial-abhängige Ausgabe des Vornamens. Das scheint dann nicht das Problem zu sein.

  • Die Namenformatierung für \cite, etc. soll nur Nachname sein (durch die Erweiterung mit Buchstaben bei gleichem Namen und Jahr (Bspw. Müller 2008a, Müller 2008b) wird es immer eindeutig sein, sodass man bei Uneindeutigkeit kein Vornameninitial braucht?!)
  • Die Namenformatierung für \citeauthor, etc. soll man über Optionen steuern können, wobei Standard soll sein: Ausgabe von Vornameninitial und Nachname (K. Müller, A. Elk)
  • cbx:fullnames: Ausgabe von Vor- und Zuname (Konrad Müller, Anne Elk)
  • cbx:lastnames: Ausgabe nur von Nachname (Müller, Elk)
  • cbx:firstfullnames: Ausgabe bei erster Erwähnung (mit \citeauthor) von Vor- und Zuname (Konrad Müller, Anne Elk), bei allen weiteren Erwähnungen dann das Standardformat (Vornameninitial und Nachname (K. Müller, A. Elk))

Das mit den Seiten hast du richtig erfasst. Mir schwebt vor, dass man mit bspw. cbx:fullnamespagediff eine Seitenzahl definiert, die dann zwischen zwei \citeauthor nicht überschritten werden darf. Wird sie überschritten, dann erfolgt wieder Ausgabe des vollen Vor- und Zuname.
Definiert man die Seitenzahl "5", dann wird auf Seite 1 \citeauthor mit Vor- und Zuname, auf Seite 2 nur Vornameninitial und Nachname, aber auf Seite 10 wieder Vor- und Zuname ausgegeben.

Man bräuchte dafür ggf. gar keine neue Option cbx:fullnamespagediff, sondern kann dies in cbx:firstfullnames integrieren, indem es nicht auf true oder false gesetzt wird, sondern die gewünschte Seitenzahl angegeben wird (=Zahl), wobei =0 für nur erste Nennung Vor- und Zuname und alle anderen Nennungen für Vornameninitial und Nachname steht.

from biblatex-archaeologie.

moewew avatar moewew commented on May 25, 2024

OK. Also sollten wir von labelname die Pfoten lassen und auch von uniquename. (Natürlich ist Müller 2008a, Müller 2008b eindeutig, aber bei "J. Müller 2008, K. Müller 2008" kann die Leserin die Autoren unterscheiden, das ist doch ganz nett.)

Wenn wir diese vier Auswahlmöglichkeiten für das \citeauthor-Format haben, sollten wir vielleicht besser eine "Text"-Option citeauthorformat mir den Werten initial, full, last, firstfull bauen. Das scheint mir konzeptionell einfacher. Außedem kommen sich dann die ganzen Boolean-Optionen nicht gegenseitig in den Weg. Dann bräuchte man für den Seitenabstand eine eigene Option, das könnte ich aber verkraften.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

aha, das mit der Textoption ist ja eine noch bessere Option! da muss ich mal schauen, wie man die umsetzt.

from biblatex-archaeologie.

moewew avatar moewew commented on May 25, 2024

Ich würde sowas vorschlagen

\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}

@Article{Ball2013,
  author       = {Larry F. Ball and John J. Dobbins},
  title        = {Pompeii Forum Project},
  subtitle     = {Current Thinking on the Pompeii Forum},
  journaltitle = AJA,
  shortjournal = AJA-short,
  volume       = {117},
  pages        = {461--492},
  year         = {2013},
  doi          = {10.3764/aja.117.3.0461},
  eprint       = {10.3764/aja.117.3.0461},
  eprinttype   = {jstor},
  month        = {July},
  number       = {3},
}

@Incollection{Carter2014,
  author    = {Carter, Michael J. and Edmondson, Jonathan},
  title     = {Spectacle in Rome, Italy, and the Provinces},
  pages     = {537--558},
  editor    = {Bruun, Christer and Edmondson, Jonathan},
  booktitle = {The Oxford Handbook of Roman Epigraphy},
  publisher = OUP,
  location  = {Oxford},
  year      = {2014},
}

@Review{Hufschmid2010,
  author       = {Hufschmid, Thomas},
  title        = {Von Caesars \emph{theatron kynegetikon} zum \emph{amphitheatrum novum} Vespasians},
  pages        = {487--504},
  volume       = {23},
  journaltitle = JRA,
  shortjournal = JRA-short,
  related      = {Welch2007},
  relatedtype  = {reviewof},
  year         = {2010},
}

\end{filecontents*}


\usepackage{csquotes}
\usepackage[                    
backend=biber,
style=archaeologie,
initials,
]{biblatex}
\addbibresource{\jobname.bib}

\makeatletter
\newcommand*{\cbx@fseen@names}{}
\newcommand*{\cbx@tseen@names}{}
\newrobustcmd*{\cbx@nameseen}[1]{%
  \iftoggle{blx@footnote}
    {\listcsxadd{cbx@fseen@names}{#1}}
    {\listcsxadd{cbx@tseen@names}{#1}}}
\newrobustcmd*{\cbx@ifnameseen}[1]{%
  \iftoggle{blx@footnote}
    {\xifinlistcs{#1}{cbx@fseen@names}}
    {\xifinlistcs{#1}{cbx@tseen@names}}}

\DeclareBibliographyOption[string]{citeauthorformat}{%
  \ifcsdef{cbx@arch@citeauthorformat@#1}
    {\csuse{cbx@arch@citeauthorformat@#1}}
    {\PackageError{biblatex-archaeologie}
       {Option 'citeauthorformat=#1' invalid}
       {The option you have supplied is invalid.\MessageBreak
        Use one of the values 'initials', 'full', 'family' or 'firstfull'.}}}

\def\cbx@arch@citeauthorformat@family{%
  \DeclareNameFormat{citeauthor}{%
    \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}}

\def\cbx@arch@citeauthorformat@full{%
  \DeclareNameFormat{citeauthor}{%
    \usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}}

\def\cbx@arch@citeauthorformat@initials{%
  \DeclareNameFormat{citeauthor}{%
    \ifuseprefix
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffixi}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefixi}
        {\namepartsuffixi}}}}

\def\cbx@arch@citeauthorformat@firstfull{%
  \DeclareNameFormat{citeauthor}{%
    \cbx@ifnameseen{\thefield{hash}}
      {\ifuseprefix
        {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiveni}
          {\namepartprefix}
          {\namepartsuffixi}}
        {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiveni}
          {\namepartprefixi}
          {\namepartsuffixi}}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiven}
        {\namepartprefix}
        {\namepartsuffix}%
       \cbx@nameseen{\thefield{hash}}}}}

\DeclareCiteCommand{\citeauthor}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[citeauthor]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
\makeatother
\ExecuteBibliographyOptions{citeauthorformat=firstfull}

\usepackage{hyperref}
\begin{document}
%\nocite{*}
\footnote{\cites{Carter2014}{Hufschmid2010}{Ball2013}}
\citeauthor{Ball2013}\\
\citeauthor{Ball2013}\\
\citeauthor{Hufschmid2010}\\
\citeauthor{Hufschmid2010}\\
\citeauthor{Carter2014}\\
\citeauthor{Carter2014}\\
\footnote{\cites{Carter2014}{Hufschmid2010}{Ball2013}}
%\printbibliography
\end{document}

Das kann jetzt diese Seitanabhängigkeit noch nicht, aber das lässt sich sicher noch einbauen.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

das sieht richtig gut komprimiert aus. wie stellt man default initials ein?

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

warum heißt es manchmal namepartsuffixi also das i am Ende ?

from biblatex-archaeologie.

moewew avatar moewew commented on May 25, 2024

Das i steht für 'initial' und zeigt an, dass in dem Makro das Initial und nicht der ganze Namensteil gespeichert ist. \namepartgiven enthält den Vornamen "Anne", \namepartgiveni nur das Initial "A.".

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

genial. funktioniert ja tadellos soweit ich das sehe! wird gleich in die cbx:archaeologie eingebaut.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Habe \citeauthor leicht geändert, damit es wieder in die bisherige Formatierung passt:

  \DeclareCiteCommand{\citeauthor}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \renewcommand*{\multinamedelim}{\addcomma\space}%
   \renewcommand*{\finalnamedelim}{%
     \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
     \addspace\bibstring{and}\space}%
   \usebibmacro{prenote}}%
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printnames[citeauthor]{labelname}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

Nun gibt es allerdings eine Fehlermeldung:

! Package keyval Error: citeauthorformat undefined.

obwohl citeauthorformat=initials in der \ExecuteBibliographyOptions angegeben ist.
Auch ein \ExecuteBibliographyOptions{citeauthorformat=initials} nach \DeclareBibliographyOption[string]{citeauthorformat}{.. bringt die gleiche Fehlermeldung.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Ok, wenn ich


\ExecuteBibliographyOptions{%
  citetracker=true,% 
  idemtracker=false,% 
  ibidtracker=true,%
  opcittracker=true,%
  loccittracker=true,%
  labeldate=true,%
  citeauthorformat=initials,%
}

ganz ans Ende von archaeologie.cbx setze, klappt alles.

Jetzt fehlt "nur" noch die Option mit der Seitenangabe.
Kann man bspw. die Option so einbauen: citeauthorformat=firstfull:5, also dass die Zahl nach : die Seitenzahldifferenz von Erst- und Folgenennung definiert?

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Es wird nun bei drei und mehr Autoren/Herausgeber nur der erste Autor/Hrsg. angegeben und kein "u. a." mehr:

\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}

@Article{Ball2013,
  author       = {Larry F. Ball and John J. Dobbins and Müller, Hans},
  title        = {Pompeii Forum Project},
  subtitle     = {Current Thinking on the Pompeii Forum},
  journaltitle = AJA,
  shortjournal = AJA-short,
  volume       = {117},
  pages        = {461--492},
  year         = {2013},
  doi          = {10.3764/aja.117.3.0461},
  eprint       = {10.3764/aja.117.3.0461},
  eprinttype   = {jstor},
  month        = {July},
  number       = {3},
}

\end{filecontents*}


\usepackage{csquotes}
\usepackage[                    
backend=biber,
style=archaeologie,
initials,
]{biblatex}
\addbibresource{\jobname.bib}

\makeatletter
\newcommand*{\cbx@fseen@names}{}
\newcommand*{\cbx@tseen@names}{}
\newrobustcmd*{\cbx@nameseen}[1]{%
  \iftoggle{blx@footnote}
    {\listcsxadd{cbx@fseen@names}{#1}}
    {\listcsxadd{cbx@tseen@names}{#1}}}
\newrobustcmd*{\cbx@ifnameseen}[1]{%
  \iftoggle{blx@footnote}
    {\xifinlistcs{#1}{cbx@fseen@names}}
    {\xifinlistcs{#1}{cbx@tseen@names}}}

\DeclareBibliographyOption[string]{citeauthorformat}{%
  \ifcsdef{cbx@arch@citeauthorformat@#1}
    {\csuse{cbx@arch@citeauthorformat@#1}}
    {\PackageError{biblatex-archaeologie}
       {Option 'citeauthorformat=#1' invalid}
       {The option you have supplied is invalid.\MessageBreak
        Use one of the values 'initials', 'full', 'family' or 'firstfull'.}}}

\def\cbx@arch@citeauthorformat@family{%
  \DeclareNameFormat{citeauthor}{%
    \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}}

\def\cbx@arch@citeauthorformat@full{%
  \DeclareNameFormat{citeauthor}{%
    \usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}}}

\def\cbx@arch@citeauthorformat@initials{%
  \DeclareNameFormat{citeauthor}{%
    \ifuseprefix
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffixi}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefixi}
        {\namepartsuffixi}}}}

\def\cbx@arch@citeauthorformat@firstfull{%
  \DeclareNameFormat{citeauthor}{%
    \cbx@ifnameseen{\thefield{hash}}
      {\ifuseprefix
        {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiveni}
          {\namepartprefix}
          {\namepartsuffixi}}
        {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiveni}
          {\namepartprefixi}
          {\namepartsuffixi}}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiven}
        {\namepartprefix}
        {\namepartsuffix}%
       \cbx@nameseen{\thefield{hash}}}}}


\DeclareCiteCommand{\citeauthor}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \renewcommand*{\multinamedelim}{\addcomma\space}%
   \renewcommand*{\finalnamedelim}{%
     \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
     \addspace\bibstring{and}\space}%
   \usebibmacro{prenote}}%
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printtext[bibhyperref]{%
        \printnames[citeauthor]{labelname}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
  \makeatother
\ExecuteBibliographyOptions{citeauthorformat=firstfull}

\usepackage{hyperref}
\begin{document}
%\nocite{*}
\footnote{\cite{Ball2013}}
\citeauthor{Ball2013}\\
\citeauthor{Ball2013}\\
\footnote{\cite{Ball2013}}
%\printbibliography
\end{document}

from biblatex-archaeologie.

moewew avatar moewew commented on May 25, 2024

Ja Du kannst eine Option erst ausführen, nachdem Du sie definiert hast. (Man kann denn \ExecuteBibliographyOptions-Befehl am einfachsten nach dem Block mit allen \DeclareBibliographyOptions ausführen, dann hat man alles beisammen.)

Für die Seitenzahlgeschichte würde ich lieber eine eigene Option aufbauen. Es könnte auch mit firstfull:n funktionieren, aber dann kann man die Infrastruktur, so wie wir sie gerade aufgebaut haben, nicht mehr ganz so verwenden und ich weiß nicht, wie man sie am besten anpassen müsste.

Ich habe in den Namensformaten den Aufruf von name:andothers vergessen, der muss jeweils noch ans Ende.

\def\cbx@arch@citeauthorformat@family{%
  \DeclareNameFormat{citeauthor}{%
    \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
    \usebibmacro{name:andothers}}}

\def\cbx@arch@citeauthorformat@full{%
  \DeclareNameFormat{citeauthor}{%
    \usebibmacro{name:given-family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
    \usebibmacro{name:andothers}}}

\def\cbx@arch@citeauthorformat@initials{%
  \DeclareNameFormat{citeauthor}{%
    \ifuseprefix
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffixi}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefixi}
        {\namepartsuffixi}}%
    \usebibmacro{name:andothers}}}

\def\cbx@arch@citeauthorformat@firstfull{%
  \DeclareNameFormat{citeauthor}{%
    \cbx@ifnameseen{\thefield{hash}}
      {\ifuseprefix
        {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiveni}
          {\namepartprefix}
          {\namepartsuffixi}}
        {\usebibmacro{name:given-family}
          {\namepartfamily}
          {\namepartgiveni}
          {\namepartprefixi}
          {\namepartsuffixi}}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiven}
        {\namepartprefix}
        {\namepartsuffix}%
       \cbx@nameseen{\thefield{hash}}}%
    \usebibmacro{name:andothers}}}

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

ah - auf das naheliegende \usebibmacro{name:andothers} bin ich natürlich nicht gekommen.
Gibt es schon einen Stil, der die Seitenzahl-Sache in etwa drin hat, sodass man das modifizieren kann?

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Jetzt funktioniert auch uniquename=true an sich wunderbar..... aber....

Es gibt das bibmacro cite:Lexikon, das dann nicht mehr funktioniert:

\newbibmacro*{cite:lexikon}{%
                \printfield{booktitle}%
                \setunit{\addspace}%
                \printfield{volume}%
                 \setunit{\addspace}%
                \printfield[parens]{year}%
                \setunit{\addspace}%
                            \iffieldundef{postnote}{\printfield{pages}}%
                            {\printfield{postnote}}%
                        \iffieldundef{title}{}{\setunit{\addspace}%
                        \printtext{s\adddot\addnbthinspace v\adddot}}%
                \setunit{\addspace}\printfield{title}%
                 \iffieldundef{number}{}{\setunit{\addspace}%
                 \printtext[brackets]{\printfield{number}}}%
                \setunit{\addspace}%
                \printtext[parens]{\c@uniquename=1 \printnames{labelname}}%
    }

Hier soll der Autorenname IMMER mit Vornameninitial und Nachname ausgegeben werden, egal welche Option man sonst gewählt hat.

Dann ein zweites: Ich bekomme gerade Bescheid, dass zur Unterscheidung von gleichen Nachnamen-Autoren, das Vornameninitial hinter den Nachnamen gestellt werden muss:

Müller, A. 2015
Müller, B. 2015

wie ließe sich das umsetzen? --> #91

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Die Sache mit dem Lexikon könnte man so lösen?!

\DeclareNameFormat{name:lexikon}{%
    \ifuseprefix
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefix}
        {\namepartsuffixi}}
      {\usebibmacro{name:given-family}
        {\namepartfamily}
        {\namepartgiveni}
        {\namepartprefixi}
        {\namepartsuffixi}}%
    \usebibmacro{name:and others}}


\newbibmacro*{cite:lexikon}{%
                \printfield{booktitle}%
                \setunit{\addspace}%
                \printfield{volume}%
                 \setunit{\addspace}%
                \printfield[parens]{year}%
                \setunit{\addspace}%
                            \iffieldundef{postnote}{\printfield{pages}}%
                            {\printfield{postnote}}%
                        \iffieldundef{title}{}{\setunit{\addspace}%
                        \printtext{s\adddot\addnbthinspace v\adddot}}%
                \setunit{\addspace}\printfield{title}%
                 \iffieldundef{number}{}{\setunit{\addspace}%
                 \printtext[brackets]{\printfield{number}}}%
                \setunit{\addspace}%
                \printtext[parens]{\printnames[name:lexikon]{labelname}}%
    }

from biblatex-archaeologie.

moewew avatar moewew commented on May 25, 2024

Da ist ein Leerzeichen in \usebibmacro{name:and others} zu viel, es muss \usebibmacro{name:andothers} heißen.

Mir fällt gerade auf, dass man das \printtext{s\adddot\addnbthinspace v\adddot} schöner mit \bibstrings lösen würde.
Auch

\iffieldundef{number}{}{\setunit{\addspace}%
                 \printtext[brackets]{\printfield{number}}}%

kann man eigentlich zu

\setunit{\addspace}%
\printfield[brackets]{number}%

eindampfen (eventuell statt \setunit \setunit*, oder noch schöner statt \printfield[brackets]{number} nur \printfield{number} mit passendem \DeclareFieldFormat.)
Generell kann man \iffieldundef häufig umgehen, wenn man den punctuation tracker richtig verwendet.

Diese Seitenzahl-Idee habe ich noch nirgendwo gesehen, wüsste also nicht direkt, wo ich klauen gehen sollte.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Ein eigener bibstring für subvoce könnte so aussehen:

\NewBibliographyString{subvoce}

\DeclareBibliographyStrings{%
  subvoce          = {{sub voce}{s\adddot\addnbthinspace v\adddot}},
}

Aber wo muss man das definieren, damit es nicht sprachabhängig ist?!

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Bei einem \DeclareFieldFormat{number}{\mkbibbrackets#1} würden alle aber alle \printfield{number} in eckige Klammern gesetzt werden? Für Zeitschriften oder Serien soll das nicht der Fall sein, dann wäre ein \printfield[brackets]{number} besser?!

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Sind dann die \iffieldundef{number}{}{\printfield{number}} überflüssig, weil {\printfield{number}} nur passiert, wenn das Feld {number} auch definiert ist? Gilt dies auch für alle anderen Felder? Denn dann würde man auf einige 'iffieldundef' verzichten können:

\newbibmacro*{zenon}{%
    \usebibmacro{bbx:parunit}%
    %\iffieldundef{zenon}%
    %       {}%
            {\printfield{zenon}}%
}
%-----------------------   
\newbibmacro*{jstor}{%
    \usebibmacro{bbx:parunit}%
  % \iffieldundef{jstor}%
    %       {}%
            {\printfield{jstor}}%
}
%-----------------------   
\newbibmacro*{urn}{%
    \usebibmacro{bbx:parunit}%
    %\iffieldundef{urn}%
    %       {}%
            {\printfield{urn}}%
}
%-----------------------
\renewbibmacro*{url+urldate}{%
    \usebibmacro{bbx:parunit}%
    \printfield{url}%
    %\iffieldundef{urlyear}%
    %       {}%
            {\setunit*{\addspace}%
                \printtext{\printurldate}%
            }%
}

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on May 25, 2024

Ich habe es jetzt so gelöst:
\newcommand*{\subvoce}{\addspace s\adddot\addnbthinspace v\adddot}

und dann in

\newbibmacro*{inreference:title+author}{%
\iffieldundef{title}%
            {}%
            {\subvoce%
                    \setunit{\addspace}%
                \printfield{title}%
                    \setunit*{\addspace}%
                \printfield[brackets]{number}}
        \setunit{\addspace}%
        \printtext[parens]{\printnames[name:inreference]{labelname}}
}   

eingebaut.

from biblatex-archaeologie.

moewew avatar moewew commented on May 25, 2024

Ad "sub voce": Ich würde es gerade als Vorteil sehen, dass es sprachabhängig wird. Das kann dann entweder in einer .lbx-Datei passieren, oder mit \DefineBibliographyStrings{<lang>} auch in der .bbx/.cbx.

Statt \DeclareFieldFormat{number}{\mkbibbrackets#1} kannst Du \DeclareFieldFormat[inreference]{number}{\mkbibbrackets{#1}} auf den Typ @inreference (für Lexika) beschränken. Dann bekämen @articles und @inbooks, @incollections das nicht.

In Deinen Beispielen ist \iffieldundef in der Tat unnötig. Man braucht es aber z.B., wenn man mit \printtext etwas hinzufügen muss, was nur erscheinen darf, wenn ein anderes Feld gezeigt wird. Schau Dir mal §4.11.7 Using the Punctuation Tracker in der biblatex-Doku an.

from biblatex-archaeologie.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.