Instead of having unbalanced quotes, you could use csquotes
s possibility to configure a "middle quote". Interestingly, this is pre-configured for french "guillemets" style, but not for american.
The following example, derived from the original setting for american
language, seems to do what you want.
Adapt to your own taste.
\documentclass{article}
\usepackage{csquotes}
\usepackage[american]{babel}
\DeclareQuoteStyle[american]{english}% verified
{\textquotedblleft}
[\textquotedblleft]
{\textquotedblright}
[0.05em]
{\textquoteleft}
{\textquoteright}
\MakeOuterQuote{"}
\begin{document}
"This is a quotation," he said. "It continues onto the next paragraph.
Here is the continuation of my quote. As per literary convention,
there is no end-quote at the end of the previous paragraph."
\end{document}
Here is a proposal, using some low level commands. The text is typeset in a \vtop
and its depth is used to place the opening quotes, while the closing quotes will be level with the top line (with some lowering due to size).
Thanks to Jake, I've been able to solve a mystery that bugged me, about a spacing that seems necessary and is due to the inner sep
of TikZ nodes.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{kpfonts}
\usepackage[svgnames]{xcolor}
\definecolor{framecolor}{named}{SteelBlue}
\colorlet{framebgcolor}{PowderBlue!50!White}
\definecolor{quotesignclr}{named}{LightSlateGrey}
\usepackage{changepage}
\usepackage{environ,graphicx}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\newcommand\sopeningquote{\scalebox{2}{\color{quotesignclr}\smash\quotedblbase}}
\newcommand\sclosingquote{\scalebox{2}{\color{quotesignclr}\smash\textquotedblleft}}
\makeatletter
\newsavebox\simplequestbox
\NewEnviron{simplequest}{%
\normalfont
\begin{adjustwidth}{3em}{3em}
\settowidth{\dimen@}{\sopeningquote\kern.4em\sclosingquote}%
\dimen@=\dimexpr\linewidth-\dimen@\relax
\setbox\simplequestbox=\vtop{
\@parboxrestore\itshape
\hsize=\dimexpr\dimen@-\pgfkeysvalueof{/pgf/inner xsep}*2\relax % thanks, Jake
\sbox\z@{\BODY}
\ifdim\wd\z@>\hsize
\noindent\BODY\par
\else
\box\z@
\fi
\xdef\simplequestpd{\the\prevdepth}
}
\begin{tikzpicture}
[background rectangle/.style={draw=framecolor,line width=0.2pt,
fill=framebgcolor,rounded corners}, show background rectangle,
inner frame xsep=-2pt,inner frame ysep=2pt]
\node {\mbox{%
\raisebox{\dimexpr-\dp\simplequestbox+\simplequestpd+.05ex}
[0pt][0pt]{\sopeningquote}%
\kern.2em
\box\simplequestbox
\kern.2em
\raisebox{-1.4ex}[0pt][0pt]{\sclosingquote}}};
\end{tikzpicture}
\end{adjustwidth}
}
\makeatother
\begin{document}
\begin{simplequest}
Dies hier ist ein Blindtext zum Testen von Textausgaben.
Wer diesen Text liest, ist selbst schuld.
\end{simplequest}
\begin{simplequest}
Dies hier ist ein Blindtext
\end{simplequest}
\Large
\begin{simplequest}
Dies hier ist ein Blindtext zum Testen von Textausgaben.
Wer diesen Text liest, ist selbst schuld.
\end{simplequest}
\end{document}
In the picture the similar quotes are: top mine, bottom yours.
A problem may arise in case the text consists of more than one paragraph and the first one is not long enough to fill a line. Should this case present itself in the document, the code might be changed like this:
\makeatletter
\newsavebox\simplequestbox
\NewEnviron{simplequest}[1][]{%
\normalfont
\begin{adjustwidth}{3em}{3em}
\settowidth{\dimen@}{\sopeningquote\kern.4em\sclosingquote}%
\dimen@=\dimexpr\linewidth-\dimen@\relax
\setbox\simplequestbox=\vtop{
\@parboxrestore\itshape
\hsize=\dimexpr\dimen@-\pgfkeysvalueof{/pgf/inner xsep}*2\relax % thanks, Jake
\if\relax\detokenize{#1}\relax
\sbox\z@{\BODY}
\ifdim\wd\z@>\hsize
\noindent\BODY\par
\else
\box\z@
\fi
\else
\sbox\z@{#1}
\hsize\wd\z@
\BODY\par
\fi
\xdef\simplequestpd{\the\prevdepth}
}
\begin{tikzpicture}
[background rectangle/.style={draw=framecolor,line width=0.2pt,
fill=framebgcolor,rounded corners}, show background rectangle,
inner frame xsep=-2pt,inner frame ysep=2pt]
\node {\mbox{%
\raisebox{\dimexpr-\dp\simplequestbox+\simplequestpd+.05ex}
[0pt][0pt]{\sopeningquote}%
\kern.2em
\box\simplequestbox
\kern.2em
\raisebox{-1.4ex}[0pt][0pt]{\sclosingquote}}};
\end{tikzpicture}
\end{adjustwidth}
}
\makeatother
The environment now has an optional argument, the first short line; here's an example:
\begin{simplequest}[Dies hier ist ein Blindtext.]
Dies hier ist ein Blindtext.
Wer diesen Text liest, ist selbst schuld.
\end{simplequest}
One could try getting only the first paragraph, but this might be error prone.
Best Answer
Indeed
quoteblock
was removed in version 5.0 ofcsquotes
. The behaviour is controlled now by\mkblockquote
for\blockquote
and relatives, and by the pair\mkbegdispquote
and\mkenddispquote
for the environmentdisplayquote
and relatives. All these have to be redefined:Note also, that the language is set by
babel
here, andcsquotes
reads this setting (see package optionautostyle
). I intentionally added an\enquote
command (marked bold in output) inside of both blockquote variations. By the waypolyglossia
would also be possible.Should this not be what you want, I can only suggest that you read (in the
csquotes
documentation) what is written, from package optionsthreshold
,thresholdtype
, and perhapsparthreshold
to the command\blockquote
and the section for display environments.