Git Product home page Git Product logo

Comments (34)

LukasCBossert avatar LukasCBossert commented on September 21, 2024

@moewew hast du eine Idee, wie oder ob überhaupt das zu lösen ist?

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Nur damit ich es richtig verstehe. Du möchtest '2001/2002' aber trotzdem '2000--2005'? Also sollen nur direkt aufeinanderfolgende Jahre mit / getrennt werden, alle anderen wie gehabt mit --?

Ich kann mir vorstellen, dass das prinzipiell geht. Bordmittel dafür direkt gibt es wohl nicht. Bin mir nicht sicher, ob es so geht wie ich mir gerade denke. Dann wäre es nicht so kompliziert, aber recht frickelig, da der Code für die Datumsbehandlung recht viele Doppelungen aufweist.

Die Idee ist, es wenn \bibdaterangesep ausgegeben werden soll, vorher zu prüfen, ob #1endyear-#1year=1 ist, wenn ja, dann wird / ausgegeben.

Vielleicht habe ich die nächsten Tage Zeit, mir das mal anzusehen.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Genau, so meine ich es.

#1endyear-#1year=1 sieht nach einem guten Ansatz aus.
Hatte schon befürchtet, dass das nicht geht. (was es ja eigentlich nicht gitb)

Danke für deine Überlegungen!

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024
\newrobustcmd*{\bibdatesubseqesep}{\slash}
\newrobustcmd*{\bibdaterangesepx}[1]{%
  \ifboolexpr{test {\iffieldint{#1year}} and test {\iffieldint{#1endyear}}} 
    {\ifnumequal{\thefield{#1endyear}-\thefield{#1year}}{1}
       {\bibdatesubseqesep}
       {\bibdaterangesep}}
    {\bibdaterangesep}}

\renewrobustcmd*{\mkdaterangefull}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
          % Optionally print the time after the date
          \blx@printtime{#2}{}}
         {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
       \dateuncertainprint
       \dateeraprint{#2year}%
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesepx{#2}}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
                % Optionally print the time after the date
                \blx@printtime{#2}{end}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2endyear}}}}}}

\renewrobustcmd*{\mkdaterangetrunc}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
            {\iffieldsequal{#2month}{#2endmonth}
               {\csuse{mkbibdate#1}{}{}{#2day}}
               {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
            {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}%
            \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesepx{#2}}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2endyear}}}}}}

\renewrobustcmd*{\mkdaterangefullextra}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \printtext{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
          % Optionally print the time after the date
          \blx@printtime{#2}{}}
         {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
       \dateuncertainprint
       \dateeraprint{#2year}%
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \printtext{\mbox{\bibdaterangesepx{#2}}}}
            {\printtext{%
               \bibdaterangesepx{#2}%
               \enddatecircaprint
               \iffieldundef{#2season}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
                  % Optionally print the time after the date
                  \blx@printtime{#2}{end}}
                 {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \printfield{extradate}%
               \enddateuncertainprint
               \dateeraprint{#2endyear}}}}}}}

\renewrobustcmd*{\mkdaterangetruncextra}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \printtext{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
            {\iffieldsequal{#2month}{#2endmonth}
               {\csuse{mkbibdate#1}{}{}{#2day}}
               {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
            {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
               {\dateeraprint{#2year}}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \printtext{\mbox{\bibdaterangesepx{#2}}}}
            {\printtext{%
               \bibdaterangesepx{#2}%
               \enddatecircaprint
               \iffieldundef{#2season}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
                 {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \printfield{extradate}%
               \enddateuncertainprint
               \dateeraprint{#2endyear}}}}}}}

\renewrobustcmd*{\mkdaterangeymd}[1]{%
  \blx@metadateinfo{#1}%
  \iffieldundef{#1year}
    {}
    {\datecircaprint
     \printtext[#1date]{%
       % Such a season component can only come from an  ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#1season}
         {\blx@ymddate{#1}{}%
          % Optionally print the time after the date
          \blx@printtime{#1}{}}
         {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
       \dateuncertainprint
       \dateeraprint{#1year}%
       \iffieldundef{#1endyear}
         {}
         {\iffieldequalstr{#1endyear}{}
            {\mbox{\bibdaterangesepx{#1}}}
            {\bibdaterangesepx{#1}%
             \enddatecircaprint
             \iffieldundef{#1season}
               {\blx@ymddate{#1}{end}%
                % Optionally print the time after the date
                \blx@printtime{#1}{end}}
               {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}%
             \enddateuncertainprint
             \dateeraprint{#1endyear}}}}}}

\renewrobustcmd*{\mkdaterangeymdextra}[1]{%
  \blx@metadateinfo{#1}%
  \iffieldundef{#1year}
    {}
    {\datecircaprint
     \printtext[#1date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#1season}
         {\blx@ymddate[extradate]{#1}{}%
          % Optionally print the time after the date
          \blx@printtime{#1}{}}
         {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
       \dateuncertainprint
       \dateeraprint{#1year}%
       \iffieldundef{#1endyear}
         {}
         {\iffieldequalstr{#1endyear}{}
            {\mbox{\bibdaterangesepx{#1}}}
            {\printtext{%
               \bibdaterangesepx{#1}%
               \enddatecircaprint
               \iffieldundef{#1season}
                 {\blx@ymddate{#1}{end}%
                  % Optionally print the time after the date
                  \blx@printtime{#1}{end}}
                 {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}%
             \enddateuncertainprint
             \dateeraprint{#1endyear}}}}}}

Eigentlich ist nicht viel passiert. In den Datums-Makros wurde nur \bibdaterangesep durch \bibdaterangesepx{#1}/\bibdaterangesepx{#2} ersetzt. Die Definition von \bibdaterangesepx sollte selbsterklärend sein.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Mit dem MWE

\documentclass[german,ngerman]{scrbook}
\usepackage{filecontents,babel}
\begin{filecontents}{\jobname.bib}
@article{HerzNeueMainzerSteininschriften1978,
  langid = {german},
  title = {Neue Mainzer Steininschriften (1964–1976)},
  volume = {73/74},
  journaltitle = {MainzZ},
  author = {Herz, Peter},
  date = {1978/1979},
  pages = {275--290}}
@article{HerzNeueMainzerSteininschriften19782,
  langid = {german},
  title = {Neue Mainzer Steininschriften (1964–1976)},
  volume = {73/74},
  journaltitle = {MainzZ},
  author = {Herz, Peter},
  date = {1978/1988},
  pages = {275--290}}

\end{filecontents}
\usepackage[           
  backend=biber,
%style=../biblatex-archaeologie/archaeologie,
  style=archaeologie,
]{biblatex}	
\addbibresource{\jobname.bib}
\newrobustcmd*{\bibdatesubseqesep}{\slash}
\newrobustcmd*{\bibdaterangesepx}[1]{%
  \ifboolexpr{test {\iffieldint{#1year}} and test {\iffieldint{#1endyear}}} 
    {\ifnumequal{\thefield{#1endyear}-\thefield{#1year}}{1}
       {\bibdatesubseqesep}
       {\bibdaterangesep}}
    {\bibdaterangesep}}

\renewrobustcmd*{\mkdaterangefull}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
          % Optionally print the time after the date
          \blx@printtime{#2}{}}
         {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
       \dateuncertainprint
       \dateeraprint{#2year}%
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesepx{#2}}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
                % Optionally print the time after the date
                \blx@printtime{#2}{end}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2endyear}}}}}}

\renewrobustcmd*{\mkdaterangetrunc}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
            {\iffieldsequal{#2month}{#2endmonth}
               {\csuse{mkbibdate#1}{}{}{#2day}}
               {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
            {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}%
            \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesepx{#2}}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2endyear}}}}}}

\renewrobustcmd*{\mkdaterangefullextra}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \printtext{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
          % Optionally print the time after the date
          \blx@printtime{#2}{}}
         {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
       \dateuncertainprint
       \dateeraprint{#2year}%
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \printtext{\mbox{\bibdaterangesepx{#2}}}}
            {\printtext{%
               \bibdaterangesepx{#2}%
               \enddatecircaprint
               \iffieldundef{#2season}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
                  % Optionally print the time after the date
                  \blx@printtime{#2}{end}}
                 {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \printfield{extradate}%
               \enddateuncertainprint
               \dateeraprint{#2endyear}}}}}}}

\renewrobustcmd*{\mkdaterangetruncextra}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \printtext{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
            {\iffieldsequal{#2month}{#2endmonth}
               {\csuse{mkbibdate#1}{}{}{#2day}}
               {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
            {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
               {\dateeraprint{#2year}}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \printtext{\mbox{\bibdaterangesepx{#2}}}}
            {\printtext{%
               \bibdaterangesepx{#2}%
               \enddatecircaprint
               \iffieldundef{#2season}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
                 {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \printfield{extradate}%
               \enddateuncertainprint
               \dateeraprint{#2endyear}}}}}}}

\renewrobustcmd*{\mkdaterangeymd}[1]{%
  \blx@metadateinfo{#1}%
  \iffieldundef{#1year}
    {}
    {\datecircaprint
     \printtext[#1date]{%
       % Such a season component can only come from an  ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#1season}
         {\blx@ymddate{#1}{}%
          % Optionally print the time after the date
          \blx@printtime{#1}{}}
         {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
       \dateuncertainprint
       \dateeraprint{#1year}%
       \iffieldundef{#1endyear}
         {}
         {\iffieldequalstr{#1endyear}{}
            {\mbox{\bibdaterangesepx{#1}}}
            {\bibdaterangesepx{#1}%
             \enddatecircaprint
             \iffieldundef{#1season}
               {\blx@ymddate{#1}{end}%
                % Optionally print the time after the date
                \blx@printtime{#1}{end}}
               {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}%
             \enddateuncertainprint
             \dateeraprint{#1endyear}}}}}}

\renewrobustcmd*{\mkdaterangeymdextra}[1]{%
  \blx@metadateinfo{#1}%
  \iffieldundef{#1year}
    {}
    {\datecircaprint
     \printtext[#1date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#1season}
         {\blx@ymddate[extradate]{#1}{}%
          % Optionally print the time after the date
          \blx@printtime{#1}{}}
         {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
       \dateuncertainprint
       \dateeraprint{#1year}%
       \iffieldundef{#1endyear}
         {}
         {\iffieldequalstr{#1endyear}{}
            {\mbox{\bibdaterangesepx{#1}}}
            {\printtext{%
               \bibdaterangesepx{#1}%
               \enddatecircaprint
               \iffieldundef{#1season}
                 {\blx@ymddate{#1}{end}%
                  % Optionally print the time after the date
                  \blx@printtime{#1}{end}}
                 {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}%
             \enddateuncertainprint
             \dateeraprint{#1endyear}}}}}}
\begin{document}
\printbibliography
\nocite{*}
\end{document}

bekomme ich mit dem neuen Code eine Fehlermeldung.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

nehme alles zurück, ich habe natürlich \maketatletter \makeatother vergessen. MWE läuft problemlos! Danke.

Kann ich das so in die archaeologie.bbx übernehmen?

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Prinzipiell ja. Eine kleine Änderung hätte ich noch

\newrobustcmd*{\bibdatesubseqesep}{\slash}
\newrobustcmd*{\bibdaterangesepx}[1]{%
  \ifboolexpr{test {\iffieldint{#1year}} and test {\iffieldint{#1endyear}}} 
    {\ifnumequal{\thefield{#1endyear}-\thefield{#1year}}{1}
       {\bibdatesubseqesep}
       {\bibdaterangesep}}
    {\bibdaterangesep}}

\renewrobustcmd*{\mkdaterangefull}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
          % Optionally print the time after the date
          \blx@printtime{#2}{}}
         {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
       \dateuncertainprint
       \dateeraprint{#2year}%
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesep}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
                % Optionally print the time after the date
                \blx@printtime{#2}{end}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2endyear}}}}}}

\renewrobustcmd*{\mkdaterangetrunc}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
            {\iffieldsequal{#2month}{#2endmonth}
               {\csuse{mkbibdate#1}{}{}{#2day}}
               {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
            {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}%
            \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesep}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2endyear}}}}}}

\renewrobustcmd*{\mkdaterangefullextra}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \printtext{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
          % Optionally print the time after the date
          \blx@printtime{#2}{}}
         {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
       \dateuncertainprint
       \dateeraprint{#2year}%
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \printtext{\mbox{\bibdaterangesep}}}
            {\printtext{%
               \bibdaterangesepx{#2}%
               \enddatecircaprint
               \iffieldundef{#2season}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
                  % Optionally print the time after the date
                  \blx@printtime{#2}{end}}
                 {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \printfield{extradate}%
               \enddateuncertainprint
               \dateeraprint{#2endyear}}}}}}}

\renewrobustcmd*{\mkdaterangetruncextra}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \printtext{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
            {\iffieldsequal{#2month}{#2endmonth}
               {\csuse{mkbibdate#1}{}{}{#2day}}
               {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
            {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
               {\dateeraprint{#2year}}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \printtext{\mbox{\bibdaterangesep}}}
            {\printtext{%
               \bibdaterangesepx{#2}%
               \enddatecircaprint
               \iffieldundef{#2season}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
                 {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \printfield{extradate}%
               \enddateuncertainprint
               \dateeraprint{#2endyear}}}}}}}

\renewrobustcmd*{\mkdaterangeymd}[1]{%
  \blx@metadateinfo{#1}%
  \iffieldundef{#1year}
    {}
    {\datecircaprint
     \printtext[#1date]{%
       % Such a season component can only come from an  ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#1season}
         {\blx@ymddate{#1}{}%
          % Optionally print the time after the date
          \blx@printtime{#1}{}}
         {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
       \dateuncertainprint
       \dateeraprint{#1year}%
       \iffieldundef{#1endyear}
         {}
         {\iffieldequalstr{#1endyear}{}
            {\mbox{\bibdaterangesep}}
            {\bibdaterangesepx{#1}%
             \enddatecircaprint
             \iffieldundef{#1season}
               {\blx@ymddate{#1}{end}%
                % Optionally print the time after the date
                \blx@printtime{#1}{end}}
               {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}%
             \enddateuncertainprint
             \dateeraprint{#1endyear}}}}}}

\renewrobustcmd*{\mkdaterangeymdextra}[1]{%
  \blx@metadateinfo{#1}%
  \iffieldundef{#1year}
    {}
    {\datecircaprint
     \printtext[#1date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#1season}
         {\blx@ymddate[extradate]{#1}{}%
          % Optionally print the time after the date
          \blx@printtime{#1}{}}
         {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
       \dateuncertainprint
       \dateeraprint{#1year}%
       \iffieldundef{#1endyear}
         {}
         {\iffieldequalstr{#1endyear}{}
            {\mbox{\bibdaterangesep}}
            {\printtext{%
               \bibdaterangesepx{#1}%
               \enddatecircaprint
               \iffieldundef{#1season}
                 {\blx@ymddate{#1}{end}%
                  % Optionally print the time after the date
                  \blx@printtime{#1}{end}}
                 {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}%
             \enddateuncertainprint
             \dateeraprint{#1endyear}}}}}}

Ich bin in diesem Datumskram nicht so ganz drin, es kann sein, dass es mit amerikanischem Englisch Ärger gibt. Wenn das so ist, müssten auch die Definitionen aus english.lbx angepasst werden.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Dafür, dass du nicht so drin bist, ist das aber schon sehr gut! Danke!

Ich baue es in die archaeologie.bbx ein. Falls Probleme beim Englischen auftauchen können wir (eigentlich eher du, weil ich da nicht durchsteige) immer noch reagieren.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Beim folgenden MWE wird das Date im Label weiterhin mit -- ausgegeben, @moewew

\documentclass[german,ngerman]{scrbook}
\usepackage{filecontents,babel}
\begin{filecontents}{\jobname.bib}
@Article{DeVisscher1951-1952,
  author       = {de Visscher, Fernand and Mertens, Joseph},
  title        = {Les puits du Forum d'Alba Fucense},
  journaltitle = BCom,
  shortjournal = BCom-short,
  volume       = {74},
  pages        = {3--13},
  date         = {1951/1952},
}
@Reference{LTUR,
  editor    = {Steinby, Eva Margareta},
  title     = LTUR,
  date      = {1993/2000},
  publisher = EQ,
  location  = Rome,
  keywords  = {corpus},
  options   = {corpus},
  shorthand = LTUR-short,
}

\end{filecontents}
\usepackage[           
  backend=biber,
%style=../biblatex-archaeologie/archaeologie,
  style=archaeologie,
]{biblatex}	
\addbibresource{\jobname.bib}
\makeatletter
\AtBeginDocument{%
\newrobustcmd*{\bibdatesubseqesep}{\slash}
\newrobustcmd*{\bibdaterangesepx}[1]{%
  \ifboolexpr{test {\iffieldint{#1year}} and test {\iffieldint{#1endyear}}} 
    {\ifnumequal{\thefield{#1endyear}-\thefield{#1year}}{1}
       {\bibdatesubseqesep}
       {\bibdaterangesep}}
    {\bibdaterangesep}}

\renewrobustcmd*{\mkdaterangefull}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
          % Optionally print the time after the date
          \blx@printtime{#2}{}}
         {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
       \dateuncertainprint
       \dateeraprint{#2year}%
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesep}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
                % Optionally print the time after the date
                \blx@printtime{#2}{end}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2endyear}}}}}}

\renewrobustcmd*{\mkdaterangetrunc}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
            {\iffieldsequal{#2month}{#2endmonth}
               {\csuse{mkbibdate#1}{}{}{#2day}}
               {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
            {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}%
            \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesep}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2endyear}}}}}}

\renewrobustcmd*{\mkdaterangefullextra}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \printtext{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
          % Optionally print the time after the date
          \blx@printtime{#2}{}}
         {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
       \dateuncertainprint
       \dateeraprint{#2year}%
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \printtext{\mbox{\bibdaterangesep}}}
            {\printtext{%
               \bibdaterangesepx{#2}%
               \enddatecircaprint
               \iffieldundef{#2season}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
                  % Optionally print the time after the date
                  \blx@printtime{#2}{end}}
                 {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \printfield{extradate}%
               \enddateuncertainprint
               \dateeraprint{#2endyear}}}}}}}

\renewrobustcmd*{\mkdaterangetruncextra}[2]{%
  \blx@metadateinfo{#2}%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \printtext{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
            {\iffieldsequal{#2month}{#2endmonth}
               {\csuse{mkbibdate#1}{}{}{#2day}}
               {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
            {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
               {\dateeraprint{#2year}}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}%
             \iffieldsequal{#2dateera}{#2enddateera}{}
              {\dateeraprint{#2year}}}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \printtext{\mbox{\bibdaterangesep}}}
            {\printtext{%
               \bibdaterangesepx{#2}%
               \enddatecircaprint
               \iffieldundef{#2season}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
                 {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
               \printfield{extradate}%
               \enddateuncertainprint
               \dateeraprint{#2endyear}}}}}}}

\renewrobustcmd*{\mkdaterangeymd}[1]{%
  \blx@metadateinfo{#1}%
  \iffieldundef{#1year}
    {}
    {\datecircaprint
     \printtext[#1date]{%
       % Such a season component can only come from an  ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#1season}
         {\blx@ymddate{#1}{}%
          % Optionally print the time after the date
          \blx@printtime{#1}{}}
         {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
       \dateuncertainprint
       \dateeraprint{#1year}%
       \iffieldundef{#1endyear}
         {}
         {\iffieldequalstr{#1endyear}{}
            {\mbox{\bibdaterangesep}}
            {\bibdaterangesepx{#1}%
             \enddatecircaprint
             \iffieldundef{#1season}
               {\blx@ymddate{#1}{end}%
                % Optionally print the time after the date
                \blx@printtime{#1}{end}}
               {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}%
             \enddateuncertainprint
             \dateeraprint{#1endyear}}}}}}

\renewrobustcmd*{\mkdaterangeymdextra}[1]{%
  \blx@metadateinfo{#1}%
  \iffieldundef{#1year}
    {}
    {\datecircaprint
     \printtext[#1date]{%
       % Such a season component can only come from an ISO8601 season which replaces
       % a normal month so if it exists, we know that a normal date print is ruled out
       \iffieldundef{#1season}
         {\blx@ymddate[extradate]{#1}{}%
          % Optionally print the time after the date
          \blx@printtime{#1}{}}
         {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
       \dateuncertainprint
       \dateeraprint{#1year}%
       \iffieldundef{#1endyear}
         {}
         {\iffieldequalstr{#1endyear}{}
            {\mbox{\bibdaterangesep}}
            {\printtext{%
               \bibdaterangesepx{#1}%
               \enddatecircaprint
               \iffieldundef{#1season}
                 {\blx@ymddate{#1}{end}%
                  % Optionally print the time after the date
                  \blx@printtime{#1}{end}}
                 {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}%
             \enddateuncertainprint
             \dateeraprint{#1endyear}}}}}}}
             \makeatother
\begin{document}
\printbibliography
\nocite{*}
\end{document}

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Das Problem ist cite:labelyear+extradate. Siehe #134

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Super, Danke!

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Für english.lbx würde ich zusätzlich

\protected\gdef\lbx@us@mkdaterangetrunc@long#1#2{%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibdate#1}{}{#2month}{#2day}}
           {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
            \dateeraprint{#2}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
            \dateeraprint{#2}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
           {\mbox{\bibdaterangesep}}
           {\bibdaterangesepx{#2}%
            \enddatecircaprint
            \iffieldundef{#2season}
              {\iffieldsequal{#2year}{#2endyear}
                {\iffieldsequal{#2month}{#2endmonth}
                  {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
                  {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
                {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
              {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
            \enddateuncertainprint
            \dateeraprint{#2}}}}}}

\protected\gdef\lbx@us@mkdaterangetrunc@short#1#2{%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibdate#1}{}{#2month}{#2day}}
           {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}
            \dateeraprint{#2}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
            \dateeraprint{#2}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {}
         {\iffieldequalstr{#2endyear}{}
            {\mbox{\bibdaterangesep}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \enddateuncertainprint
             \dateeraprint{#2}}}}}}

\protected\gdef\lbx@us@mkdaterangetruncextra@long#1#2{%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibdate#1}{}{#2month}{#2day}}
           {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
            \dateeraprint{#2}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
             \mbox{\bibdaterangesep}}
            {\bibdaterangesepx{#2}%
             \enddatecircaprint
             \iffieldundef{#2season}
               {\iffieldsequal{#2year}{#2endyear}
                 {\iffieldsequal{#2month}{#2endmonth}
                    {\csuse{mkbibdate#1}{#2endyear}{}{#2endday}}
                    {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
                 {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}}
               {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
             \printfield{extradate}%
             \enddateuncertainprint
             \dateeraprint{#2}}}}}}

\protected\gdef\lbx@us@mkdaterangetruncextra@short#1#2{%
  \iffieldundef{#2year}
    {}
    {\datecircaprint
     \printtext[#2date]{%
       \iffieldundef{#2season}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibdate#1}{}{#2month}{#2day}}
           {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}}}
         {\iffieldsequal{#2year}{#2endyear}
           {\csuse{mkbibseasondate#1}{}{#2season}}
           {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
            \dateeraprint{#2}}%
       \dateuncertainprint
       \iffieldundef{#2endyear}
         {\printfield{extradate}}
         {\iffieldequalstr{#2endyear}{}
            {\printfield{extradate}%
          \mbox{\bibdaterangesep}}
         {\bibdaterangesepx{#2}%
          \enddatecircaprint
          \iffieldundef{#2season}
            {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
            {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
          \printfield{extradate}%
          \enddateuncertainprint
          \dateeraprint{#2}}}}}}

empfehlen.

Gab es einen Grund für \AtBeginDocument in Deinem Beispiel?

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Ich hatte das Gefühl, dass der Patch erst am Ende erfolgen sollte... macht aber wohl keinen Unterschied?!.

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Ich habe es jetzt nicht extensiv getestet, aber ich glaube nicht. Nur die Vorschläge für english.lbx müssten nach dem Laden von english.lbx ausgeführt werden.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Folgendes MWE funktioniert (Achtung Link zu archaeologie manuell ins Github-Repo setzen),

\documentclass[ngerman]{scrbook}
\usepackage{iftex}
\ifPDFTeX
  \usepackage[utf8]{inputenc}
  \usepackage[T1]{fontenc}
  \usepackage{lmodern}
\else
  \ifXeTeX
  \usepackage{fontspec}
		\def\compiler{\hologo{XeLaTeX}}
  \else 
	  \usepackage{fontspec}
  \usepackage{luatextra}
  \usepackage{luaotfload}
	\def\compiler{\hologo{LuaLaTeX}}
\fi
  \defaultfontfeatures{Ligatures=TeX}
\fi
\listfiles
\usepackage{libertine}
\usepackage{babel}
\usepackage{xcolor}
\definecolor{codeblue}{RGB}{0,65,137}
\definecolor{codegreen}{RGB}{147,193,26}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\usepackage[  
  backend=biber,
style=/Users/lukascbossert/Documents/github/biblatex-archaeologie/archaeologie,
  inreferences,
	lstabbrv,
	lstlocations,
	lstpublishers,
  autocite=inline,
]{biblatex}	
\addbibresource{archaeologie-examples.bib}
\usepackage[%
  skins,%
  listings,%
  breakable,%
]{tcolorbox}
\lstMakeShortInline{|}


\tcbset{examplebox/.style={%
  boxrule=0pt,
  bottomrule=2pt,
  toprule=2pt,
  colframe=codeblue,
  colback=codegreen!10,
  coltitle=codegreen!10,%  coltitle=codeblue,
  bicolor,
  sharp corners,
  fontupper=\small\ttfamily,
  colbacklower=codeblue!10,
  fonttitle=\sffamily\bfseries,
}}


\newtcblisting{example}{%
  before skip=\baselineskip,
  examplebox,
  breakable,
  %  sidebyside,
  listing and text,
}


\newtcolorbox{bibbox}[1]{
      breakable,
      top=5pt,
      bottom=5pt,
      colback=codeblue!10,
      colframe=codeblue,
      left=5pt,
      right=5pt,
        sharp corners,
      boxrule=0pt,
      bottomrule=2pt,
      toprule=2pt,
      enhanced jigsaw,
        lefttitle=0pt,
        coltitle=black,
          fontupper=\small,%\ttfamily,
        colbacktitle=codeblue!20,
        fonttitle=\bfseries\footnotesize,
  title={\Cref{#1}},
        borderline north={1pt}{14.4pt}{codeblue,dashed},
}


  \newcommand*{\printbib}[2][5em]{%
  \begingroup
  \begin{bibbox}{#2}
  \begin{refsection}
  \setlength{\labwidthsameline}{#1} 
  \nocite{#2}
  \printbibliography[heading=none]
  \end{refsection}
  \end{bibbox}
  \endgroup
  }
  
  \usepackage{cleveref}
\begin{document}
\printbib[11em]{DeVisscher1951-1952}
\end{document}

Aber wenn ich die Doku archaeologie.tex kompiliere, wird mir nachwievor 1951–1952 ausgegeben.

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Ich denke, dass wird daran liegen, dass die Doku auf Englisch ist, also english.lbx lädt. Du musst irgendwie dafür sorgen, die Definition aus english.lbx nach deren Laden zu überschreiben. Da muss ich ein bisschen drüber nachdenken.

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Probiers mal mit #136.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Funktioniert!! Lag es nur daran, dass ich es nicht in die .lbx geschrieben hatte? Danke!

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Denke schon. Es kommt bei diesen Befehlen auf die Ladereihenfolge an. Die .lbx-Dateien werden deutlich nach der .bbx geladen. Damit hat die .bbx nicht die Definitionen aus english.lbx überschrieben sondern umgekehrt. Glücklicherweise ist die Reihenfolge auch bei verschachtelten .lbxen so wie wir es brauchen.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Bei den anderen Sprachen muss nichts angepasst werden? Zumindest bekomme ich beim Testen keine Fehlermeldungen?!

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Nein, soweit ich das sehen kann, bekommt nur english.lbx ein Extrwürstchen mit eigenen Datumsmakros in der .lbx. Aller anderen Dateien nehmen den Standard, den wir ja schon geändert haben.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Perfekt. Wieder etwas zum Abhaken.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Wenn ich hier nochmals nachhaken darf, @moewew

\documentclass{scrbook}

\usepackage[  
  backend=biber,
style=/Users/lukascbossert/Documents/github/biblatex-archaeologie/archaeologie, %--2.3.5beta!
]{biblatex}	
\addbibresource{archaeologie-examples.bib}

\begin{document}
  \citeyear{DeVisscher1951-1952} %--- soll 1951/1952 sein.
\end{document}

Da wird momentan mit archaeologie v.2.3.5beta (wie aktuell auf GitHub) bei Jahr 1951 ausgegeben, aber es sollte 1951/1952 sein.

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Das liegt daran, dass \citeyear wirklich nur das Jahr ausgibt, es ist definiert als

\DeclareCiteCommand{\citeyear}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\printfield{year}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\citedate ist wohl angebrachter hier

\documentclass{scrbook}

\usepackage[  
  backend=biber,
style=archaeologie, %--2.3.5beta!
]{biblatex}	
\addbibresource{archaeologie-examples.bib}

\begin{document}
  \citeyear{DeVisscher1951-1952} %--- soll 1951/1952 sein.

  \citedate{DeVisscher1951-1952} %--- soll 1951/1952 sein.
\end{document}

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Es ist der Wurm drin:

\documentclass[german,ngerman,parskip=full]{scrartcl}
\usepackage{babel}
\usepackage[           
  backend=biber,
style=../biblatex-archaeologie/archaeologie,
]{biblatex}	
\addbibresource{archaeologie-examples.bib}


\begin{document}
\cite{DeVisscher1951-1952}\par %---> nicht korrekt, nur das erste Jahr ausgegeben.
\citedate{DeVisscher1951-1952}\par %--> korrekt
\citeyear{DeVisscher1951-1952}  %---> nicht korrekt, aber oben beschrieben

\printbibliography  
\end{document}
  

Liegt das doch noch an

\newbibmacro{cite}{%
  \ifboolexpr{
    bool{bbx:inreferences}
    and
    test{\ifentrytype{inreference}}
  }
    {\usebibmacro{cite:lexikon}}%
    {\ifbool{cbx:seenote}%
       {\usebibmacro{cite:seenote}}%
       {\printtext[bibhyperref]{%
          \iffieldundef{shorthand}%
            {\ifnameundef{labelname}%
               {\usebibmacro{cite:label}%
                \setunit{\labelyeardelim}}%
               {\printnames{labelname}%
                \setunit{\nameyeardelim}}%
             \usebibmacro{cite:year}}%
            {\usebibmacro{cite:shorthand}}}}}}
%-----------------------
\newbibmacro*{citeyear}{%
  \iffieldundef{shorthand}%
    {\iffieldundef{labelyear}%
       {\usebibmacro{cite:label}}%
       {\usebibmacro{cite:labeldate+extradate}}}%
    {\usebibmacro{cite}}}

in der .cbx @moewew ?

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

date sollte Priorität vor year in \DeclareLabeldate haben
Mit

\DeclareLabeldate{%
  \field{date}
  \field{year}
  \field{origdate}
  \field{urldate}
  \field{pubstate}
  \field{eventdate}
  \literal{nodate}
}

statt

\DeclareLabeldate{%
\field{year}
\field{date}
\field{origdate}
\field{urldate}
\field{pubstate}
\field{eventdate}
\literal{nodate}
}

geht es.

Das Problem ist 'year' als Überbleibsel vom alten Format.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

ah, jetzt erinnere ich mich, warum ich year wieder hochgeschoben hatte.
date wurde als Label teilweise mit vollem Datum ausgegeben, es sollte aber automatisch nur auf das Jahr reduziert werden.
Ich versuche ein MWE zu basteln.

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Dann wäre aber die korrekte Vorgehensweise labeldate=year in der Präambel und nicht das Hochschieben von \field{year}, das meiner Meinung nach gestrichen gehört (plk/biblatex#714).

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Mit labeldateparts=true,% labeldate=year,% in der ExecuteBibliographyOptions klappt es! danke!!!!
field{year} wird ersatzlos gestrichen.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Zu früh gefreut. field{year} wird dennoch benötigt.....

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Ja aktuell kann es nicht weg, es muss aber definitiv nach \field{date} kommen.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Ich habe einen neuen Eintrag (@Talk), da greift die Regel, dass date für das Label nur als Jahr ausgegeben wird, (noch) nicht:

\documentclass[german,ngerman,parskip=full]{scrartcl}
\usepackage{babel}
\usepackage[           
  backend=biber,
style=../biblatex-archaeologie/archaeologie, % GITHUB
]{biblatex}	
\addbibresource{archaeologie-examples.bib}


\begin{document}
\cite{DeVisscher1951-1952}\par
\citedate{DeVisscher1951-1952}\par
\citeyear{DeVisscher1951-1952}

\cite{Bergmann2015}

\printbibliography  
\end{document}
  
@Talk{Bergmann2015,
  author      = {Bergmann, Birgit},
  title       = {\enquote{An exciting find}},
  date        = {2015-04-27},
  subtitle    = {Neues zum Forums-Fries der Praedia Iuliae Felicis},
  titleaddon  = {(Pompeii II, 4)},
  url         = {https://www.antikezentrum.hu-berlin.de/de/veranstaltungskalender/bibergmann},
  urldate     = {2016-05-14},
  eventtitle  = {Kolloquium der Klassischen Archäologie},
  institution = {Freie Universität Berlin},
  venue       = Berlin,
}

from biblatex-archaeologie.

moewew avatar moewew commented on September 21, 2024

Du hast zwar labeldate=year,% in der .bbx aber das alldates=comp, in der .cbx überschreibt das wieder.

from biblatex-archaeologie.

LukasCBossert avatar LukasCBossert commented on September 21, 2024

Wow, was du alles siehst!

  alldates=comp,%
  labeldateparts=true,%
  labeldate=year,%

geändert. Damit passt es jetzt.

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.