Biber und \printbiblist{shorttitle}: ein Problem mit Filtern und verkürzten bibliographischen Beschreibungen

Biber und \printbiblist{shorttitle}: ein Problem mit Filtern und verkürzten bibliographischen Beschreibungen

Meine Frage bezieht sich auf diese Diskussion: Wie bekomme ich Abkürzungen aus dem Literaturverzeichnis in das Abkürzungsverzeichnis?

Bitte beachten Sie diesen Code:

\documentclass{article}
\usepackage{fontspec}
\usepackage[style=authoryear]{biblatex}
\begin{filecontents}{\jobname.bib}
@ARTICLE{test1,
    AUTHOR = {John Smith},
    TITLE = {A Tremendously Interesting Opinion},
    SHORTTITLE = {TIP},
    JOURNALTITLE = {Journal of Tremendously Interesting Opinions},
    SHORTJOURNAL = {JTIO},
    VOLUME = {1},
    NUMBER = {1},
    YEAR = {1950},
    KEYWORDS = {important},
}
@ARTICLE{test2,
    AUTHOR = {John Tumble},
    TITLE = {A Tremendously Interesting Idea},
    SHORTTITLE = {ABITLONGERSHORTTITLE},
    JOURNALTITLE = {Journal of Tremendously Interesting Ideas},
    VOLUME = {1},
    NUMBER = {1},
    YEAR = {1960},
}
@BOOK{book1,
    AUTHOR = {Peter Johnson},
    TITLE = {A Tremendously Interesting Title of Book One},
    SHORTTITLE = {ATIT},
    TRANSLATOR = {John Smith},
    ORIGLANGUAGE = {german},
    VOLUME = {1},
    LOCATION = {London},
    PUBLISHER = {Publisher},
    YEAR = {1950},
    KEYWORDS = {important},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}

%\printbiblist[title={Abbreviations}]{shorttitle}
\printbiblist[title={Abbreviations of Important Publications},keyword=important]{shorttitle}
\printbibliography
\end{document}

was folgendes ergibt:

Bildbeschreibung hier eingeben

Meine Fragen:

  1. Ist es möglich, biber's anzuweisen, \printbiblist im Abkürzungsverzeichnis die vollständigen bibliographischen Angaben (entspricht denen unter „Referenzen“) abzudrucken und nicht die Kurzfassungen?

  2. Wie Sie sehen, gibt es in der Tabelle zwischen Abkürzungen und bibliographischen Beschreibungen einen großen weißen Bereich. Dies liegt am Artikel test2, der einen längeren hat SHORTTITLE. Offensichtlich wird der Filter angewendetnachVerarbeitung der Bibliliste. Ist es möglich, dieses Verhalten zu vermeiden und die Tabelle entsprechend der tatsächlich angezeigten Abkürzungen zu formatieren?

Danke schön!

Antwort1

Nr. 1kann recht schnell behoben werden mit

\DeclareBibliographyDriver{shorttitle}{\usedriver{}{\thefiel‌​d{entrytype}}\finent‌​ry}

Nr. 2kann mit der Option aufgelöst werden locallabelwidth(neu in biblatex3.11). Wenn die Option auf gesetzt ist, truewerden zur Bestimmung der Beschriftungsbreite nur die Einträge der aktuellen Bibliographie (Liste) verwendet.

\printbiblist[title={Abbreviations of Important Publications}, keyword=important, locallabelwidth]{shorttitle}

Dann wird die gewünschte Ausgabe ausgegeben.

Antwort2

OK. Mir ist klar, dass ich das nicht gemacht habe biblatex-sbl(ich wollte eine kombinierte Liste von Abkürzungen aus mehreren Feldern). Aber ich glaube, ich habe trotzdem eine Lösung für Ihr Problem gefunden, indem ich ein paar Makros aus biblatexden internen Komponenten geändert habe. Ich glaube nicht, dass es irgendwelche Nebenwirkungen geben wird, aber es ist ziemlich spezifisch auf Ihre Frage zugeschnitten, anstatt allgemein zu sein. Versuchen Sie Folgendes:

\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{test1,
    AUTHOR = {John Smith},
    TITLE = {A Tremendously Interesting Opinion},
    SHORTTITLE = {TIP},
    JOURNALTITLE = {Journal of Tremendously Interesting Opinions},
    SHORTJOURNAL = {JTIO},
    VOLUME = {1},
    NUMBER = {1},
    YEAR = {1950},
    KEYWORDS = {important},
}
@ARTICLE{test2,
    AUTHOR = {John Tumble},
    TITLE = {A Tremendously Interesting Idea},
    SHORTTITLE = {ABITLONGERSHORTTITLE},
    JOURNALTITLE = {Journal of Tremendously Interesting Ideas},
    VOLUME = {1},
    NUMBER = {1},
    YEAR = {1960},
}
@BOOK{book1,
    AUTHOR = {Peter Johnson},
    TITLE = {A Tremendously Interesting Title of Book One},
    SHORTTITLE = {ATIT},
    TRANSLATOR = {John Smith},
    ORIGLANGUAGE = {german},
    VOLUME = {1},
    LOCATION = {London},
    PUBLISHER = {Publisher},
    YEAR = {1950},
    KEYWORDS = {important},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\pagestyle{empty}

% Print complete bibliographic information in list of abbreviations
\DeclareBibliographyDriver{shorttitle}{\usedriver{}{\thefield{entrytype}}\finentry}

\makeatletter
% Make new importantlabelwidth lengths
\def\do#1{\expandafter\newlength\expandafter{\csname important#1width\endcsname}}
\abx@dolabelfields

% Redefine \blx@bbl@labelfields to also calculate important widths
\def\blx@bbl@labelfields{%
  \def\do##1{%
    \ifcsundef{abx@field@##1}
      {}
      {% calculate label widths
       \blx@setlabwidth{\csname ##1width\endcsname}{%
         \csuse{abx@ffd@*@##1width}{\csname abx@field@##1\endcsname}}%
       % calculate important label widths
       \ifkeyword{important}
         {\blx@setlabwidth{\csname important##1width\endcsname}{%
           \csuse{abx@ffd@*@important##1width}{\csname abx@field@##1\endcsname}}}
         {}}}%
  \abx@dolabelfields}
\makeatother

% New bibliography environment to print the important shorttitles
% This is modified from the standard shorthand bibenvironment
\defbibenvironment{importantshorttitle}
  {\list
     {\printfield[shorthandwidth]{shorttitle}}
     {\setlength{\labelwidth}{\importantshorttitlewidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}%
      \renewcommand*{\makelabel}[1]{##1\hss}}}
  {\endlist}
  {\item}

\begin{document}
\nocite{*}

\printbiblist[title={Abbreviations}]{shorttitle}
\printbiblist[title={Abbreviations of Important
Publications},keyword=important,env=importantshorttitle]{shorttitle}
\printbibliography
\end{document}

MWE

verwandte Informationen