Изменения в biblatex-mla8 \autocite*-command

Изменения в biblatex-mla8 \autocite*-command

Для проекта я следую правилам MLA в их 8-м издании для цитирования, и есть проблема, которую я не могу решить. Я использую biblatex-mla-new(которая, я думаю, все еще бета?) Джеймса Клоусона, которая действительно хороша, за исключением некоторых мелких проблем, которые у меня есть.

Всякий раз, когда я использую имя автора в письменном тексте, мне нужно только указать номера страниц в текстовых ссылках (в скобках). В случае, если у одного автора более одного заголовка, мне нужно добавить заголовок — это делается с помощью \autocite*. Если я не упоминаю имя автора в тексте, оно также должно быть заключено в скобки, используя \autocite(без звездочки). Все это работает нормально, пока у записи есть заголовок — но не тогда, когда заголовка нет, как, например, во введениях. Чтобы следовать правилам MLA, я использую поле titleaddon = {Introduction}, что приводит к правильной записи в самой библиографии, но ни , \autociteни не \autocite*использую его, поэтому в записи в скобках всегда отсутствует эта важная часть информации. Мне удалось достичь желаемого результата для \autocite(ср. mwe), но я понятия не имею, где искать \autocite*...

\documentclass{article}

\usepackage[british]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{mathptmx}
\usepackage{filecontents}

\usepackage[style=mla-new,nofullfootnote]{biblatex}

%--changes to lines 173-187 of mla-new.cbx
\renewbibmacro*{cite:mla:title:internal}{%
    \ifbool{cbx@named}{\setunit{\addcomma\addspace}}{}%
    \iffieldundef{title}%
    {\iffieldequalstr{entrytype}{review}%
        {\printtext[bibhyperref]%
            {\printtext{\bibcpstring{reviewof}%
                    \setunit{\addspace}%
                    \printfield{booktitle}}}}%
        {\printfield{titleaddon}}}% -->this line replaces lines 181-185 of mla8.cbx
    {\printtext[bibhyperref]{%
            \printfield[citetitle:\strfield{entrytype}]{labeltitle}}}}%

%!!!----!!!
%--the following changes to my mind improve a couple of things in biblatex-mla-new which I noticed while working with my bibliographic entries

%--title and/or subtitle of collections do not stand in if incollections don't have a title/subtitle of their own; instead, titleaddon is used (in case of, e.g., untitled introductions)

\renewbibmacro*{title}{%
    \ifboolexpr{
        test {\iffieldundef{title}}
        and
        test {\iffieldundef{subtitle}}
    }
    {}
    {\printtext[title]{%
            \printfield[titlecase]{title}%
            \setunit{\subtitlepunct}%
            \printfield[titlecase]{subtitle}}%
        \newunit}%
    \printfield{titleaddon}\addperiod\space}

%--to put the period at the end of the title within the inverted commas

