[Tex/LaTex] csquotes: Footnotes after Block Quotes with Quotation Marks

csquotesfootnotespunctuationquoting

Pretty often, I come across a situation where I'd like to add a footnote to a block quote in order to comment on the passage quoted.

\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}

As expected, the first arrangement is not going to work. The footnote mark will end up at the beginning of the paragraph following the quote (as \footnote is invoked after the \blockquote is closed). This can be fixed by including \footnote within \blockquote.

But this fix will stop working as soon as we apply certain changes to the appearance of our block quotes. Consider my modifications, which I find more pleasing than the LaTeX defaults. (I've disabled those parts of my modifications that aren't relevant to the problem.)

\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}

This style (among other things) retains the quotation marks even for the block quotes. That's what the \mkblockquote line is about. The problem is: how can we can have the footnote mark come after the closing mark, but remain on the same line? I've experiment with things like \nobreak, but, being a layman when it comes to low-level things, to no avail. I've also tried working on the modified \mkblockquote: one might make the footnote an optional argument to \blockquote. But everything I tried still resulted in the footnote mark being pushed into the next paragraph.

enter image description here

Update

karlkoeller suggested using a re-defined \mkcitation for that purpose. This does indeed produce a footnote mark in the proper place, and provides a very elegant interface: \blockquote[footnote text]{quote text}. But it breaks as soon as there is a citation command somewhere in the footnote text — which will happen quite often …or, in my case, literally every time. For a simple block quote with no additional remarks in the footnote, I use \blockc(!)quote[123]{xyz}{quote text}, which generates the block quote, the footnote mark, and the citation in the footnote. What I'm after is a way to not only have a citation in the footnote, but additional text, which in turn may include more citations (see the picture, which I updated as well).

\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}

NB: using the postnote of \blockcquote, as in
\blockcquote[123... footnote text, more citations]{xyz}{quote text}
is not an option. It'll break as well, complaining about nested citation commands.

Best Answer

Note that the csquotes package allows to define an optional argument for citations in \blockquote and this one can be defined to be a footnote.

So, you just have to add

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

in the preamble

and use

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

instead of

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

Complete 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} 

Output

enter image description here


Update

Your issue in the update can be resolved in this way:

replace

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

with simply

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

and then use

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

instead of

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

In this way, we've separated the \footnotemark from the \footnotetext and the problem doesn't arise.

Complete working 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}

Output

enter image description here