Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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.

share|improve this question

1 Answer 1

up vote 4 down vote accepted

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

share|improve this answer
    
I guess some people might consider that an abuse of what that optional argument was designed for... I'm not that strict; it works great for me :) –  Nils L Oct 4 '13 at 17:39
    
update: looks like it isn't as simple as I thougt. See my edited post. –  Nils L Oct 4 '13 at 19:09
    
@NilsL see the updated answer. Now it should be OK. –  karlkoeller Oct 5 '13 at 5:45
    
yes, this one seems to work. I'll do some more thorough testing in more real-life situations the next two or three days and will let you know how that turns out... –  Nils L Oct 6 '13 at 9:31

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.