11

I'm trying to force csquotes to always set a \blockquote in display mode but still enclose the quote in quotation marks, German ones in particular.

How can I achieve that?

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern,blindtext}

\usepackage[babel=true,strict=true,german=quotes,threshold=1]{csquotes}

\begin{document}

\blindtext

\blockquote{\blindtext}

\blindtext

\end{document}

This example produces a quote as an indented paragraph, but without quotation marks.

2
  • 4
    Something like \renewcommand\mkblockquote[4]{\enquote{#1#2#3}#4} should work, see section 8.7 Hooks for Quotations and Citations of the csquotes manual for details on \mkblockquote – cgnieder Sep 29 '13 at 22:37
  • This sounds like what I'm looking for. I'll give it a try. If it works I would happily accept it as the answer. – Scolytus Sep 30 '13 at 4:55
9

The csquotes manual suggests to redefine \mkblockquote, see section 8.7 Hooks for Quotations and Citations. One possibility would be

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

which gives the same effect as in this answer.

The four arguments of \mkblockquote refer to

\mkblockquote{<text>}{<punct>}{<tpunct>}{<cite>}

which are explained in the manual as follows

  • #1 The text argument of the command.
  • #2 The optional <punct> argument of the command. If there is no <punct> argument, this parameter is empty.
  • #3 Trailing <tpunct> punctuation immediately after the command. If there is no such punctuation or if the autopunct feature is disabled, this parameter is empty.
  • #4 The optional <cite> argument of the command, wrapped in \mkcitation. If there is no <cite> argument, this parameter is empty. With integrated quotation commands, this parameter is the citation code, wrapped in \mkccitation.

In the example below I use

\renewcommand\mkblockquote[4]{\leavevmode\llap{,,}#1#2#3``#4}

where \llap{,,} places the opening quotation mark left of the text in the quote margin. (The space at the end before the closing quotation mark is an artefact of \blindtext and not related to \mkblockquote.)

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern,blindtext}

\usepackage[babel=true,strict=true,german=quotes,threshold=1]{csquotes}

\renewcommand\mkblockquote[4]{\leavevmode\llap{,,}#1#2#3``#4}

\begin{document}

\blindtext

\blockquote{\blindtext}

\blindtext

\end{document}

enter image description here

5
  • Very nice result! thx! – Scolytus Oct 1 '13 at 6:16
  • Instead of \renewcommand\mkblockquote[4]{\leavevmode\llap{,,}#1#2#3``#4} we could use \renewcommand\mkblockquote[4]{\leavevmode\llap{\textooquote}#1#2#3\textcoquote#4} for localization-awareness. Unfortunately the tracking with \openautoquote/\closeautoquote does not work. – moewe Nov 10 '15 at 8:11
  • I cooked up \makeatletter \renewcommand\mkblockquote[4]{\leavevmode\llap{\openautoquote\csq@eqgroup}\csq@bqgroup\advance\csq@qlevel\@ne#1#2#3\closeautoquote#4} \makeatother just now, which seems to do all the tracking as advertised. – moewe Nov 10 '15 at 8:39
  • @moewe Ah, probably being hidden in the \llap box is a problem for \openautoquote and the tracking mechanism – cgnieder Nov 10 '15 at 8:52
  • Yes, I suppose it has to do with grouping. – moewe Nov 10 '15 at 16:12
4

Just add \enquote{...} inside the \blockquote command.

MWE:

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern,blindtext}

\usepackage[babel=true,strict=true,german=quotes,threshold=1]{csquotes}

\begin{document}
\blindtext

\blockquote{\enquote{\blindtext}}   %<=======================

\blindtext
\end{document}

Result:

enter image description here

2
  • @jon That seems to be a problem with \blindtext, it puts a space at the end. If one uses a text without a space at the end, everything works as expected. – moewe Sep 30 '13 at 8:10
  • 3
    it would be nicer if the opening quotes were set just outside the quote margin. – barbara beeton Sep 30 '13 at 14:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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