csquotes:带引号的块引用后的脚注

csquotes:带引号的块引用后的脚注

我经常会遇到这样的情况:我想在块引用中添加脚注,以便对所引用的段落进行评论。

\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage{lmodern,csquotes,lipsum}
\begin{document}
\lipsum*[1]
\blockquote{\lipsum*[1]...}\footnote{bla...}
\lipsum*[1]
\blockquote{\lipsum*[1]...\footnote{bla...}}
\lipsum*[1]
\end{document}

正如预期的那样,第一种安排行不通。脚注标记将最终出现在引文后面的段落开头(如在关闭\footnote后调用的\blockquote)。可以通过\footnote在 内包含 来解决这个问题\blockquote

但是,一旦我们对块引用的外观进行某些更改,此修复将停止工作。考虑一下我的修改,我发现它比 LaTeX 默认设置更令人满意。(我已禁用与问题无关的修改部分。)

\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage{lmodern,csquotes,lipsum}

\renewcommand{\mkblockquote}[4]{\enquote{#1}#2\ifterm{\relax}{#3}#4}

%
%\renewenvironment{quote}
%{\list{}{\itemindent=0em
%         \listparindent=\parindent
%         \leftmargin=\parindent
%         \rightmargin=0em
%         \partopsep=0em
%         \topsep=0em
%         }%
% \item\relax}
%{\endlist}

\begin{document}
\lipsum*[1]
\blockquote{\lipsum*[1]...}\footnote{bla...}
\lipsum*[1]
\end{document}

这种风格(以及其他特点)甚至为块引用保留了引号。这就是这\mkblockquote句话的意思。问题是:我们如何才能让脚注标记出现在结束标记,但仍在同一行?我尝试过类似的东西\nobreak,但是,作为一个门外汉,在涉及低级事物时,无济于事。我也尝试过修改\mkblockquote:人们可能会将脚注作为可选参数\blockquote。但我尝试的所有方法仍然导致脚注标记被推入下一段。

在此处输入图片描述

更新

卡尔科勒建议为此目的使用重新定义的\mkcitation。这确实会在正确的位置生成脚注标记,并提供了一个非常优雅的界面:\blockquote[footnote text]{quote text}。但是,只要脚注文本中的某处有引用命令,它就会中断 - 这种情况经常发生......或者,在我的情况下,几乎每次都会发生。对于脚注中没有额外注释的简单块引用,我使用\blockc(!)quote[123]{xyz}{quote text},它会生成块引用、脚注标记和脚注中的引用。我想要的不仅是在脚注中有引用,还有额外的文本,这反过来可能包含更多的引用(参见图片,我也对其进行了更新)。

\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage[style=authoryear]{biblatex}
\usepackage{lmodern,csquotes,lipsum}

\renewcommand{\mkblockquote}[4]{\enquote{#1}#2\ifterm{\relax}{#3}#4}
\renewcommand{\mkcitation}[1]{\footnote{#1}}

\begin{document}
\lipsum*[1]
\blockquote[Says \cite[123]{xyz}. See also \cite[123]{xyz}.]{\lipsum*[1]...}
\lipsum*[1]
\end{document}

注意:使用postnoteof\blockcquote不是
\blockcquote[123... footnote text, more citations]{xyz}{quote text}
一个选项。它也会中断,并抱怨嵌套引用命令。

答案1

请注意,该csquotes包允许定义一个可选的引用参数,\blockquote并且可以将其定义为脚注。

因此,你只需添加

\renewcommand{\mkcitation}[1]{\footnote{#1}}

在序言中

并使用

\blockquote[bla...]{\lipsum*[1]...}

代替

\blockquote{\lipsum*[1]...}\footnote{bla...}

完成 MWE

\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage{lmodern,csquotes,lipsum}

\renewcommand{\mkblockquote}[4]{\enquote{#1}#2\ifterm{\relax}{#3}#4}
\renewcommand{\mkcitation}[1]{\footnote{#1}}

\begin{document}
\lipsum*[1]
\blockquote[bla...]{\lipsum*[1]...}
\lipsum*[1]
\end{document} 

输出

在此处输入图片描述


更新

您在更新中遇到的问题可以通过以下方式解决:

代替

\renewcommand{\mkcitation}[1]{\footnote{#1}}

只需

\renewcommand{\mkcitation}[1]{#1}

然后使用

\blockquote[\footnotemark]{\lipsum*[1]...}
\footnotetext{Says \cite[59]{companion}. See also \cite[59]{companion}.}

代替

\blockquote[Says \cite[123]{xyz}. See also \cite[123]{xyz}.]{\lipsum*[1]...}

这样,我们就将 和 分开了\footnotemark\footnotetext问题就不会出现。

完成工作 MWE

\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage[style=authoryear]{biblatex}
\usepackage{lmodern,csquotes,lipsum}

\renewcommand{\mkblockquote}[4]{\enquote{#1}#2\ifterm{\relax}{#3}#4}
\renewcommand{\mkcitation}[1]{#1}

\addbibresource{biblatex-examples.bib}

\begin{document}
\lipsum*[1]
\blockquote[\footnotemark]{\lipsum*[1]...}
\footnotetext{Says \cite[59]{companion}. See also \cite[59]{companion}.}
\lipsum*[1]
\end{document}

输出

在此处输入图片描述

答案2

它会中断嵌套引用,因为它看到右方括号并认为这是手动引用的结尾。为了避免这种情况,请将整个脚注放在花括号中。然后您只需使用\renewcommand{\mkcitation}[1]{\footnote{#1}}

梅威瑟:

\documentclass{scrartcl}
\usepackage[english]{babel}
\usepackage[style=authoryear]{biblatex}
\usepackage{lmodern,csquotes,lipsum}

\addbibresource{biblatex-examples.bib}
\renewcommand{\mkcitation}[1]{\footnote{#1}}

\begin{document}
\lipsum*[1]
\blockquote[{\cite[3]{aksin}. See also \cite[2]{aksin}}]{\lipsum*[1]...}
\lipsum*[1]
\end{document}

输出: 在此处输入图片描述

相关内容