
Я пытаюсь начать работу с biblatex-chicago и застрял на том, как ссылаться на цитаты как на существительные в стиле сносок (то есть, я хочу сказать «как говорит \citeasnoun{lamport}...»).
[Ядуматькраткая версия этого вопроса: «почему мой не \smartcite
расширяется до\parencite
сноски?»]
Если я начну так, как предлагает руководство biblatex-chicago
\usepackage[authordate,strict,backend=biber,babel=other]{biblatex-chicago}
тогда все в порядке: я могу использовать \textcite{foo}
как существительное, и \autocite{foo}
в скобках. Если же я начну с предложенной в руководстве альтернативы
\usepackage[notes,strict,backend=biber,babel=other]{biblatex-chicago}
то у меня его нет \textcite
(это немного удивительно, поскольку в руководстве biblatex сказано, что « \textcite
команды [ ] предоставляются всеми неподробными стилями, которые поставляются с этим пакетом», и я бы предположил, что стиль «notes» является «неподробным» стилем).
Это нормально, так как я, по-видимому, могу подделать это с помощью \def\textcite#1{\citeauthor{#1}\autocite{#1}}
. Это почти работает: в тексте я получаю «как говорит Лампорт^1 ...», и разумную сноску с полной ссылкой.
Однако если я попробую сделать это в сноске, то получу «как ЛэмпортЛесли Лэмпорт ... говорит ...» — то есть, в сноске это \autocite
будет выглядеть как обычно \cite
, тогда как я ожидал чего-то вроде «как Лэмпорт (Лесли Лэмпорт ...) говорит ...».
Что я пробовал:
- Я могу указать
autocite=footnote
иautocite=inline
в\usepackage
команде, но это изменит ее в обоих контекстах — в основном тексте и в сносках. - Я мог бы потенциально поискать в
biblatex.sty
зацепках и нацарапать что-то, что каким-то образом будет чувствительно к контексту, так что это\autocite
будет выглядеть как\parencite
сноска, но (a) этот стиль... местами довольно хитрый, и (b) я делаю это от имени кого-то другого, так что частичная цель — сказать: «Смотри, LaTeX может сделать это проще, чем вручную» — аргумент, который «используй исходный код, Люк» скорее разрушит. И в любом случае (c) я думал, что это должно происходить автоматически. \DeclareAutoCiteCommand
похоже, это могло бы помочь, но в нем нет альтернативы сноске/основному тексту, которую я ожидал.- Замена
\autocite
на\smartcite
эффекты не приводит к изменениям, хотя\smartcite
это «[похоже] на \parencite в сноске и на \footcite в тексте», согласно руководству biblatex (\parencite
само по себе создает ссылку в скобках).
Я достаточно много раз перечитывал руководство, и теперь мне кажется, что я упускаю что-то очевидное или задаю неправильный вопрос.
- Возможно, ответ заключается в том, чтобы
\parencite
явно использовать в сносках. Возможно, но у меня сложилось впечатление, что именно об этом и\autocite
следовало позаботиться. - Возможно, ответ в том, что я не должен этого делать. Я не гуманитарий, так что, возможно, все знают (кроме меня), что на такие ссылки просто не ссылаются в сносках.
Пример:
\documentclass{scrartcl}
\iftrue
\usepackage[notes,strict,backend=biber,babel=other]{biblatex-chicago}
\def\textcite#1{\citeauthor{#1}\smartcite{#1}}
\else
\usepackage[authordate,strict,backend=biber,babel=other]{biblatex-chicago}
\fi
\addbibresource{bib.bib}
\title{Document}
\author{Me}
\begin{document}
\maketitle
The primary aim of this essay is to refer to \textcite{wittgenstein53}
in the text.\footnote{And refer to \textcite{wittgenstein53} in a footnote}
\printbibliography
\end{document}
В первом случае я получаю «Wittgenstein^1», а в сноске — «Wittgensteinibid.».
Я использую biblatex версии 1.7, biber версии 0.9.9 (и последние версии pdftex и xetex).
решение1
Связанное со стилем содержимое руководства biblatex
не обязательно относится к добавленным стилям. Одним из примеров является команда biblatex-chicago
's \smartcite
. Она не генерирует цитаты в скобках.
Стиль notes
многословный; вы получаете полные метки цитат при первой цитате. Версия 1.7 представила biblatex
и \textcite
поддерживает все ее многословные стили. Чтобы включить похожие команды в biblatex-chicago
вы можете адаптировать определения из verbose.cbx
.
\makeatletter
\DeclareCiteCommand{\textcite}[\cbx@textcite\cbx@textcite@i]
{\boolfalse{citetracker}%
\gdef\cbx@savedkeys{}}
{\printnames{labelname}%
\xappto\cbx@savedkeys{\thefield{entrykey},}}
{\multinamedelim}
{\protected@xappto\cbx@savedcites{%
[\thefield{prenote}][\thefield{postnote}]{\cbx@savedkeys}}}
\DeclareMultiCiteCommand{\textcites}[\cbx@textcite\cbx@textcites@i]
{\textcite}{\multinamedelim}
\newrobustcmd{\cbx@textcite}[2]{\def\cbx@savedcites{#1}#2\cbx@savedcites}
\newrobustcmd{\cbx@textcite@i}{\iffootnote{\addspace\parencite}{\footcite}}
\newrobustcmd{\cbx@textcites@i}{\iffootnote{\addspace\parencites}{\footcites}}
\makeatother
Здесь аргументы команды цитирования обрабатываются дважды. Первый проход генерирует вывод типа \citeauthor
. Второй проход генерирует сноску или цитату в скобках. Я адаптировал код для обработки цитат внутри сносок и работы с \parencite
, \footcite
и друзьями из notes
.
Полученные команды не перемещают знаки препинания за вас. Чтобы включить эту функцию в\textcite
, вы можете использоватьнизкоуровневое определение.