Я использую biblatex и мне очень нравится его гибкость, хотя должен сказать, что там слишком много опций, чтобы один человек мог разобраться во всем за всю жизнь :-/ Пока что я делаю две вещи с цитируемыми ссылками. Во-первых, печатаю «сноску» с сокращенной информацией на той же странице, что и цитата (сноска на самом деле выносится на поля, потому что я использую tufte). Во-вторых, в конце печатаю полную библиографию, как обычно.
Я делаю это, используя, среди прочего, следующие команды: Чтобы сократить цитаты, но не библиографию, я использую
\usepackage[..., maxcitenames=1, maxbibnames=99]{biblatex}
\AtEveryCitekey{...\clearfield{title}}
Что работает довольно хорошо. Я бы хотел изменить одну вещь жестко. Поскольку мои «сноски» идут на поля, я бы хотел добавить новую строку после имени автора, для каждой цитаты, но не для библиографии. Поскольку все они в любом случае займут две строки, я бы предпочел разбить их красиво,
Some Author et al.
Journal X (2000), yy-zz
Вместо какой-то случайной мешанины
Some Author et al. Journal
X (2000), yy-zz
Итак, по сути: как изменить разделитель после слова «Автор» на новую строку только для полной цитаты?
MWE будет выглядеть следующим образом:
\documentclass{article}
\usepackage{hyphenat}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[maxcitenames=1, maxbibnames=99, isbn=false, doi=false, url=false, eprint=false, bibstyle=numeric, citestyle=numeric-comp, backend=biber]{biblatex}
\addbibresource{~/library.bib}
\AtEveryCitekey{\clearfield{title}\clearfield{number}\clearfield{month}}% Removes things for footnotes
\AtEveryBibitem{\clearfield{number}\clearfield{month}}%Remove things for Bibliography only
\renewcommand{\labelnamepunct}{\newline}
\begin{document}
This is of interest.\footfullcite{FamousPerson2000}
\printbibliography
\end{document}
Хотя он \labelnamepunct{}
что-то делает для библиографии, я не могу заставить его работать для сноски (внутри \AtEveryCiteKey{}
также не работает)
решение1
Итак, ваш последний комментарий дал мне идею обходного пути в вашей ситуации (где стандартный подход — см. ниже — не может быть использован).
Мы переопределяем формат title
/ citetitle
так, чтобы \newline
он сохранялся в буфере пунктуации.
\AtEveryCitekey{%
\DeclareFieldFormat*{title}{\printunit{\newline}}%
\DeclareFieldFormat*{citetitle}{\printunit{\newline}}}
Чтобы это сработало у васне долженпроблема \clearfield{title}
, поскольку biblatex
необходимо думать, что есть заголовок для печати (и на самом деле необходимо думать, что он его печатает) — мы просто гарантируем с помощью этого форматирования, что заголовок заменен на перенос строки.
МВЭ
\documentclass{scrartcl}
\usepackage[style=authortitle,backend=bibtex]{biblatex}
\addbibresource{biblatex-examples.bib}
\AtEveryCitekey{%
\DeclareFieldFormat*{title}{\printunit{\newline}}%
\DeclareFieldFormat*{citetitle}{\printunit{\newline}}}
\begin{document}
Lorem\footfullcite{baez/article} ipsum\footfullcite{kastenholz}.
\end{document}
Стандартный подход, который работает, если title
поле присутствует, будет просто
\AtEveryCitekey{\renewcommand{\labelnamepunct}{\newline}\clearfield{title}}