對於一個項目,我遵循 MLA 第 8 版中的引用規則,但有一個問題我無法解決。我正在使用biblatex-mla-new
James Clawson 的(我認為這仍然是測試版?),除了我遇到的一些小問題之外,它真的很好。
每當我在書面文本中使用作者姓名時,我只需在文本引用中(在括號中)給出頁碼。如果一位作者有多個標題,我必須添加一個標題 - 這是透過使用\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
專門用於介紹和前言。
這biblatex
文件第 9-10 頁說
[
@suppbook
] a 中的補充資料@book
。此類型與條目類型密切相關@inbook
。雖然@inbook
主要用於具有自己標題的書籍的一部分(例如,同一作者的論文集中的一篇論文),但這種類型是為諸如前言、引言、前言、後記等元素提供的。樣式指南可能要求此類項目的格式與其他@inbook
項目不同。[
@suppcollection
] a 中的補充資料@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
。