Возникли проблемы с использованием biblatex
пакета!
authortitle
В библиографии при печати нескольких работ одного автора имя автора автоматически заменяется на тире :
Однако в apa
стиле (применительно к APA 6.25) эти тире не отображаются, а имя автора повторяется перед каждой работой:
Я хотел бы сохранить стиль APA для моих цитат и библиографии, но вместо повторяющегося имени автора использовать тире. Я пытался искать ответы в файле apa.bbx
, но я новичок в LaTeX и не знаю, с чего начать.
Я забыл упомянуть, что во французском языке я использую стиль APA, если это вообще стоит упоминать.
Итак, вот что у меня есть на данный момент:
\documentclass{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{polyglossia}
\usepackage[style=apa, dashed=true, doi=false, isbn=false, url=false, backend=biber, sorting=nyt]{biblatex}
\DeclareLanguageMapping{french}{french-apa}
\setmainlanguage{french}
\bibliography{/example.bib}
\begin{document}
\part{Sources}
\printbibliography
\nocite{*}
\end{document}
И для моего файла example.bib:
@Misc{breen_yasukuni_2005,
author = {Breen, John},
title = {Yasukuni {Shrine}: {Ritual} and {Memory} {\textbar} {The} {Asia}-{Pacific} {Journal}: {Japan} {Focus}},
date = {2005-06},
journaltitle = {The Asia-Pacific Journal: Japan Focus},
url = {http://apjjf.org/-John-Breen/2060/article.html},
urldate = {2016-10-26},
}
@Book{breen_yasukuni_2007,
title = {Yasukuni, the war dead and the struggle for {Japan}'s past},
publisher = {C. HURST \& CO. PUBLISHERS},
author = {Breen, John},
date = {2007},
}
@Article{breen_resurrecting_2010,
author = {Breen, John},
title = {Resurrecting the {Sacred} {Land} of {Japan}},
volume = {37},
number = {2},
pages = {295--315},
date = {2010},
journaltitle = {Japanese Journal of Religious Studies},
}
@Book{breen_shinto_2000,
title = {Shinto in history: ways of the kami},
publisher = {University of Hawaiʻi Press},
author = {Breen, John and Teeuwen, Mark},
note = {OCLC: 43487317},
date = {2000},
location = {Honolulu},
}
@Book{breen_new_2010,
title = {A new history of {Shinto}},
publisher = {Wiley-Blackwell},
author = {Breen, John and Teeuwen, Mark},
date = {2010},
}
@Book{casanova_public_2011,
title = {Public religions in the modern world},
publisher = {University of Chicago Press},
author = {Casanova, José},
date = {2011},
}
решение1
Использование тире в вашей библиографии (вероятно) сделает ваш документ не соответствующим стилю APA, так что будьте осторожны. Обратите внимание, что ваши biblatex-apa
пакеты, похоже, довольно устарели.
К счастью, часть того, что нам нужно, уже реализовано в apa.bbx
, но нам нужно добавить еще кое-что.
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=apa, backend=biber, dashed=true]{biblatex}
\DeclareLanguageMapping{french}{french-apa}
\addbibresource{biblatex-examples.bib}
\makeatletter
\renewbibmacro*{begrelated}{%
\booltrue{bbx@inset}}
\renewbibmacro*{endrelated}{%
\usebibmacro*{bbx:savehash}}
\newbibmacro*{bbx:dashcheck}[2]{%
\ifboolexpr{
test {\iffieldequals{fullhash}{\bbx@lasthash}}
and
not test \iffirstonpage
and
(
not bool {bbx@inset}
or
test {\iffieldequalstr{entrysetcount}{1}}
)
}
{#1}
{#2}}
\renewbibmacro*{author}{%
\ifnameundef{author}
{\usebibmacro{labeltitle}%
\global\undef\bbx@lasthash}
{\usebibmacro{bbx:dashcheck}
{\bibnamedash}
{\printnames[apaauthor][-\value{listtotal}]{author}%
\usebibmacro{bbx:savehash}}%
\setunit*{\addspace}%
\printfield{nameaddon}%
\ifnameundef{with}
{}
{\setunit{}\addspace\mkbibparens{\printtext{\bibstring{with}\addspace}%
\printnames[apaauthor][-\value{listtotal}]{with}}
\setunit*{\addspace}}}%
\newunit\newblock%
\usebibmacro{labelyear+extrayear}}
\renewbibmacro*{editorinauthpos}{%
\global\booltrue{bbx:editorinauthpos}%
\usebibmacro{bbx:dashcheck}
{\bibnamedash}
{\printnames[apaauthor][-\value{listtotal}]{editor}}%
\setunit{\addspace}%
\ifnameundef{editor}
{\global\undef\bbx@lasthash}
{\usebibmacro{bbx:savehash}%
\printtext[parens]{\usebibmacro{apaeditorstrg}{editor}}%
% need to clear editor so we don't get an "In" clause later
% But we also need to set a flag to say we did this so we
% don't lose sight of the fact we once had an editor for
% various year placement tests
\clearname{editor}%
\setunit{\adddot\addspace}%
\usebibmacro{labelyear+extrayear}%
\setunit{\adddot\addspace}}}
\makeatother
\begin{document}
\cite{sigfridsson,knuth:ct:d,knuth:ct:c,knuth:ct:a}
\printbibliography
\end{document}