
Для проекта я следую правилам 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
отсутствует.