\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{\mkbibquote{#1\addperiod}}

%--changing the way dates are written (ordinal numbers become cardinal numbers in, e.g., dates of last access for websites)

\DefineBibliographyExtras{british}{%
    \protected\def\mkbibdatelong#1#2#3{%
        \iffieldundef{#3}
        {}
        {\stripzeros{\thefield{#3}}%
            \iffieldundef{#2}{}{\nobreakspace}}%
        \iffieldundef{#2}
        {}
        {\mkbibmonth{\thefield{#2}}%
            \iffieldundef{#1}{}{\space}}%
        \stripzeros{\thefield{#1}}}%
}

%--IMPORTANT!!! I also needed to make a change directly to mla-new.bbx, replace \newunit with \newblockpunct in line 398 (within \DeclareBibliographyDriver{book}; cf. entry for Jason Donald, which ends with a comma instead of with a period in the bibliography without the change - so far, I haven't noticed any unwanted behaviour and copying all the relevant lines into my preamble was rather too much). 

%!!!----!!!

\addbibresource{katrinbiblio.bib}

\begin{filecontents*}{katrinbiblio.bib}
@collection{Anker.2017,
    year = {2017},
    title = {New Directions in Law and Literature},
    publisher = {{Oxford UP}},
    editor = {Anker, Elizabeth S. and Meyler, Bernadette},
    location = {New York}
}
@incollection{Anker.2017b,
    author = {Anker, Elizabeth S. and Meyler, Bernadette},
    pages = {1--30},
    publisher = {{Oxford UP}},
    editor = {Anker, Elizabeth S. and Meyler, Bernadette},
    booktitle = {New Directions in Law and Literature},
    titleaddon = {Introduction},
    year = {2017},
    location = {New York}
}
@book{Donald.2018,
    author = {Donald, Jason},
    year = {2018},
    title = {Dalila},
    publisher = {Vintage},
    isbn = {1784702986},
    location = {London},
    abstract = {}
}
@article{Posner.1986,
    author = {Posner, Richard A.},
    year = {1986},
    title = {Law and Literature},
    pages = {1351--1392},
    volume = {72},
    journaltitle = {Virginia Law Review},
    subtitle = {A Relation Reargued},
    number = {8},
    shorttitle = {Relation Reargued}
}
@book{Posner.2009,
    author = {Posner, Richard A.},
    year = {2009},
    title = {Law and Literature},
    edition = {3},
    publisher = {{Harvard UP}},
    location = {Cambridge}
}
@incollection{Stern.2017,
    author = {Stern, Simon},
    title = {Legal and Literary Fictions},
    pages = {313--326},
    publisher = {{Oxford UP}},
    editor = {Anker, Elizabeth S. and Meyler, Bernadette},
    booktitle = {New Directions in Law and Literature},
    year = {2017},
    location = {New York}
}

\end{filecontents*}

\begin{document}

As Anker and Meyler state, the situation is diverse \autocite*[2]{Anker.2017b}. They go even further and present more diversity \autocite[3]{Anker.2017b}. Posner, on the other hand, is a real pessimist \autocite*[2]{Posner.2009}. He has been that all through his career \autocite[3]{Posner.1986}. Still, the others respect him \autocite[1]{Anker.2017b}.

\nocite{*}
\printbibliography

\end{document}

То, что находится между ними, %!!!----!!!не имеет отношения к моей проблеме, но это изменения, которые, на мой взгляд, улучшают mla-new-style. Я привел их на случай, если кто-то наткнется на эту ветку в поисках решения.

Есть ли кто-нибудь, кто может помочь мне внести изменения в \autocite*, так как я, похоже, не могу найти, где задается эта команда...

решение1

Я думаю, что вы можете добиться лучших результатов, используя @suppcollectionвместо @incollectionдля знакомств

@suppcollection{Anker.2017b,
  author    = {Anker, Elizabeth S. and Meyler, Bernadette},
  pages     = {1--30},
  publisher = {Oxford UP},
  editor    = {Anker, Elizabeth S. and Meyler, Bernadette},
  booktitle = {New Directions in Law and Literature},
  title     = {Introduction},
  year      = {2017},
  location  = {New York},
}

Тогда вы можете использовать titleвместо titleaddon.

@suppcollectionспециально для введений и предисловий.

Thebiblatexдокументацияговорится на стр. 9-10

[ @suppbook] Дополнительный материал в @book. Этот тип тесно связан с @inbookтипом записи. Хотя @inbookон в первую очередь предназначен для части книги с собственным названием (например, отдельное эссе в сборнике эссе одного автора), этот тип предусмотрен для таких элементов, как предисловия, введения, предисловия, послесловия и т. д., которые часто имеют только общее название. Руководства по стилю могут требовать, чтобы такие элементы были отформатированы иначе, чем другие @inbookэлементы.

[ @suppcollection] Дополнительный материал в @collection. Этот тип похож на тип записи @suppbook, но связан с ним @collection.


Если это вам не помогло, попробуйте

\renewbibmacro*{cite:mla:title:alone}{%
  \printtext[bibhyperref]{% suggested by StackExchange user Audrey
  \iffieldundef{labeltitle}
    {\printfield{titleaddon}}
    {\printfield[citetitle:\strfield{entrytype}]{labeltitle}}}%
  \ifthenelse{\iffieldequalstr{entrytype}{suppbook}\and\iffieldundef{title}}%
    {\printtext[bibhyperref]{%
      \printfield[mla:capital]{entrysubtype}}}%
    {}}

Это выводит на печать, titleaddonесли no labeltitleотсутствует.

Связанный контент