biblatex-mla8 \autocite*-command の変更

biblatex-mla8 \autocite*-command の変更

あるプロジェクトで、引用については MLA の第 8 版のルールに従っていますが、解決できない問題があります。私はbiblatex-mla-newJames Clawson の (まだベータ版だと思いますが) を使用していますが、いくつかの小さな問題を除いて、非常に優れています。

文章の中で著者名を使用する場合は、本文中の引用でページ番号を記入するだけです (括弧内)。1 人の著者に複数のタイトルがある場合は、タイトルを追加する必要があります。これは を使用して行います\autocite*。本文で著者名を記載しない場合は、\autocite(アスタリスクなし) を使用して、括弧内にも入れる必要があります。エントリにタイトルがある限り、すべて正常に機能しますが、タイトルがない場合は機能しません。これは、たとえば序文の場合です。MLA の規則に従うために、フィールド を使用します。これにより、titleaddon = {Introduction}参考文献自体に適切なエントリが作成されますが、 も も\autocite使用\autocite*していないため、括弧内のエントリには常にこの重要な情報が欠落しています。(cf. mwe) については目的の結果を達成できました\autociteが、 についてはどこを調べればよいのかわかりません\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 の新スタイルを改善する変更だと私は考えています。誰かが解決策を探してこのスレッドにたどり着いた場合に備えて、私はこれらを提供しました。

\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特に序文や前書きに適しています。

biblatexドキュメンテーション9-10ページで述べている

[ @suppbook] の補足資料。このタイプはエントリ タイプ@bookと密接に関連しています。は主に独自のタイトルを持つ書籍の一部 (同じ著者のエッセイ集内の 1 つのエッセイなど) を対象としていますが、このタイプは序文、紹介、前書き、あとがきなど、一般的なタイトルのみを持つことが多い要素のために用意されています。スタイル ガイドでは、このような項目を他の項目とは異なる形式でフォーマットすることが求められる場合があります。@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存在しない場合は を出力しますlabeltitle

関連情報