Block quote with big quotation marks












74















How can I create a block quote enviroment with big quotation marks similar to the Cquote Template of Wikipedia?



Additionally it would be nice to place both quotation marks and quote in a colored box and to have the author closer to the citation.










share|improve this question




















  • 1





    JFYI: See now also Block quote with big quotation marks and opening quote on bottom.

    – Speravir
    Feb 21 '13 at 3:32
















74















How can I create a block quote enviroment with big quotation marks similar to the Cquote Template of Wikipedia?



Additionally it would be nice to place both quotation marks and quote in a colored box and to have the author closer to the citation.










share|improve this question




















  • 1





    JFYI: See now also Block quote with big quotation marks and opening quote on bottom.

    – Speravir
    Feb 21 '13 at 3:32














74












74








74


41






How can I create a block quote enviroment with big quotation marks similar to the Cquote Template of Wikipedia?



Additionally it would be nice to place both quotation marks and quote in a colored box and to have the author closer to the citation.










share|improve this question
















How can I create a block quote enviroment with big quotation marks similar to the Cquote Template of Wikipedia?



Additionally it would be nice to place both quotation marks and quote in a colored box and to have the author closer to the citation.







color punctuation quoting






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 30 '11 at 11:37









lockstep

192k53593723




192k53593723










asked Apr 29 '11 at 20:00









EmersonEmerson

1,44541928




1,44541928








  • 1





    JFYI: See now also Block quote with big quotation marks and opening quote on bottom.

    – Speravir
    Feb 21 '13 at 3:32














  • 1





    JFYI: See now also Block quote with big quotation marks and opening quote on bottom.

    – Speravir
    Feb 21 '13 at 3:32








1




1





JFYI: See now also Block quote with big quotation marks and opening quote on bottom.

– Speravir
Feb 21 '13 at 3:32





JFYI: See now also Block quote with big quotation marks and opening quote on bottom.

– Speravir
Feb 21 '13 at 3:32










5 Answers
5






active

oldest

votes


















68














Here's one solution using TikZ which defines a new environment using the framed package. You should preferably compile this with xelatex or lualatex, since it gives the easiest access to a wide range of fonts. I've added code to make it run under pdflatex as well.



The code has now been updated to allow some flexibility in the formatting of the different components of the quotation, and the environment takes two arguments:



Environment Syntax




 begin{shadequote}[<alignment>]{<author>}
text of quote
end{shadequote}




Code



% !TEX TS-program = xeLaTeX

documentclass[12pt]{article}
usepackage{ifxetex,ifluatex}
usepackage{etoolbox}
usepackage[svgnames]{xcolor}

usepackage{tikz}

usepackage{framed}

% conditional for xetex or luatex
newififxetexorluatex
ifxetex
xetexorluatextrue
else
ifluatex
xetexorluatextrue
else
xetexorluatexfalse
fi
fi
%
ifxetexorluatex%
usepackage{fontspec}
usepackage{libertine} % or use setmainfont to choose any font on your system
newfontfamilyquotefont[Ligatures=TeX]{Linux Libertine O} % selects Libertine as the quote font
else
usepackage[utf8]{inputenc}
usepackage[T1]{fontenc}
usepackage{libertine} % or any other font package
newcommand*quotefont{fontfamily{LinuxLibertineT-LF}} % selects Libertine as the quote font
fi

newcommand*quotesize{60} % if quote size changes, need a way to make shifts relative
% Make commands for the quotes
newcommand*{openquote}
{tikz[remember picture,overlay,xshift=-4ex,yshift=-2.5ex]
node (OQ) {quotefontfontsize{quotesize}{quotesize}selectfont``};kern0pt}

newcommand*{closequote}[1]
{tikz[remember picture,overlay,xshift=4ex,yshift={#1}]
node (CQ) {quotefontfontsize{quotesize}{quotesize}selectfont''};}

% select a colour for the shading
colorlet{shadecolor}{Azure}

newcommand*shadedauthorformat{emph} % define format for the author argument

% Now a command to allow left, right and centre alignment of the author
newcommand*authoralign[1]{%
if#1l
defauthorfill{}defquotefill{hfill}
else
if#1r
defauthorfill{hfill}defquotefill{}
else
if#1c
gdefauthorfill{hfill}defquotefill{hfill}
elsetypeout{Invalid option}
fi
fi
fi}
% wrap everything in its own environment which takes one argument (author) and one optional argument
% specifying the alignment [l, r or c]
%
newenvironment{shadequote}[2][l]%
{authoralign{#1}
ifblank{#2}
{defshadequoteauthor{}defyshift{-2ex}defquotefill{hfill}}
{defshadequoteauthor{parauthorfillshadedauthorformat{#2}}defyshift{2ex}}
begin{snugshade}begin{quote}openquote}
{shadequoteauthorquotefillclosequote{yshift}end{quote}end{snugshade}}

begin{document}

begin{shadequote}[l]{Douglas Adams}
A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
end{shadequote}

begin{shadequote}[r]{Douglas Adams}
A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
end{shadequote}

begin{shadequote}[c]{Douglas Adams}
A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
end{shadequote}

begin{shadequote}{}
A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
end{shadequote}

end{document}


In this code, the font for the quotation marks is set independently of the main document font. This is because depending on the main font you choose, the very large quotation marks will not look good; Linux Libertine has pretty quotes that seem appropriate for the purpose. If you want to use this environment with another main document font, remove/change the usepackage{libertine}.



Sample output



output of code






share|improve this answer





















  • 1





    @Alun: Why do you define quotefont? libertine is already present.

    – Herbert
    Apr 30 '11 at 14:32






  • 1





    @Herbert Because these are decorative elements, it makes sense to define the font for the quotes independent of the document font. For example, if you just use Computer Modern, the big quotes look quite silly; The libertine font has a pretty quote for this purpose, and I would use it with most document fonts.

    – Alan Munn
    Apr 30 '11 at 14:53











  • @Alun: You know, that I know that ... ;-) But then it makes sense to use another text font in your example, if you want to show this behaviour.

    – Herbert
    Apr 30 '11 at 17:32






  • 1





    @Chernoff I'm not sure why this happens, but you can adjust the value of xshift in the closequote macro to 1ex (or similar values) to adjust the positioning of the quote.

    – Alan Munn
    Jun 30 '18 at 16:02








  • 1





    @Chernoff Again, not sure the reason, but you can add vspace{1ex} (or similar value) before the emph in the shadedauthorformat definition.

    – Alan Munn
    Jun 30 '18 at 16:41



















30














(We just got another question asking for something similar: Quote style like on owni.eu. I wasn't aware of this question when I started to answer that one, but on becoming aware of it decided to post my answer here instead.)



It's also TikZ-based but slightly different to Alan's as the whole thing ends up in a TikZ node. This does mean that it won't work with page-breaking. One could also adapt the quote marks from Alan's version to make them look a bit better.



Here's the result:



fancy quotes



And here's the code:



documentclass{article}
thispagestyle{empty}
usepackage{lipsum}
usepackage{tikz}
usetikzlibrary{backgrounds}
makeatletter

tikzset{%
fancy quotes/.style={
text width=fq@width pt,
align=justify,
inner sep=1em,
anchor=north west,
minimum width=linewidth,
},
fancy quotes width/.initial={.8linewidth},
fancy quotes marks/.style={
scale=8,
text=white,
inner sep=0pt,
},
fancy quotes opening/.style={
fancy quotes marks,
},
fancy quotes closing/.style={
fancy quotes marks,
},
fancy quotes background/.style={
show background rectangle,
inner frame xsep=0pt,
background rectangle/.style={
fill=gray!25,
rounded corners,
},
}
}

newenvironment{fancyquotes}[1]{%
noindent
tikzpicture[fancy quotes background]
node[fancy quotes opening,anchor=north west] (fq@ul) at (0,0) {``};
tikz@scan@one@pointpgfutil@firstofone(fq@ul.east)
pgfmathsetmacro{fq@width}{linewidth - 2*pgf@x}
node[fancy quotes,#1] (fq@txt) at (fq@ul.north west) bgroup}
{egroup;
node[overlay,fancy quotes closing,anchor=east] at (fq@txt.south east) {''};
endtikzpicture}

makeatother

begin{document}
lipsum[1]

begin{fancyquotes}
lipsum[1]
end{fancyquotes}

lipsum[1]
end{document}


The lipsum package is just to provide some dummy text.






share|improve this answer


























  • I like this one a lot and have started to use it in my documents. Thanks!

    – adl
    Jan 26 '12 at 16:46











  • This looks seriously good in documents. Thanks!

    – tchakravarty
    Jul 25 '12 at 6:53











  • Just had a request on TeXwelt.de to have the box in twocolumn mode taking up just one column. Basically, s/textwidth/columnwidth/g. Can you add a line explaining and maybe another screenshot?

    – Johannes_B
    Feb 13 '15 at 16:44











  • @Johannes_B Feel free to edit the answer with that change. As this is over three years old, I don't feel able to resurrect it myself.

    – Loop Space
    Feb 14 '15 at 19:34






  • 1





    @Johannes_B @LoopSpace This is great! This creates no spacing between paragraphs within the block quote, however. How can I modify it so that there is normal spacing between paragraphs within the fancyquotes environment? I tried adding setlength{baselineskip}{16pt} and setlength{parskip}{baselineskip} but neither one worked.

    – incandescentman
    Dec 21 '16 at 5:31



















25














documentclass[12pt]{article}
usepackage[T1]{fontenc}
usepackage{libertine}
usepackage{graphicx}
usepackage[svgnames]{xcolor}
usepackage{framed}

newcommand*openquote{makebox(25,-22){scalebox{5}{``}}}
newcommand*closequote{makebox(25,-22){scalebox{5}{''}}}
colorlet{shadecolor}{Azure}

makeatletter
newifif@right
defshadequote{@righttrueshadequote@i}
defshadequote@i{begin{snugshade}begin{quote}openquote}
defendshadequote{%
if@righthfillficlosequoteend{quote}end{snugshade}}
@namedef{shadequote*}{@rightfalseshadequote@i}
@namedef{endshadequote*}{endshadequote}
makeatother
begin{document}

begin{shadequote}
Some quoted words
end{shadequote}

begin{shadequote*}
Some quoted words
end{shadequote*}

begin{shadequote}
A common mistake that people make when trying to design something completely
foolproof is to underestimate the ingenuity of complete fools.paremph{Douglas Adams}
end{shadequote}

end{document}


enter image description here






share|improve this answer
























  • Using your code in a minimal example works great, but when I copy it to a large document I work on I get the error "You can't use 'spacefactor' in vertical mode". Do you have any idea how to resolve this problem? Thanks!

    – lumbric
    Mar 21 '12 at 22:39











  • you'd forgotten the makeatletter ... makeatother

    – Herbert
    Mar 22 '12 at 11:09











  • Thanks a lot! It took me quite a while to figure out what happend, but you were right, I messed up the makeatletter and makeatother commands. This happend after exporting some code from LyX, at this step LyX put some additional makeatletter and makeatother around my custom code.

    – lumbric
    Mar 26 '12 at 21:22











  • If there is a line break before the closing quote, it looks a bit strange. I don't have a real good suggestion, but I think placing simple a nolinebreak makes things a bit better. This means one would have to replace the line if@righthfillficlosequoteend{quote}end{snugshade}} by nolinebreakif@righthfillficlosequoteend{quote}end{snugshade}}. This is a comment and not an edit, because I'm unsure if it's the best solution.

    – lumbric
    Mar 28 '12 at 20:28











  • I'm trying to use this in my thesis which is based on classicthesis but the problem is, it mess with all my fonts and change them. What am I doing wrong here? The same holds for @Herbert 's answer.

    – Pouya
    Sep 25 '13 at 15:31



















4














Had I known about this question, I would not have written cfr-dquote. However, I didn't, so I did. Here's a lightly modified version of my package for public consumption or rejection.



The package defines a command, dquote[<dimension>]{<long text>}{<short text} which is intended to be used so that <dimension> is the width desired, <long text> is the quotation and <short text> is the attribution.



The package is based on TikZ and the appearance can be customised using the usual key-value interface. For example, I've never used this with a coloured background to the quotation, but that is easy to achieve by simply altering quote style.



For example,



documentclass[a4paper,british]{article}
usepackage[utf8]{inputenc}
usepackage{geometry,babel,csquotes}
usepackage{cfr-lm}
usepackage{cfr-dquote}
MakeAutoQuote{‘}{’}
MakeAutoQuote*{“}{”}
begin{document}
tikzset{%
dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
dquote={
quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
marks={
size=Huge,
scale=4,
color=blue!50!darkgray,
opacity=.5,
},
},
}%
dquote{%
‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

‘Exactly so,’ said Alice.

‘Then you should say what you mean,’ the March Hare went on.

‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
}{Lewis Carroll}

end{document}


produces the following output



Alice quote



The package consists of two files, cfr-dquote.sty and cfr-dquote.tex. In theory, the latter can be compiled alone, since it uses the standalone class, but don't be tempted to use it this way - that's just to make tweaks and debugging easier.



Complete code:



begin{filecontents}{cfr-dquote.sty}
% !TEX encoding = UTF-8 Unicode
% cfr-dquote.sty
NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
[1994/12/01]% LaTeX date must December 1994 or later
RequirePackage{svn-prov}
ProvidesPackageSVN{$Id: cfr-dquote.sty 7799 2018-07-20 01:52:15Z cfr $}
RequirePackage{xcolor,pifont,standalone,xparse,tikz}
usetikzlibrary{calc,positioning,backgrounds}
IfFileExists{tikzlibrarypicfix.code.tex}{usetikzlibrary{picfix}}{}
IfFileExists{tikzlibrarycfrexternal.code.tex}{usetikzlibrary{cfrexternal}}{usetikzlibrary{external}}
NewDocumentCommanddquotetextfonthook{}{normalfontlarge}
NewDocumentCommanddquoteattribfonthook{}{normalfontnormalsize}
AtBeginDocument{%
newlengthcfrdquoteparskipsetlengthcfrdquoteparskip{parskip}%
newlengthcfrdquoteparindentsetlengthcfrdquoteparindent{parindent}}
% BEGIN defaults
tikzset{%
dquote text font/.code={%
RenewDocumentCommanddquotetextfonthook{}{#1}
},
dquote attrib font/.code={%
RenewDocumentCommanddquoteattribfonthook{}{#1}
},
dquote/.code={%
tikzset{%
/cfr-dquote/.cd,
#1
}
},
/cfr-dquote/quote style/.style={align=justify, color=blue!50!black},
/cfr-dquote/quote/.style={/cfr-dquote/quote style, font=dquotetextfonthook},
/cfr-dquote/attrib/.style={/cfr-dquote/quote style, font=dquoteattribfonthook},
/cfr-dquote/quote mark/.style={color=cfrdquotecolor, opacity=cfrdquoteopacity, font=cfrdquotesize, scale=cfrdquotescale},
/cfr-dquote/.cd,
width/.store in=cfrdquotewidth,
text/.store in=cfrdquotetext,
attribution/.store in=cfrdquoteattrib,
width=120mm,
text={Does dim o gwbl yn y fan hon!},
attribution={Neb},
marks/.code={%
tikzset{%
/cfr-dquote/quote marks/.cd,
#1
}
},
quote marks/size/.store in=cfrdquotesize,
quote marks/scale/.store in=cfrdquotescale,
quote marks/color/.store in=cfrdquotecolor,
quote marks/opacity/.store in=cfrdquoteopacity,
marks={
size=Huge,
scale=4,
color=blue!50!cyan,
opacity=.25,
},
}
% END defaults
% BEGIN defn dquote
NewDocumentCommanddquote { O {120mm} +m m }{%
tikzset{%
external/export next=false,
/cfr-dquote/.cd,
width={#1},
text={setlengthparskip{cfrdquoteparskip}setlengthparindent{cfrdquoteparindent}#2},
attribution={#3}
}%
input{cfr-dquote}%
}
% END defn dquote
endinput
end{filecontents}
begin{filecontents}{cfr-dquote.tex}
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
% arara: pdflatex: { synctex: true }
%BEGIN preamble
csname standaloneignoreendcsname
pdfminorversion=7
PassOptionsToPackage{rgb}{xcolor}
RequirePackage{svn-prov}
ProvidesFileSVN{$Id: cfr-dquote.tex 7800 2018-07-20 01:58:28Z cfr $}
documentclass[tikz,12pt]{standalone}
usetikzlibrary{calc,positioning,backgrounds}
usepackage{pifont,biblatex}
% END preamble

begin{document}%
begin{tikzpicture}[node distance=0pt]
node (quotation) [/cfr-dquote/quote, text width=cfrdquotewidth] {cfrdquotetext};
node (attrib) [/cfr-dquote/attrib, below=of quotation, text width=cfrdquotewidth] {cfrdquoteattrib};
node (qlhs) [left=of quotation.north west, /cfr-dquote/quote mark, xshift=.25em, yshift=.25em, anchor=north east] {ding{123}};
node (qrhs) [right=of quotation.south east, /cfr-dquote/quote mark, xshift=-.25em, yshift=-.75em, anchor=south west] {ding{124}};
pgfresetboundingbox
useasboundingbox (attrib.south -| qlhs.west) rectangle (quotation.north -| qrhs.east);
end{tikzpicture}%
end{document}
end{filecontents}


documentclass[a4paper,british]{article}
usepackage[utf8]{inputenc}
usepackage{geometry,babel,csquotes}
usepackage{cfr-lm}
usepackage{cfr-dquote}
MakeAutoQuote{‘}{’}
MakeAutoQuote*{“}{”}
begin{document}
tikzset{%
dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
dquote={
quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
marks={
size=Huge,
scale=4,
color=blue!50!darkgray,
opacity=.5,
},
},
}%
dquote{%
‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

‘Exactly so,’ said Alice.

‘Then you should say what you mean,’ the March Hare went on.

‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
}{Lewis Carroll}

end{document}





share|improve this answer































    1
















    I know that this is old, but I may as well share my simple attempt.



    Note: requires usepackage{xcolor}



    The command itself:



    newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}


    Minimum working example:



    documentclass{article}
    usepackage{xcolor}
    newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}

    begin{document}
    quotebox{Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar.}
    end{document}


    Example:



    Image of MWE






    share|improve this answer










    New contributor




    Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.
















    • 1





      Welcome to TeX.SE! Can you please --as usual here -- make your code snippet compilable for a fast proof?

      – Kurt
      1 hour ago











    • Sorry... What do you mean by snippet compatible? @Kurt

      – Ender - Joshua Pritsker
      1 hour ago













    • Please make your code compilable (if possible), or at least complete it with documentclass{...}, the required usepackage's, begin{document}, and end{document}. That is called a minimal working example (MWE).

      – Kurt
      1 hour ago











    • Done, thank you. @Kurt

      – Ender - Joshua Pritsker
      31 mins ago











    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "85"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f16964%2fblock-quote-with-big-quotation-marks%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    5 Answers
    5






    active

    oldest

    votes








    5 Answers
    5






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    68














    Here's one solution using TikZ which defines a new environment using the framed package. You should preferably compile this with xelatex or lualatex, since it gives the easiest access to a wide range of fonts. I've added code to make it run under pdflatex as well.



    The code has now been updated to allow some flexibility in the formatting of the different components of the quotation, and the environment takes two arguments:



    Environment Syntax




     begin{shadequote}[<alignment>]{<author>}
    text of quote
    end{shadequote}




    Code



    % !TEX TS-program = xeLaTeX

    documentclass[12pt]{article}
    usepackage{ifxetex,ifluatex}
    usepackage{etoolbox}
    usepackage[svgnames]{xcolor}

    usepackage{tikz}

    usepackage{framed}

    % conditional for xetex or luatex
    newififxetexorluatex
    ifxetex
    xetexorluatextrue
    else
    ifluatex
    xetexorluatextrue
    else
    xetexorluatexfalse
    fi
    fi
    %
    ifxetexorluatex%
    usepackage{fontspec}
    usepackage{libertine} % or use setmainfont to choose any font on your system
    newfontfamilyquotefont[Ligatures=TeX]{Linux Libertine O} % selects Libertine as the quote font
    else
    usepackage[utf8]{inputenc}
    usepackage[T1]{fontenc}
    usepackage{libertine} % or any other font package
    newcommand*quotefont{fontfamily{LinuxLibertineT-LF}} % selects Libertine as the quote font
    fi

    newcommand*quotesize{60} % if quote size changes, need a way to make shifts relative
    % Make commands for the quotes
    newcommand*{openquote}
    {tikz[remember picture,overlay,xshift=-4ex,yshift=-2.5ex]
    node (OQ) {quotefontfontsize{quotesize}{quotesize}selectfont``};kern0pt}

    newcommand*{closequote}[1]
    {tikz[remember picture,overlay,xshift=4ex,yshift={#1}]
    node (CQ) {quotefontfontsize{quotesize}{quotesize}selectfont''};}

    % select a colour for the shading
    colorlet{shadecolor}{Azure}

    newcommand*shadedauthorformat{emph} % define format for the author argument

    % Now a command to allow left, right and centre alignment of the author
    newcommand*authoralign[1]{%
    if#1l
    defauthorfill{}defquotefill{hfill}
    else
    if#1r
    defauthorfill{hfill}defquotefill{}
    else
    if#1c
    gdefauthorfill{hfill}defquotefill{hfill}
    elsetypeout{Invalid option}
    fi
    fi
    fi}
    % wrap everything in its own environment which takes one argument (author) and one optional argument
    % specifying the alignment [l, r or c]
    %
    newenvironment{shadequote}[2][l]%
    {authoralign{#1}
    ifblank{#2}
    {defshadequoteauthor{}defyshift{-2ex}defquotefill{hfill}}
    {defshadequoteauthor{parauthorfillshadedauthorformat{#2}}defyshift{2ex}}
    begin{snugshade}begin{quote}openquote}
    {shadequoteauthorquotefillclosequote{yshift}end{quote}end{snugshade}}

    begin{document}

    begin{shadequote}[l]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}[r]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}[c]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}{}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    end{document}


    In this code, the font for the quotation marks is set independently of the main document font. This is because depending on the main font you choose, the very large quotation marks will not look good; Linux Libertine has pretty quotes that seem appropriate for the purpose. If you want to use this environment with another main document font, remove/change the usepackage{libertine}.



    Sample output



    output of code






    share|improve this answer





















    • 1





      @Alun: Why do you define quotefont? libertine is already present.

      – Herbert
      Apr 30 '11 at 14:32






    • 1





      @Herbert Because these are decorative elements, it makes sense to define the font for the quotes independent of the document font. For example, if you just use Computer Modern, the big quotes look quite silly; The libertine font has a pretty quote for this purpose, and I would use it with most document fonts.

      – Alan Munn
      Apr 30 '11 at 14:53











    • @Alun: You know, that I know that ... ;-) But then it makes sense to use another text font in your example, if you want to show this behaviour.

      – Herbert
      Apr 30 '11 at 17:32






    • 1





      @Chernoff I'm not sure why this happens, but you can adjust the value of xshift in the closequote macro to 1ex (or similar values) to adjust the positioning of the quote.

      – Alan Munn
      Jun 30 '18 at 16:02








    • 1





      @Chernoff Again, not sure the reason, but you can add vspace{1ex} (or similar value) before the emph in the shadedauthorformat definition.

      – Alan Munn
      Jun 30 '18 at 16:41
















    68














    Here's one solution using TikZ which defines a new environment using the framed package. You should preferably compile this with xelatex or lualatex, since it gives the easiest access to a wide range of fonts. I've added code to make it run under pdflatex as well.



    The code has now been updated to allow some flexibility in the formatting of the different components of the quotation, and the environment takes two arguments:



    Environment Syntax




     begin{shadequote}[<alignment>]{<author>}
    text of quote
    end{shadequote}




    Code



    % !TEX TS-program = xeLaTeX

    documentclass[12pt]{article}
    usepackage{ifxetex,ifluatex}
    usepackage{etoolbox}
    usepackage[svgnames]{xcolor}

    usepackage{tikz}

    usepackage{framed}

    % conditional for xetex or luatex
    newififxetexorluatex
    ifxetex
    xetexorluatextrue
    else
    ifluatex
    xetexorluatextrue
    else
    xetexorluatexfalse
    fi
    fi
    %
    ifxetexorluatex%
    usepackage{fontspec}
    usepackage{libertine} % or use setmainfont to choose any font on your system
    newfontfamilyquotefont[Ligatures=TeX]{Linux Libertine O} % selects Libertine as the quote font
    else
    usepackage[utf8]{inputenc}
    usepackage[T1]{fontenc}
    usepackage{libertine} % or any other font package
    newcommand*quotefont{fontfamily{LinuxLibertineT-LF}} % selects Libertine as the quote font
    fi

    newcommand*quotesize{60} % if quote size changes, need a way to make shifts relative
    % Make commands for the quotes
    newcommand*{openquote}
    {tikz[remember picture,overlay,xshift=-4ex,yshift=-2.5ex]
    node (OQ) {quotefontfontsize{quotesize}{quotesize}selectfont``};kern0pt}

    newcommand*{closequote}[1]
    {tikz[remember picture,overlay,xshift=4ex,yshift={#1}]
    node (CQ) {quotefontfontsize{quotesize}{quotesize}selectfont''};}

    % select a colour for the shading
    colorlet{shadecolor}{Azure}

    newcommand*shadedauthorformat{emph} % define format for the author argument

    % Now a command to allow left, right and centre alignment of the author
    newcommand*authoralign[1]{%
    if#1l
    defauthorfill{}defquotefill{hfill}
    else
    if#1r
    defauthorfill{hfill}defquotefill{}
    else
    if#1c
    gdefauthorfill{hfill}defquotefill{hfill}
    elsetypeout{Invalid option}
    fi
    fi
    fi}
    % wrap everything in its own environment which takes one argument (author) and one optional argument
    % specifying the alignment [l, r or c]
    %
    newenvironment{shadequote}[2][l]%
    {authoralign{#1}
    ifblank{#2}
    {defshadequoteauthor{}defyshift{-2ex}defquotefill{hfill}}
    {defshadequoteauthor{parauthorfillshadedauthorformat{#2}}defyshift{2ex}}
    begin{snugshade}begin{quote}openquote}
    {shadequoteauthorquotefillclosequote{yshift}end{quote}end{snugshade}}

    begin{document}

    begin{shadequote}[l]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}[r]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}[c]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}{}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    end{document}


    In this code, the font for the quotation marks is set independently of the main document font. This is because depending on the main font you choose, the very large quotation marks will not look good; Linux Libertine has pretty quotes that seem appropriate for the purpose. If you want to use this environment with another main document font, remove/change the usepackage{libertine}.



    Sample output



    output of code






    share|improve this answer





















    • 1





      @Alun: Why do you define quotefont? libertine is already present.

      – Herbert
      Apr 30 '11 at 14:32






    • 1





      @Herbert Because these are decorative elements, it makes sense to define the font for the quotes independent of the document font. For example, if you just use Computer Modern, the big quotes look quite silly; The libertine font has a pretty quote for this purpose, and I would use it with most document fonts.

      – Alan Munn
      Apr 30 '11 at 14:53











    • @Alun: You know, that I know that ... ;-) But then it makes sense to use another text font in your example, if you want to show this behaviour.

      – Herbert
      Apr 30 '11 at 17:32






    • 1





      @Chernoff I'm not sure why this happens, but you can adjust the value of xshift in the closequote macro to 1ex (or similar values) to adjust the positioning of the quote.

      – Alan Munn
      Jun 30 '18 at 16:02








    • 1





      @Chernoff Again, not sure the reason, but you can add vspace{1ex} (or similar value) before the emph in the shadedauthorformat definition.

      – Alan Munn
      Jun 30 '18 at 16:41














    68












    68








    68







    Here's one solution using TikZ which defines a new environment using the framed package. You should preferably compile this with xelatex or lualatex, since it gives the easiest access to a wide range of fonts. I've added code to make it run under pdflatex as well.



    The code has now been updated to allow some flexibility in the formatting of the different components of the quotation, and the environment takes two arguments:



    Environment Syntax




     begin{shadequote}[<alignment>]{<author>}
    text of quote
    end{shadequote}




    Code



    % !TEX TS-program = xeLaTeX

    documentclass[12pt]{article}
    usepackage{ifxetex,ifluatex}
    usepackage{etoolbox}
    usepackage[svgnames]{xcolor}

    usepackage{tikz}

    usepackage{framed}

    % conditional for xetex or luatex
    newififxetexorluatex
    ifxetex
    xetexorluatextrue
    else
    ifluatex
    xetexorluatextrue
    else
    xetexorluatexfalse
    fi
    fi
    %
    ifxetexorluatex%
    usepackage{fontspec}
    usepackage{libertine} % or use setmainfont to choose any font on your system
    newfontfamilyquotefont[Ligatures=TeX]{Linux Libertine O} % selects Libertine as the quote font
    else
    usepackage[utf8]{inputenc}
    usepackage[T1]{fontenc}
    usepackage{libertine} % or any other font package
    newcommand*quotefont{fontfamily{LinuxLibertineT-LF}} % selects Libertine as the quote font
    fi

    newcommand*quotesize{60} % if quote size changes, need a way to make shifts relative
    % Make commands for the quotes
    newcommand*{openquote}
    {tikz[remember picture,overlay,xshift=-4ex,yshift=-2.5ex]
    node (OQ) {quotefontfontsize{quotesize}{quotesize}selectfont``};kern0pt}

    newcommand*{closequote}[1]
    {tikz[remember picture,overlay,xshift=4ex,yshift={#1}]
    node (CQ) {quotefontfontsize{quotesize}{quotesize}selectfont''};}

    % select a colour for the shading
    colorlet{shadecolor}{Azure}

    newcommand*shadedauthorformat{emph} % define format for the author argument

    % Now a command to allow left, right and centre alignment of the author
    newcommand*authoralign[1]{%
    if#1l
    defauthorfill{}defquotefill{hfill}
    else
    if#1r
    defauthorfill{hfill}defquotefill{}
    else
    if#1c
    gdefauthorfill{hfill}defquotefill{hfill}
    elsetypeout{Invalid option}
    fi
    fi
    fi}
    % wrap everything in its own environment which takes one argument (author) and one optional argument
    % specifying the alignment [l, r or c]
    %
    newenvironment{shadequote}[2][l]%
    {authoralign{#1}
    ifblank{#2}
    {defshadequoteauthor{}defyshift{-2ex}defquotefill{hfill}}
    {defshadequoteauthor{parauthorfillshadedauthorformat{#2}}defyshift{2ex}}
    begin{snugshade}begin{quote}openquote}
    {shadequoteauthorquotefillclosequote{yshift}end{quote}end{snugshade}}

    begin{document}

    begin{shadequote}[l]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}[r]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}[c]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}{}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    end{document}


    In this code, the font for the quotation marks is set independently of the main document font. This is because depending on the main font you choose, the very large quotation marks will not look good; Linux Libertine has pretty quotes that seem appropriate for the purpose. If you want to use this environment with another main document font, remove/change the usepackage{libertine}.



    Sample output



    output of code






    share|improve this answer















    Here's one solution using TikZ which defines a new environment using the framed package. You should preferably compile this with xelatex or lualatex, since it gives the easiest access to a wide range of fonts. I've added code to make it run under pdflatex as well.



    The code has now been updated to allow some flexibility in the formatting of the different components of the quotation, and the environment takes two arguments:



    Environment Syntax




     begin{shadequote}[<alignment>]{<author>}
    text of quote
    end{shadequote}




    Code



    % !TEX TS-program = xeLaTeX

    documentclass[12pt]{article}
    usepackage{ifxetex,ifluatex}
    usepackage{etoolbox}
    usepackage[svgnames]{xcolor}

    usepackage{tikz}

    usepackage{framed}

    % conditional for xetex or luatex
    newififxetexorluatex
    ifxetex
    xetexorluatextrue
    else
    ifluatex
    xetexorluatextrue
    else
    xetexorluatexfalse
    fi
    fi
    %
    ifxetexorluatex%
    usepackage{fontspec}
    usepackage{libertine} % or use setmainfont to choose any font on your system
    newfontfamilyquotefont[Ligatures=TeX]{Linux Libertine O} % selects Libertine as the quote font
    else
    usepackage[utf8]{inputenc}
    usepackage[T1]{fontenc}
    usepackage{libertine} % or any other font package
    newcommand*quotefont{fontfamily{LinuxLibertineT-LF}} % selects Libertine as the quote font
    fi

    newcommand*quotesize{60} % if quote size changes, need a way to make shifts relative
    % Make commands for the quotes
    newcommand*{openquote}
    {tikz[remember picture,overlay,xshift=-4ex,yshift=-2.5ex]
    node (OQ) {quotefontfontsize{quotesize}{quotesize}selectfont``};kern0pt}

    newcommand*{closequote}[1]
    {tikz[remember picture,overlay,xshift=4ex,yshift={#1}]
    node (CQ) {quotefontfontsize{quotesize}{quotesize}selectfont''};}

    % select a colour for the shading
    colorlet{shadecolor}{Azure}

    newcommand*shadedauthorformat{emph} % define format for the author argument

    % Now a command to allow left, right and centre alignment of the author
    newcommand*authoralign[1]{%
    if#1l
    defauthorfill{}defquotefill{hfill}
    else
    if#1r
    defauthorfill{hfill}defquotefill{}
    else
    if#1c
    gdefauthorfill{hfill}defquotefill{hfill}
    elsetypeout{Invalid option}
    fi
    fi
    fi}
    % wrap everything in its own environment which takes one argument (author) and one optional argument
    % specifying the alignment [l, r or c]
    %
    newenvironment{shadequote}[2][l]%
    {authoralign{#1}
    ifblank{#2}
    {defshadequoteauthor{}defyshift{-2ex}defquotefill{hfill}}
    {defshadequoteauthor{parauthorfillshadedauthorformat{#2}}defyshift{2ex}}
    begin{snugshade}begin{quote}openquote}
    {shadequoteauthorquotefillclosequote{yshift}end{quote}end{snugshade}}

    begin{document}

    begin{shadequote}[l]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}[r]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}[c]{Douglas Adams}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    begin{shadequote}{}
    A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.
    end{shadequote}

    end{document}


    In this code, the font for the quotation marks is set independently of the main document font. This is because depending on the main font you choose, the very large quotation marks will not look good; Linux Libertine has pretty quotes that seem appropriate for the purpose. If you want to use this environment with another main document font, remove/change the usepackage{libertine}.



    Sample output



    output of code







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited May 2 '13 at 4:44

























    answered Apr 30 '11 at 0:36









    Alan MunnAlan Munn

    163k28432711




    163k28432711








    • 1





      @Alun: Why do you define quotefont? libertine is already present.

      – Herbert
      Apr 30 '11 at 14:32






    • 1





      @Herbert Because these are decorative elements, it makes sense to define the font for the quotes independent of the document font. For example, if you just use Computer Modern, the big quotes look quite silly; The libertine font has a pretty quote for this purpose, and I would use it with most document fonts.

      – Alan Munn
      Apr 30 '11 at 14:53











    • @Alun: You know, that I know that ... ;-) But then it makes sense to use another text font in your example, if you want to show this behaviour.

      – Herbert
      Apr 30 '11 at 17:32






    • 1





      @Chernoff I'm not sure why this happens, but you can adjust the value of xshift in the closequote macro to 1ex (or similar values) to adjust the positioning of the quote.

      – Alan Munn
      Jun 30 '18 at 16:02








    • 1





      @Chernoff Again, not sure the reason, but you can add vspace{1ex} (or similar value) before the emph in the shadedauthorformat definition.

      – Alan Munn
      Jun 30 '18 at 16:41














    • 1





      @Alun: Why do you define quotefont? libertine is already present.

      – Herbert
      Apr 30 '11 at 14:32






    • 1





      @Herbert Because these are decorative elements, it makes sense to define the font for the quotes independent of the document font. For example, if you just use Computer Modern, the big quotes look quite silly; The libertine font has a pretty quote for this purpose, and I would use it with most document fonts.

      – Alan Munn
      Apr 30 '11 at 14:53











    • @Alun: You know, that I know that ... ;-) But then it makes sense to use another text font in your example, if you want to show this behaviour.

      – Herbert
      Apr 30 '11 at 17:32






    • 1





      @Chernoff I'm not sure why this happens, but you can adjust the value of xshift in the closequote macro to 1ex (or similar values) to adjust the positioning of the quote.

      – Alan Munn
      Jun 30 '18 at 16:02








    • 1





      @Chernoff Again, not sure the reason, but you can add vspace{1ex} (or similar value) before the emph in the shadedauthorformat definition.

      – Alan Munn
      Jun 30 '18 at 16:41








    1




    1





    @Alun: Why do you define quotefont? libertine is already present.

    – Herbert
    Apr 30 '11 at 14:32





    @Alun: Why do you define quotefont? libertine is already present.

    – Herbert
    Apr 30 '11 at 14:32




    1




    1





    @Herbert Because these are decorative elements, it makes sense to define the font for the quotes independent of the document font. For example, if you just use Computer Modern, the big quotes look quite silly; The libertine font has a pretty quote for this purpose, and I would use it with most document fonts.

    – Alan Munn
    Apr 30 '11 at 14:53





    @Herbert Because these are decorative elements, it makes sense to define the font for the quotes independent of the document font. For example, if you just use Computer Modern, the big quotes look quite silly; The libertine font has a pretty quote for this purpose, and I would use it with most document fonts.

    – Alan Munn
    Apr 30 '11 at 14:53













    @Alun: You know, that I know that ... ;-) But then it makes sense to use another text font in your example, if you want to show this behaviour.

    – Herbert
    Apr 30 '11 at 17:32





    @Alun: You know, that I know that ... ;-) But then it makes sense to use another text font in your example, if you want to show this behaviour.

    – Herbert
    Apr 30 '11 at 17:32




    1




    1





    @Chernoff I'm not sure why this happens, but you can adjust the value of xshift in the closequote macro to 1ex (or similar values) to adjust the positioning of the quote.

    – Alan Munn
    Jun 30 '18 at 16:02







    @Chernoff I'm not sure why this happens, but you can adjust the value of xshift in the closequote macro to 1ex (or similar values) to adjust the positioning of the quote.

    – Alan Munn
    Jun 30 '18 at 16:02






    1




    1





    @Chernoff Again, not sure the reason, but you can add vspace{1ex} (or similar value) before the emph in the shadedauthorformat definition.

    – Alan Munn
    Jun 30 '18 at 16:41





    @Chernoff Again, not sure the reason, but you can add vspace{1ex} (or similar value) before the emph in the shadedauthorformat definition.

    – Alan Munn
    Jun 30 '18 at 16:41











    30














    (We just got another question asking for something similar: Quote style like on owni.eu. I wasn't aware of this question when I started to answer that one, but on becoming aware of it decided to post my answer here instead.)



    It's also TikZ-based but slightly different to Alan's as the whole thing ends up in a TikZ node. This does mean that it won't work with page-breaking. One could also adapt the quote marks from Alan's version to make them look a bit better.



    Here's the result:



    fancy quotes



    And here's the code:



    documentclass{article}
    thispagestyle{empty}
    usepackage{lipsum}
    usepackage{tikz}
    usetikzlibrary{backgrounds}
    makeatletter

    tikzset{%
    fancy quotes/.style={
    text width=fq@width pt,
    align=justify,
    inner sep=1em,
    anchor=north west,
    minimum width=linewidth,
    },
    fancy quotes width/.initial={.8linewidth},
    fancy quotes marks/.style={
    scale=8,
    text=white,
    inner sep=0pt,
    },
    fancy quotes opening/.style={
    fancy quotes marks,
    },
    fancy quotes closing/.style={
    fancy quotes marks,
    },
    fancy quotes background/.style={
    show background rectangle,
    inner frame xsep=0pt,
    background rectangle/.style={
    fill=gray!25,
    rounded corners,
    },
    }
    }

    newenvironment{fancyquotes}[1]{%
    noindent
    tikzpicture[fancy quotes background]
    node[fancy quotes opening,anchor=north west] (fq@ul) at (0,0) {``};
    tikz@scan@one@pointpgfutil@firstofone(fq@ul.east)
    pgfmathsetmacro{fq@width}{linewidth - 2*pgf@x}
    node[fancy quotes,#1] (fq@txt) at (fq@ul.north west) bgroup}
    {egroup;
    node[overlay,fancy quotes closing,anchor=east] at (fq@txt.south east) {''};
    endtikzpicture}

    makeatother

    begin{document}
    lipsum[1]

    begin{fancyquotes}
    lipsum[1]
    end{fancyquotes}

    lipsum[1]
    end{document}


    The lipsum package is just to provide some dummy text.






    share|improve this answer


























    • I like this one a lot and have started to use it in my documents. Thanks!

      – adl
      Jan 26 '12 at 16:46











    • This looks seriously good in documents. Thanks!

      – tchakravarty
      Jul 25 '12 at 6:53











    • Just had a request on TeXwelt.de to have the box in twocolumn mode taking up just one column. Basically, s/textwidth/columnwidth/g. Can you add a line explaining and maybe another screenshot?

      – Johannes_B
      Feb 13 '15 at 16:44











    • @Johannes_B Feel free to edit the answer with that change. As this is over three years old, I don't feel able to resurrect it myself.

      – Loop Space
      Feb 14 '15 at 19:34






    • 1





      @Johannes_B @LoopSpace This is great! This creates no spacing between paragraphs within the block quote, however. How can I modify it so that there is normal spacing between paragraphs within the fancyquotes environment? I tried adding setlength{baselineskip}{16pt} and setlength{parskip}{baselineskip} but neither one worked.

      – incandescentman
      Dec 21 '16 at 5:31
















    30














    (We just got another question asking for something similar: Quote style like on owni.eu. I wasn't aware of this question when I started to answer that one, but on becoming aware of it decided to post my answer here instead.)



    It's also TikZ-based but slightly different to Alan's as the whole thing ends up in a TikZ node. This does mean that it won't work with page-breaking. One could also adapt the quote marks from Alan's version to make them look a bit better.



    Here's the result:



    fancy quotes



    And here's the code:



    documentclass{article}
    thispagestyle{empty}
    usepackage{lipsum}
    usepackage{tikz}
    usetikzlibrary{backgrounds}
    makeatletter

    tikzset{%
    fancy quotes/.style={
    text width=fq@width pt,
    align=justify,
    inner sep=1em,
    anchor=north west,
    minimum width=linewidth,
    },
    fancy quotes width/.initial={.8linewidth},
    fancy quotes marks/.style={
    scale=8,
    text=white,
    inner sep=0pt,
    },
    fancy quotes opening/.style={
    fancy quotes marks,
    },
    fancy quotes closing/.style={
    fancy quotes marks,
    },
    fancy quotes background/.style={
    show background rectangle,
    inner frame xsep=0pt,
    background rectangle/.style={
    fill=gray!25,
    rounded corners,
    },
    }
    }

    newenvironment{fancyquotes}[1]{%
    noindent
    tikzpicture[fancy quotes background]
    node[fancy quotes opening,anchor=north west] (fq@ul) at (0,0) {``};
    tikz@scan@one@pointpgfutil@firstofone(fq@ul.east)
    pgfmathsetmacro{fq@width}{linewidth - 2*pgf@x}
    node[fancy quotes,#1] (fq@txt) at (fq@ul.north west) bgroup}
    {egroup;
    node[overlay,fancy quotes closing,anchor=east] at (fq@txt.south east) {''};
    endtikzpicture}

    makeatother

    begin{document}
    lipsum[1]

    begin{fancyquotes}
    lipsum[1]
    end{fancyquotes}

    lipsum[1]
    end{document}


    The lipsum package is just to provide some dummy text.






    share|improve this answer


























    • I like this one a lot and have started to use it in my documents. Thanks!

      – adl
      Jan 26 '12 at 16:46











    • This looks seriously good in documents. Thanks!

      – tchakravarty
      Jul 25 '12 at 6:53











    • Just had a request on TeXwelt.de to have the box in twocolumn mode taking up just one column. Basically, s/textwidth/columnwidth/g. Can you add a line explaining and maybe another screenshot?

      – Johannes_B
      Feb 13 '15 at 16:44











    • @Johannes_B Feel free to edit the answer with that change. As this is over three years old, I don't feel able to resurrect it myself.

      – Loop Space
      Feb 14 '15 at 19:34






    • 1





      @Johannes_B @LoopSpace This is great! This creates no spacing between paragraphs within the block quote, however. How can I modify it so that there is normal spacing between paragraphs within the fancyquotes environment? I tried adding setlength{baselineskip}{16pt} and setlength{parskip}{baselineskip} but neither one worked.

      – incandescentman
      Dec 21 '16 at 5:31














    30












    30








    30







    (We just got another question asking for something similar: Quote style like on owni.eu. I wasn't aware of this question when I started to answer that one, but on becoming aware of it decided to post my answer here instead.)



    It's also TikZ-based but slightly different to Alan's as the whole thing ends up in a TikZ node. This does mean that it won't work with page-breaking. One could also adapt the quote marks from Alan's version to make them look a bit better.



    Here's the result:



    fancy quotes



    And here's the code:



    documentclass{article}
    thispagestyle{empty}
    usepackage{lipsum}
    usepackage{tikz}
    usetikzlibrary{backgrounds}
    makeatletter

    tikzset{%
    fancy quotes/.style={
    text width=fq@width pt,
    align=justify,
    inner sep=1em,
    anchor=north west,
    minimum width=linewidth,
    },
    fancy quotes width/.initial={.8linewidth},
    fancy quotes marks/.style={
    scale=8,
    text=white,
    inner sep=0pt,
    },
    fancy quotes opening/.style={
    fancy quotes marks,
    },
    fancy quotes closing/.style={
    fancy quotes marks,
    },
    fancy quotes background/.style={
    show background rectangle,
    inner frame xsep=0pt,
    background rectangle/.style={
    fill=gray!25,
    rounded corners,
    },
    }
    }

    newenvironment{fancyquotes}[1]{%
    noindent
    tikzpicture[fancy quotes background]
    node[fancy quotes opening,anchor=north west] (fq@ul) at (0,0) {``};
    tikz@scan@one@pointpgfutil@firstofone(fq@ul.east)
    pgfmathsetmacro{fq@width}{linewidth - 2*pgf@x}
    node[fancy quotes,#1] (fq@txt) at (fq@ul.north west) bgroup}
    {egroup;
    node[overlay,fancy quotes closing,anchor=east] at (fq@txt.south east) {''};
    endtikzpicture}

    makeatother

    begin{document}
    lipsum[1]

    begin{fancyquotes}
    lipsum[1]
    end{fancyquotes}

    lipsum[1]
    end{document}


    The lipsum package is just to provide some dummy text.






    share|improve this answer















    (We just got another question asking for something similar: Quote style like on owni.eu. I wasn't aware of this question when I started to answer that one, but on becoming aware of it decided to post my answer here instead.)



    It's also TikZ-based but slightly different to Alan's as the whole thing ends up in a TikZ node. This does mean that it won't work with page-breaking. One could also adapt the quote marks from Alan's version to make them look a bit better.



    Here's the result:



    fancy quotes



    And here's the code:



    documentclass{article}
    thispagestyle{empty}
    usepackage{lipsum}
    usepackage{tikz}
    usetikzlibrary{backgrounds}
    makeatletter

    tikzset{%
    fancy quotes/.style={
    text width=fq@width pt,
    align=justify,
    inner sep=1em,
    anchor=north west,
    minimum width=linewidth,
    },
    fancy quotes width/.initial={.8linewidth},
    fancy quotes marks/.style={
    scale=8,
    text=white,
    inner sep=0pt,
    },
    fancy quotes opening/.style={
    fancy quotes marks,
    },
    fancy quotes closing/.style={
    fancy quotes marks,
    },
    fancy quotes background/.style={
    show background rectangle,
    inner frame xsep=0pt,
    background rectangle/.style={
    fill=gray!25,
    rounded corners,
    },
    }
    }

    newenvironment{fancyquotes}[1]{%
    noindent
    tikzpicture[fancy quotes background]
    node[fancy quotes opening,anchor=north west] (fq@ul) at (0,0) {``};
    tikz@scan@one@pointpgfutil@firstofone(fq@ul.east)
    pgfmathsetmacro{fq@width}{linewidth - 2*pgf@x}
    node[fancy quotes,#1] (fq@txt) at (fq@ul.north west) bgroup}
    {egroup;
    node[overlay,fancy quotes closing,anchor=east] at (fq@txt.south east) {''};
    endtikzpicture}

    makeatother

    begin{document}
    lipsum[1]

    begin{fancyquotes}
    lipsum[1]
    end{fancyquotes}

    lipsum[1]
    end{document}


    The lipsum package is just to provide some dummy text.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Apr 13 '17 at 12:35









    Community

    1




    1










    answered Sep 14 '11 at 11:27









    Loop SpaceLoop Space

    113k29306609




    113k29306609













    • I like this one a lot and have started to use it in my documents. Thanks!

      – adl
      Jan 26 '12 at 16:46











    • This looks seriously good in documents. Thanks!

      – tchakravarty
      Jul 25 '12 at 6:53











    • Just had a request on TeXwelt.de to have the box in twocolumn mode taking up just one column. Basically, s/textwidth/columnwidth/g. Can you add a line explaining and maybe another screenshot?

      – Johannes_B
      Feb 13 '15 at 16:44











    • @Johannes_B Feel free to edit the answer with that change. As this is over three years old, I don't feel able to resurrect it myself.

      – Loop Space
      Feb 14 '15 at 19:34






    • 1





      @Johannes_B @LoopSpace This is great! This creates no spacing between paragraphs within the block quote, however. How can I modify it so that there is normal spacing between paragraphs within the fancyquotes environment? I tried adding setlength{baselineskip}{16pt} and setlength{parskip}{baselineskip} but neither one worked.

      – incandescentman
      Dec 21 '16 at 5:31



















    • I like this one a lot and have started to use it in my documents. Thanks!

      – adl
      Jan 26 '12 at 16:46











    • This looks seriously good in documents. Thanks!

      – tchakravarty
      Jul 25 '12 at 6:53











    • Just had a request on TeXwelt.de to have the box in twocolumn mode taking up just one column. Basically, s/textwidth/columnwidth/g. Can you add a line explaining and maybe another screenshot?

      – Johannes_B
      Feb 13 '15 at 16:44











    • @Johannes_B Feel free to edit the answer with that change. As this is over three years old, I don't feel able to resurrect it myself.

      – Loop Space
      Feb 14 '15 at 19:34






    • 1





      @Johannes_B @LoopSpace This is great! This creates no spacing between paragraphs within the block quote, however. How can I modify it so that there is normal spacing between paragraphs within the fancyquotes environment? I tried adding setlength{baselineskip}{16pt} and setlength{parskip}{baselineskip} but neither one worked.

      – incandescentman
      Dec 21 '16 at 5:31

















    I like this one a lot and have started to use it in my documents. Thanks!

    – adl
    Jan 26 '12 at 16:46





    I like this one a lot and have started to use it in my documents. Thanks!

    – adl
    Jan 26 '12 at 16:46













    This looks seriously good in documents. Thanks!

    – tchakravarty
    Jul 25 '12 at 6:53





    This looks seriously good in documents. Thanks!

    – tchakravarty
    Jul 25 '12 at 6:53













    Just had a request on TeXwelt.de to have the box in twocolumn mode taking up just one column. Basically, s/textwidth/columnwidth/g. Can you add a line explaining and maybe another screenshot?

    – Johannes_B
    Feb 13 '15 at 16:44





    Just had a request on TeXwelt.de to have the box in twocolumn mode taking up just one column. Basically, s/textwidth/columnwidth/g. Can you add a line explaining and maybe another screenshot?

    – Johannes_B
    Feb 13 '15 at 16:44













    @Johannes_B Feel free to edit the answer with that change. As this is over three years old, I don't feel able to resurrect it myself.

    – Loop Space
    Feb 14 '15 at 19:34





    @Johannes_B Feel free to edit the answer with that change. As this is over three years old, I don't feel able to resurrect it myself.

    – Loop Space
    Feb 14 '15 at 19:34




    1




    1





    @Johannes_B @LoopSpace This is great! This creates no spacing between paragraphs within the block quote, however. How can I modify it so that there is normal spacing between paragraphs within the fancyquotes environment? I tried adding setlength{baselineskip}{16pt} and setlength{parskip}{baselineskip} but neither one worked.

    – incandescentman
    Dec 21 '16 at 5:31





    @Johannes_B @LoopSpace This is great! This creates no spacing between paragraphs within the block quote, however. How can I modify it so that there is normal spacing between paragraphs within the fancyquotes environment? I tried adding setlength{baselineskip}{16pt} and setlength{parskip}{baselineskip} but neither one worked.

    – incandescentman
    Dec 21 '16 at 5:31











    25














    documentclass[12pt]{article}
    usepackage[T1]{fontenc}
    usepackage{libertine}
    usepackage{graphicx}
    usepackage[svgnames]{xcolor}
    usepackage{framed}

    newcommand*openquote{makebox(25,-22){scalebox{5}{``}}}
    newcommand*closequote{makebox(25,-22){scalebox{5}{''}}}
    colorlet{shadecolor}{Azure}

    makeatletter
    newifif@right
    defshadequote{@righttrueshadequote@i}
    defshadequote@i{begin{snugshade}begin{quote}openquote}
    defendshadequote{%
    if@righthfillficlosequoteend{quote}end{snugshade}}
    @namedef{shadequote*}{@rightfalseshadequote@i}
    @namedef{endshadequote*}{endshadequote}
    makeatother
    begin{document}

    begin{shadequote}
    Some quoted words
    end{shadequote}

    begin{shadequote*}
    Some quoted words
    end{shadequote*}

    begin{shadequote}
    A common mistake that people make when trying to design something completely
    foolproof is to underestimate the ingenuity of complete fools.paremph{Douglas Adams}
    end{shadequote}

    end{document}


    enter image description here






    share|improve this answer
























    • Using your code in a minimal example works great, but when I copy it to a large document I work on I get the error "You can't use 'spacefactor' in vertical mode". Do you have any idea how to resolve this problem? Thanks!

      – lumbric
      Mar 21 '12 at 22:39











    • you'd forgotten the makeatletter ... makeatother

      – Herbert
      Mar 22 '12 at 11:09











    • Thanks a lot! It took me quite a while to figure out what happend, but you were right, I messed up the makeatletter and makeatother commands. This happend after exporting some code from LyX, at this step LyX put some additional makeatletter and makeatother around my custom code.

      – lumbric
      Mar 26 '12 at 21:22











    • If there is a line break before the closing quote, it looks a bit strange. I don't have a real good suggestion, but I think placing simple a nolinebreak makes things a bit better. This means one would have to replace the line if@righthfillficlosequoteend{quote}end{snugshade}} by nolinebreakif@righthfillficlosequoteend{quote}end{snugshade}}. This is a comment and not an edit, because I'm unsure if it's the best solution.

      – lumbric
      Mar 28 '12 at 20:28











    • I'm trying to use this in my thesis which is based on classicthesis but the problem is, it mess with all my fonts and change them. What am I doing wrong here? The same holds for @Herbert 's answer.

      – Pouya
      Sep 25 '13 at 15:31
















    25














    documentclass[12pt]{article}
    usepackage[T1]{fontenc}
    usepackage{libertine}
    usepackage{graphicx}
    usepackage[svgnames]{xcolor}
    usepackage{framed}

    newcommand*openquote{makebox(25,-22){scalebox{5}{``}}}
    newcommand*closequote{makebox(25,-22){scalebox{5}{''}}}
    colorlet{shadecolor}{Azure}

    makeatletter
    newifif@right
    defshadequote{@righttrueshadequote@i}
    defshadequote@i{begin{snugshade}begin{quote}openquote}
    defendshadequote{%
    if@righthfillficlosequoteend{quote}end{snugshade}}
    @namedef{shadequote*}{@rightfalseshadequote@i}
    @namedef{endshadequote*}{endshadequote}
    makeatother
    begin{document}

    begin{shadequote}
    Some quoted words
    end{shadequote}

    begin{shadequote*}
    Some quoted words
    end{shadequote*}

    begin{shadequote}
    A common mistake that people make when trying to design something completely
    foolproof is to underestimate the ingenuity of complete fools.paremph{Douglas Adams}
    end{shadequote}

    end{document}


    enter image description here






    share|improve this answer
























    • Using your code in a minimal example works great, but when I copy it to a large document I work on I get the error "You can't use 'spacefactor' in vertical mode". Do you have any idea how to resolve this problem? Thanks!

      – lumbric
      Mar 21 '12 at 22:39











    • you'd forgotten the makeatletter ... makeatother

      – Herbert
      Mar 22 '12 at 11:09











    • Thanks a lot! It took me quite a while to figure out what happend, but you were right, I messed up the makeatletter and makeatother commands. This happend after exporting some code from LyX, at this step LyX put some additional makeatletter and makeatother around my custom code.

      – lumbric
      Mar 26 '12 at 21:22











    • If there is a line break before the closing quote, it looks a bit strange. I don't have a real good suggestion, but I think placing simple a nolinebreak makes things a bit better. This means one would have to replace the line if@righthfillficlosequoteend{quote}end{snugshade}} by nolinebreakif@righthfillficlosequoteend{quote}end{snugshade}}. This is a comment and not an edit, because I'm unsure if it's the best solution.

      – lumbric
      Mar 28 '12 at 20:28











    • I'm trying to use this in my thesis which is based on classicthesis but the problem is, it mess with all my fonts and change them. What am I doing wrong here? The same holds for @Herbert 's answer.

      – Pouya
      Sep 25 '13 at 15:31














    25












    25








    25







    documentclass[12pt]{article}
    usepackage[T1]{fontenc}
    usepackage{libertine}
    usepackage{graphicx}
    usepackage[svgnames]{xcolor}
    usepackage{framed}

    newcommand*openquote{makebox(25,-22){scalebox{5}{``}}}
    newcommand*closequote{makebox(25,-22){scalebox{5}{''}}}
    colorlet{shadecolor}{Azure}

    makeatletter
    newifif@right
    defshadequote{@righttrueshadequote@i}
    defshadequote@i{begin{snugshade}begin{quote}openquote}
    defendshadequote{%
    if@righthfillficlosequoteend{quote}end{snugshade}}
    @namedef{shadequote*}{@rightfalseshadequote@i}
    @namedef{endshadequote*}{endshadequote}
    makeatother
    begin{document}

    begin{shadequote}
    Some quoted words
    end{shadequote}

    begin{shadequote*}
    Some quoted words
    end{shadequote*}

    begin{shadequote}
    A common mistake that people make when trying to design something completely
    foolproof is to underestimate the ingenuity of complete fools.paremph{Douglas Adams}
    end{shadequote}

    end{document}


    enter image description here






    share|improve this answer













    documentclass[12pt]{article}
    usepackage[T1]{fontenc}
    usepackage{libertine}
    usepackage{graphicx}
    usepackage[svgnames]{xcolor}
    usepackage{framed}

    newcommand*openquote{makebox(25,-22){scalebox{5}{``}}}
    newcommand*closequote{makebox(25,-22){scalebox{5}{''}}}
    colorlet{shadecolor}{Azure}

    makeatletter
    newifif@right
    defshadequote{@righttrueshadequote@i}
    defshadequote@i{begin{snugshade}begin{quote}openquote}
    defendshadequote{%
    if@righthfillficlosequoteend{quote}end{snugshade}}
    @namedef{shadequote*}{@rightfalseshadequote@i}
    @namedef{endshadequote*}{endshadequote}
    makeatother
    begin{document}

    begin{shadequote}
    Some quoted words
    end{shadequote}

    begin{shadequote*}
    Some quoted words
    end{shadequote*}

    begin{shadequote}
    A common mistake that people make when trying to design something completely
    foolproof is to underestimate the ingenuity of complete fools.paremph{Douglas Adams}
    end{shadequote}

    end{document}


    enter image description here







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Apr 30 '11 at 6:01









    HerbertHerbert

    276k25419732




    276k25419732













    • Using your code in a minimal example works great, but when I copy it to a large document I work on I get the error "You can't use 'spacefactor' in vertical mode". Do you have any idea how to resolve this problem? Thanks!

      – lumbric
      Mar 21 '12 at 22:39











    • you'd forgotten the makeatletter ... makeatother

      – Herbert
      Mar 22 '12 at 11:09











    • Thanks a lot! It took me quite a while to figure out what happend, but you were right, I messed up the makeatletter and makeatother commands. This happend after exporting some code from LyX, at this step LyX put some additional makeatletter and makeatother around my custom code.

      – lumbric
      Mar 26 '12 at 21:22











    • If there is a line break before the closing quote, it looks a bit strange. I don't have a real good suggestion, but I think placing simple a nolinebreak makes things a bit better. This means one would have to replace the line if@righthfillficlosequoteend{quote}end{snugshade}} by nolinebreakif@righthfillficlosequoteend{quote}end{snugshade}}. This is a comment and not an edit, because I'm unsure if it's the best solution.

      – lumbric
      Mar 28 '12 at 20:28











    • I'm trying to use this in my thesis which is based on classicthesis but the problem is, it mess with all my fonts and change them. What am I doing wrong here? The same holds for @Herbert 's answer.

      – Pouya
      Sep 25 '13 at 15:31



















    • Using your code in a minimal example works great, but when I copy it to a large document I work on I get the error "You can't use 'spacefactor' in vertical mode". Do you have any idea how to resolve this problem? Thanks!

      – lumbric
      Mar 21 '12 at 22:39











    • you'd forgotten the makeatletter ... makeatother

      – Herbert
      Mar 22 '12 at 11:09











    • Thanks a lot! It took me quite a while to figure out what happend, but you were right, I messed up the makeatletter and makeatother commands. This happend after exporting some code from LyX, at this step LyX put some additional makeatletter and makeatother around my custom code.

      – lumbric
      Mar 26 '12 at 21:22











    • If there is a line break before the closing quote, it looks a bit strange. I don't have a real good suggestion, but I think placing simple a nolinebreak makes things a bit better. This means one would have to replace the line if@righthfillficlosequoteend{quote}end{snugshade}} by nolinebreakif@righthfillficlosequoteend{quote}end{snugshade}}. This is a comment and not an edit, because I'm unsure if it's the best solution.

      – lumbric
      Mar 28 '12 at 20:28











    • I'm trying to use this in my thesis which is based on classicthesis but the problem is, it mess with all my fonts and change them. What am I doing wrong here? The same holds for @Herbert 's answer.

      – Pouya
      Sep 25 '13 at 15:31

















    Using your code in a minimal example works great, but when I copy it to a large document I work on I get the error "You can't use 'spacefactor' in vertical mode". Do you have any idea how to resolve this problem? Thanks!

    – lumbric
    Mar 21 '12 at 22:39





    Using your code in a minimal example works great, but when I copy it to a large document I work on I get the error "You can't use 'spacefactor' in vertical mode". Do you have any idea how to resolve this problem? Thanks!

    – lumbric
    Mar 21 '12 at 22:39













    you'd forgotten the makeatletter ... makeatother

    – Herbert
    Mar 22 '12 at 11:09





    you'd forgotten the makeatletter ... makeatother

    – Herbert
    Mar 22 '12 at 11:09













    Thanks a lot! It took me quite a while to figure out what happend, but you were right, I messed up the makeatletter and makeatother commands. This happend after exporting some code from LyX, at this step LyX put some additional makeatletter and makeatother around my custom code.

    – lumbric
    Mar 26 '12 at 21:22





    Thanks a lot! It took me quite a while to figure out what happend, but you were right, I messed up the makeatletter and makeatother commands. This happend after exporting some code from LyX, at this step LyX put some additional makeatletter and makeatother around my custom code.

    – lumbric
    Mar 26 '12 at 21:22













    If there is a line break before the closing quote, it looks a bit strange. I don't have a real good suggestion, but I think placing simple a nolinebreak makes things a bit better. This means one would have to replace the line if@righthfillficlosequoteend{quote}end{snugshade}} by nolinebreakif@righthfillficlosequoteend{quote}end{snugshade}}. This is a comment and not an edit, because I'm unsure if it's the best solution.

    – lumbric
    Mar 28 '12 at 20:28





    If there is a line break before the closing quote, it looks a bit strange. I don't have a real good suggestion, but I think placing simple a nolinebreak makes things a bit better. This means one would have to replace the line if@righthfillficlosequoteend{quote}end{snugshade}} by nolinebreakif@righthfillficlosequoteend{quote}end{snugshade}}. This is a comment and not an edit, because I'm unsure if it's the best solution.

    – lumbric
    Mar 28 '12 at 20:28













    I'm trying to use this in my thesis which is based on classicthesis but the problem is, it mess with all my fonts and change them. What am I doing wrong here? The same holds for @Herbert 's answer.

    – Pouya
    Sep 25 '13 at 15:31





    I'm trying to use this in my thesis which is based on classicthesis but the problem is, it mess with all my fonts and change them. What am I doing wrong here? The same holds for @Herbert 's answer.

    – Pouya
    Sep 25 '13 at 15:31











    4














    Had I known about this question, I would not have written cfr-dquote. However, I didn't, so I did. Here's a lightly modified version of my package for public consumption or rejection.



    The package defines a command, dquote[<dimension>]{<long text>}{<short text} which is intended to be used so that <dimension> is the width desired, <long text> is the quotation and <short text> is the attribution.



    The package is based on TikZ and the appearance can be customised using the usual key-value interface. For example, I've never used this with a coloured background to the quotation, but that is easy to achieve by simply altering quote style.



    For example,



    documentclass[a4paper,british]{article}
    usepackage[utf8]{inputenc}
    usepackage{geometry,babel,csquotes}
    usepackage{cfr-lm}
    usepackage{cfr-dquote}
    MakeAutoQuote{‘}{’}
    MakeAutoQuote*{“}{”}
    begin{document}
    tikzset{%
    dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
    dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
    dquote={
    quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
    marks={
    size=Huge,
    scale=4,
    color=blue!50!darkgray,
    opacity=.5,
    },
    },
    }%
    dquote{%
    ‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

    ‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

    ‘Exactly so,’ said Alice.

    ‘Then you should say what you mean,’ the March Hare went on.

    ‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

    ‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

    ‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

    ‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
    }{Lewis Carroll}

    end{document}


    produces the following output



    Alice quote



    The package consists of two files, cfr-dquote.sty and cfr-dquote.tex. In theory, the latter can be compiled alone, since it uses the standalone class, but don't be tempted to use it this way - that's just to make tweaks and debugging easier.



    Complete code:



    begin{filecontents}{cfr-dquote.sty}
    % !TEX encoding = UTF-8 Unicode
    % cfr-dquote.sty
    NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
    [1994/12/01]% LaTeX date must December 1994 or later
    RequirePackage{svn-prov}
    ProvidesPackageSVN{$Id: cfr-dquote.sty 7799 2018-07-20 01:52:15Z cfr $}
    RequirePackage{xcolor,pifont,standalone,xparse,tikz}
    usetikzlibrary{calc,positioning,backgrounds}
    IfFileExists{tikzlibrarypicfix.code.tex}{usetikzlibrary{picfix}}{}
    IfFileExists{tikzlibrarycfrexternal.code.tex}{usetikzlibrary{cfrexternal}}{usetikzlibrary{external}}
    NewDocumentCommanddquotetextfonthook{}{normalfontlarge}
    NewDocumentCommanddquoteattribfonthook{}{normalfontnormalsize}
    AtBeginDocument{%
    newlengthcfrdquoteparskipsetlengthcfrdquoteparskip{parskip}%
    newlengthcfrdquoteparindentsetlengthcfrdquoteparindent{parindent}}
    % BEGIN defaults
    tikzset{%
    dquote text font/.code={%
    RenewDocumentCommanddquotetextfonthook{}{#1}
    },
    dquote attrib font/.code={%
    RenewDocumentCommanddquoteattribfonthook{}{#1}
    },
    dquote/.code={%
    tikzset{%
    /cfr-dquote/.cd,
    #1
    }
    },
    /cfr-dquote/quote style/.style={align=justify, color=blue!50!black},
    /cfr-dquote/quote/.style={/cfr-dquote/quote style, font=dquotetextfonthook},
    /cfr-dquote/attrib/.style={/cfr-dquote/quote style, font=dquoteattribfonthook},
    /cfr-dquote/quote mark/.style={color=cfrdquotecolor, opacity=cfrdquoteopacity, font=cfrdquotesize, scale=cfrdquotescale},
    /cfr-dquote/.cd,
    width/.store in=cfrdquotewidth,
    text/.store in=cfrdquotetext,
    attribution/.store in=cfrdquoteattrib,
    width=120mm,
    text={Does dim o gwbl yn y fan hon!},
    attribution={Neb},
    marks/.code={%
    tikzset{%
    /cfr-dquote/quote marks/.cd,
    #1
    }
    },
    quote marks/size/.store in=cfrdquotesize,
    quote marks/scale/.store in=cfrdquotescale,
    quote marks/color/.store in=cfrdquotecolor,
    quote marks/opacity/.store in=cfrdquoteopacity,
    marks={
    size=Huge,
    scale=4,
    color=blue!50!cyan,
    opacity=.25,
    },
    }
    % END defaults
    % BEGIN defn dquote
    NewDocumentCommanddquote { O {120mm} +m m }{%
    tikzset{%
    external/export next=false,
    /cfr-dquote/.cd,
    width={#1},
    text={setlengthparskip{cfrdquoteparskip}setlengthparindent{cfrdquoteparindent}#2},
    attribution={#3}
    }%
    input{cfr-dquote}%
    }
    % END defn dquote
    endinput
    end{filecontents}
    begin{filecontents}{cfr-dquote.tex}
    % !TEX TS-program = pdflatex
    % !TEX encoding = UTF-8 Unicode
    % arara: pdflatex: { synctex: true }
    %BEGIN preamble
    csname standaloneignoreendcsname
    pdfminorversion=7
    PassOptionsToPackage{rgb}{xcolor}
    RequirePackage{svn-prov}
    ProvidesFileSVN{$Id: cfr-dquote.tex 7800 2018-07-20 01:58:28Z cfr $}
    documentclass[tikz,12pt]{standalone}
    usetikzlibrary{calc,positioning,backgrounds}
    usepackage{pifont,biblatex}
    % END preamble

    begin{document}%
    begin{tikzpicture}[node distance=0pt]
    node (quotation) [/cfr-dquote/quote, text width=cfrdquotewidth] {cfrdquotetext};
    node (attrib) [/cfr-dquote/attrib, below=of quotation, text width=cfrdquotewidth] {cfrdquoteattrib};
    node (qlhs) [left=of quotation.north west, /cfr-dquote/quote mark, xshift=.25em, yshift=.25em, anchor=north east] {ding{123}};
    node (qrhs) [right=of quotation.south east, /cfr-dquote/quote mark, xshift=-.25em, yshift=-.75em, anchor=south west] {ding{124}};
    pgfresetboundingbox
    useasboundingbox (attrib.south -| qlhs.west) rectangle (quotation.north -| qrhs.east);
    end{tikzpicture}%
    end{document}
    end{filecontents}


    documentclass[a4paper,british]{article}
    usepackage[utf8]{inputenc}
    usepackage{geometry,babel,csquotes}
    usepackage{cfr-lm}
    usepackage{cfr-dquote}
    MakeAutoQuote{‘}{’}
    MakeAutoQuote*{“}{”}
    begin{document}
    tikzset{%
    dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
    dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
    dquote={
    quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
    marks={
    size=Huge,
    scale=4,
    color=blue!50!darkgray,
    opacity=.5,
    },
    },
    }%
    dquote{%
    ‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

    ‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

    ‘Exactly so,’ said Alice.

    ‘Then you should say what you mean,’ the March Hare went on.

    ‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

    ‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

    ‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

    ‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
    }{Lewis Carroll}

    end{document}





    share|improve this answer




























      4














      Had I known about this question, I would not have written cfr-dquote. However, I didn't, so I did. Here's a lightly modified version of my package for public consumption or rejection.



      The package defines a command, dquote[<dimension>]{<long text>}{<short text} which is intended to be used so that <dimension> is the width desired, <long text> is the quotation and <short text> is the attribution.



      The package is based on TikZ and the appearance can be customised using the usual key-value interface. For example, I've never used this with a coloured background to the quotation, but that is easy to achieve by simply altering quote style.



      For example,



      documentclass[a4paper,british]{article}
      usepackage[utf8]{inputenc}
      usepackage{geometry,babel,csquotes}
      usepackage{cfr-lm}
      usepackage{cfr-dquote}
      MakeAutoQuote{‘}{’}
      MakeAutoQuote*{“}{”}
      begin{document}
      tikzset{%
      dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
      dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
      dquote={
      quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
      marks={
      size=Huge,
      scale=4,
      color=blue!50!darkgray,
      opacity=.5,
      },
      },
      }%
      dquote{%
      ‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

      ‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

      ‘Exactly so,’ said Alice.

      ‘Then you should say what you mean,’ the March Hare went on.

      ‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

      ‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

      ‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

      ‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
      }{Lewis Carroll}

      end{document}


      produces the following output



      Alice quote



      The package consists of two files, cfr-dquote.sty and cfr-dquote.tex. In theory, the latter can be compiled alone, since it uses the standalone class, but don't be tempted to use it this way - that's just to make tweaks and debugging easier.



      Complete code:



      begin{filecontents}{cfr-dquote.sty}
      % !TEX encoding = UTF-8 Unicode
      % cfr-dquote.sty
      NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
      [1994/12/01]% LaTeX date must December 1994 or later
      RequirePackage{svn-prov}
      ProvidesPackageSVN{$Id: cfr-dquote.sty 7799 2018-07-20 01:52:15Z cfr $}
      RequirePackage{xcolor,pifont,standalone,xparse,tikz}
      usetikzlibrary{calc,positioning,backgrounds}
      IfFileExists{tikzlibrarypicfix.code.tex}{usetikzlibrary{picfix}}{}
      IfFileExists{tikzlibrarycfrexternal.code.tex}{usetikzlibrary{cfrexternal}}{usetikzlibrary{external}}
      NewDocumentCommanddquotetextfonthook{}{normalfontlarge}
      NewDocumentCommanddquoteattribfonthook{}{normalfontnormalsize}
      AtBeginDocument{%
      newlengthcfrdquoteparskipsetlengthcfrdquoteparskip{parskip}%
      newlengthcfrdquoteparindentsetlengthcfrdquoteparindent{parindent}}
      % BEGIN defaults
      tikzset{%
      dquote text font/.code={%
      RenewDocumentCommanddquotetextfonthook{}{#1}
      },
      dquote attrib font/.code={%
      RenewDocumentCommanddquoteattribfonthook{}{#1}
      },
      dquote/.code={%
      tikzset{%
      /cfr-dquote/.cd,
      #1
      }
      },
      /cfr-dquote/quote style/.style={align=justify, color=blue!50!black},
      /cfr-dquote/quote/.style={/cfr-dquote/quote style, font=dquotetextfonthook},
      /cfr-dquote/attrib/.style={/cfr-dquote/quote style, font=dquoteattribfonthook},
      /cfr-dquote/quote mark/.style={color=cfrdquotecolor, opacity=cfrdquoteopacity, font=cfrdquotesize, scale=cfrdquotescale},
      /cfr-dquote/.cd,
      width/.store in=cfrdquotewidth,
      text/.store in=cfrdquotetext,
      attribution/.store in=cfrdquoteattrib,
      width=120mm,
      text={Does dim o gwbl yn y fan hon!},
      attribution={Neb},
      marks/.code={%
      tikzset{%
      /cfr-dquote/quote marks/.cd,
      #1
      }
      },
      quote marks/size/.store in=cfrdquotesize,
      quote marks/scale/.store in=cfrdquotescale,
      quote marks/color/.store in=cfrdquotecolor,
      quote marks/opacity/.store in=cfrdquoteopacity,
      marks={
      size=Huge,
      scale=4,
      color=blue!50!cyan,
      opacity=.25,
      },
      }
      % END defaults
      % BEGIN defn dquote
      NewDocumentCommanddquote { O {120mm} +m m }{%
      tikzset{%
      external/export next=false,
      /cfr-dquote/.cd,
      width={#1},
      text={setlengthparskip{cfrdquoteparskip}setlengthparindent{cfrdquoteparindent}#2},
      attribution={#3}
      }%
      input{cfr-dquote}%
      }
      % END defn dquote
      endinput
      end{filecontents}
      begin{filecontents}{cfr-dquote.tex}
      % !TEX TS-program = pdflatex
      % !TEX encoding = UTF-8 Unicode
      % arara: pdflatex: { synctex: true }
      %BEGIN preamble
      csname standaloneignoreendcsname
      pdfminorversion=7
      PassOptionsToPackage{rgb}{xcolor}
      RequirePackage{svn-prov}
      ProvidesFileSVN{$Id: cfr-dquote.tex 7800 2018-07-20 01:58:28Z cfr $}
      documentclass[tikz,12pt]{standalone}
      usetikzlibrary{calc,positioning,backgrounds}
      usepackage{pifont,biblatex}
      % END preamble

      begin{document}%
      begin{tikzpicture}[node distance=0pt]
      node (quotation) [/cfr-dquote/quote, text width=cfrdquotewidth] {cfrdquotetext};
      node (attrib) [/cfr-dquote/attrib, below=of quotation, text width=cfrdquotewidth] {cfrdquoteattrib};
      node (qlhs) [left=of quotation.north west, /cfr-dquote/quote mark, xshift=.25em, yshift=.25em, anchor=north east] {ding{123}};
      node (qrhs) [right=of quotation.south east, /cfr-dquote/quote mark, xshift=-.25em, yshift=-.75em, anchor=south west] {ding{124}};
      pgfresetboundingbox
      useasboundingbox (attrib.south -| qlhs.west) rectangle (quotation.north -| qrhs.east);
      end{tikzpicture}%
      end{document}
      end{filecontents}


      documentclass[a4paper,british]{article}
      usepackage[utf8]{inputenc}
      usepackage{geometry,babel,csquotes}
      usepackage{cfr-lm}
      usepackage{cfr-dquote}
      MakeAutoQuote{‘}{’}
      MakeAutoQuote*{“}{”}
      begin{document}
      tikzset{%
      dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
      dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
      dquote={
      quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
      marks={
      size=Huge,
      scale=4,
      color=blue!50!darkgray,
      opacity=.5,
      },
      },
      }%
      dquote{%
      ‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

      ‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

      ‘Exactly so,’ said Alice.

      ‘Then you should say what you mean,’ the March Hare went on.

      ‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

      ‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

      ‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

      ‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
      }{Lewis Carroll}

      end{document}





      share|improve this answer


























        4












        4








        4







        Had I known about this question, I would not have written cfr-dquote. However, I didn't, so I did. Here's a lightly modified version of my package for public consumption or rejection.



        The package defines a command, dquote[<dimension>]{<long text>}{<short text} which is intended to be used so that <dimension> is the width desired, <long text> is the quotation and <short text> is the attribution.



        The package is based on TikZ and the appearance can be customised using the usual key-value interface. For example, I've never used this with a coloured background to the quotation, but that is easy to achieve by simply altering quote style.



        For example,



        documentclass[a4paper,british]{article}
        usepackage[utf8]{inputenc}
        usepackage{geometry,babel,csquotes}
        usepackage{cfr-lm}
        usepackage{cfr-dquote}
        MakeAutoQuote{‘}{’}
        MakeAutoQuote*{“}{”}
        begin{document}
        tikzset{%
        dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
        dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
        dquote={
        quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
        marks={
        size=Huge,
        scale=4,
        color=blue!50!darkgray,
        opacity=.5,
        },
        },
        }%
        dquote{%
        ‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

        ‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

        ‘Exactly so,’ said Alice.

        ‘Then you should say what you mean,’ the March Hare went on.

        ‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

        ‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

        ‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

        ‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
        }{Lewis Carroll}

        end{document}


        produces the following output



        Alice quote



        The package consists of two files, cfr-dquote.sty and cfr-dquote.tex. In theory, the latter can be compiled alone, since it uses the standalone class, but don't be tempted to use it this way - that's just to make tweaks and debugging easier.



        Complete code:



        begin{filecontents}{cfr-dquote.sty}
        % !TEX encoding = UTF-8 Unicode
        % cfr-dquote.sty
        NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
        [1994/12/01]% LaTeX date must December 1994 or later
        RequirePackage{svn-prov}
        ProvidesPackageSVN{$Id: cfr-dquote.sty 7799 2018-07-20 01:52:15Z cfr $}
        RequirePackage{xcolor,pifont,standalone,xparse,tikz}
        usetikzlibrary{calc,positioning,backgrounds}
        IfFileExists{tikzlibrarypicfix.code.tex}{usetikzlibrary{picfix}}{}
        IfFileExists{tikzlibrarycfrexternal.code.tex}{usetikzlibrary{cfrexternal}}{usetikzlibrary{external}}
        NewDocumentCommanddquotetextfonthook{}{normalfontlarge}
        NewDocumentCommanddquoteattribfonthook{}{normalfontnormalsize}
        AtBeginDocument{%
        newlengthcfrdquoteparskipsetlengthcfrdquoteparskip{parskip}%
        newlengthcfrdquoteparindentsetlengthcfrdquoteparindent{parindent}}
        % BEGIN defaults
        tikzset{%
        dquote text font/.code={%
        RenewDocumentCommanddquotetextfonthook{}{#1}
        },
        dquote attrib font/.code={%
        RenewDocumentCommanddquoteattribfonthook{}{#1}
        },
        dquote/.code={%
        tikzset{%
        /cfr-dquote/.cd,
        #1
        }
        },
        /cfr-dquote/quote style/.style={align=justify, color=blue!50!black},
        /cfr-dquote/quote/.style={/cfr-dquote/quote style, font=dquotetextfonthook},
        /cfr-dquote/attrib/.style={/cfr-dquote/quote style, font=dquoteattribfonthook},
        /cfr-dquote/quote mark/.style={color=cfrdquotecolor, opacity=cfrdquoteopacity, font=cfrdquotesize, scale=cfrdquotescale},
        /cfr-dquote/.cd,
        width/.store in=cfrdquotewidth,
        text/.store in=cfrdquotetext,
        attribution/.store in=cfrdquoteattrib,
        width=120mm,
        text={Does dim o gwbl yn y fan hon!},
        attribution={Neb},
        marks/.code={%
        tikzset{%
        /cfr-dquote/quote marks/.cd,
        #1
        }
        },
        quote marks/size/.store in=cfrdquotesize,
        quote marks/scale/.store in=cfrdquotescale,
        quote marks/color/.store in=cfrdquotecolor,
        quote marks/opacity/.store in=cfrdquoteopacity,
        marks={
        size=Huge,
        scale=4,
        color=blue!50!cyan,
        opacity=.25,
        },
        }
        % END defaults
        % BEGIN defn dquote
        NewDocumentCommanddquote { O {120mm} +m m }{%
        tikzset{%
        external/export next=false,
        /cfr-dquote/.cd,
        width={#1},
        text={setlengthparskip{cfrdquoteparskip}setlengthparindent{cfrdquoteparindent}#2},
        attribution={#3}
        }%
        input{cfr-dquote}%
        }
        % END defn dquote
        endinput
        end{filecontents}
        begin{filecontents}{cfr-dquote.tex}
        % !TEX TS-program = pdflatex
        % !TEX encoding = UTF-8 Unicode
        % arara: pdflatex: { synctex: true }
        %BEGIN preamble
        csname standaloneignoreendcsname
        pdfminorversion=7
        PassOptionsToPackage{rgb}{xcolor}
        RequirePackage{svn-prov}
        ProvidesFileSVN{$Id: cfr-dquote.tex 7800 2018-07-20 01:58:28Z cfr $}
        documentclass[tikz,12pt]{standalone}
        usetikzlibrary{calc,positioning,backgrounds}
        usepackage{pifont,biblatex}
        % END preamble

        begin{document}%
        begin{tikzpicture}[node distance=0pt]
        node (quotation) [/cfr-dquote/quote, text width=cfrdquotewidth] {cfrdquotetext};
        node (attrib) [/cfr-dquote/attrib, below=of quotation, text width=cfrdquotewidth] {cfrdquoteattrib};
        node (qlhs) [left=of quotation.north west, /cfr-dquote/quote mark, xshift=.25em, yshift=.25em, anchor=north east] {ding{123}};
        node (qrhs) [right=of quotation.south east, /cfr-dquote/quote mark, xshift=-.25em, yshift=-.75em, anchor=south west] {ding{124}};
        pgfresetboundingbox
        useasboundingbox (attrib.south -| qlhs.west) rectangle (quotation.north -| qrhs.east);
        end{tikzpicture}%
        end{document}
        end{filecontents}


        documentclass[a4paper,british]{article}
        usepackage[utf8]{inputenc}
        usepackage{geometry,babel,csquotes}
        usepackage{cfr-lm}
        usepackage{cfr-dquote}
        MakeAutoQuote{‘}{’}
        MakeAutoQuote*{“}{”}
        begin{document}
        tikzset{%
        dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
        dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
        dquote={
        quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
        marks={
        size=Huge,
        scale=4,
        color=blue!50!darkgray,
        opacity=.5,
        },
        },
        }%
        dquote{%
        ‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

        ‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

        ‘Exactly so,’ said Alice.

        ‘Then you should say what you mean,’ the March Hare went on.

        ‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

        ‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

        ‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

        ‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
        }{Lewis Carroll}

        end{document}





        share|improve this answer













        Had I known about this question, I would not have written cfr-dquote. However, I didn't, so I did. Here's a lightly modified version of my package for public consumption or rejection.



        The package defines a command, dquote[<dimension>]{<long text>}{<short text} which is intended to be used so that <dimension> is the width desired, <long text> is the quotation and <short text> is the attribution.



        The package is based on TikZ and the appearance can be customised using the usual key-value interface. For example, I've never used this with a coloured background to the quotation, but that is easy to achieve by simply altering quote style.



        For example,



        documentclass[a4paper,british]{article}
        usepackage[utf8]{inputenc}
        usepackage{geometry,babel,csquotes}
        usepackage{cfr-lm}
        usepackage{cfr-dquote}
        MakeAutoQuote{‘}{’}
        MakeAutoQuote*{“}{”}
        begin{document}
        tikzset{%
        dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
        dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
        dquote={
        quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
        marks={
        size=Huge,
        scale=4,
        color=blue!50!darkgray,
        opacity=.5,
        },
        },
        }%
        dquote{%
        ‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

        ‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

        ‘Exactly so,’ said Alice.

        ‘Then you should say what you mean,’ the March Hare went on.

        ‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

        ‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

        ‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

        ‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
        }{Lewis Carroll}

        end{document}


        produces the following output



        Alice quote



        The package consists of two files, cfr-dquote.sty and cfr-dquote.tex. In theory, the latter can be compiled alone, since it uses the standalone class, but don't be tempted to use it this way - that's just to make tweaks and debugging easier.



        Complete code:



        begin{filecontents}{cfr-dquote.sty}
        % !TEX encoding = UTF-8 Unicode
        % cfr-dquote.sty
        NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
        [1994/12/01]% LaTeX date must December 1994 or later
        RequirePackage{svn-prov}
        ProvidesPackageSVN{$Id: cfr-dquote.sty 7799 2018-07-20 01:52:15Z cfr $}
        RequirePackage{xcolor,pifont,standalone,xparse,tikz}
        usetikzlibrary{calc,positioning,backgrounds}
        IfFileExists{tikzlibrarypicfix.code.tex}{usetikzlibrary{picfix}}{}
        IfFileExists{tikzlibrarycfrexternal.code.tex}{usetikzlibrary{cfrexternal}}{usetikzlibrary{external}}
        NewDocumentCommanddquotetextfonthook{}{normalfontlarge}
        NewDocumentCommanddquoteattribfonthook{}{normalfontnormalsize}
        AtBeginDocument{%
        newlengthcfrdquoteparskipsetlengthcfrdquoteparskip{parskip}%
        newlengthcfrdquoteparindentsetlengthcfrdquoteparindent{parindent}}
        % BEGIN defaults
        tikzset{%
        dquote text font/.code={%
        RenewDocumentCommanddquotetextfonthook{}{#1}
        },
        dquote attrib font/.code={%
        RenewDocumentCommanddquoteattribfonthook{}{#1}
        },
        dquote/.code={%
        tikzset{%
        /cfr-dquote/.cd,
        #1
        }
        },
        /cfr-dquote/quote style/.style={align=justify, color=blue!50!black},
        /cfr-dquote/quote/.style={/cfr-dquote/quote style, font=dquotetextfonthook},
        /cfr-dquote/attrib/.style={/cfr-dquote/quote style, font=dquoteattribfonthook},
        /cfr-dquote/quote mark/.style={color=cfrdquotecolor, opacity=cfrdquoteopacity, font=cfrdquotesize, scale=cfrdquotescale},
        /cfr-dquote/.cd,
        width/.store in=cfrdquotewidth,
        text/.store in=cfrdquotetext,
        attribution/.store in=cfrdquoteattrib,
        width=120mm,
        text={Does dim o gwbl yn y fan hon!},
        attribution={Neb},
        marks/.code={%
        tikzset{%
        /cfr-dquote/quote marks/.cd,
        #1
        }
        },
        quote marks/size/.store in=cfrdquotesize,
        quote marks/scale/.store in=cfrdquotescale,
        quote marks/color/.store in=cfrdquotecolor,
        quote marks/opacity/.store in=cfrdquoteopacity,
        marks={
        size=Huge,
        scale=4,
        color=blue!50!cyan,
        opacity=.25,
        },
        }
        % END defaults
        % BEGIN defn dquote
        NewDocumentCommanddquote { O {120mm} +m m }{%
        tikzset{%
        external/export next=false,
        /cfr-dquote/.cd,
        width={#1},
        text={setlengthparskip{cfrdquoteparskip}setlengthparindent{cfrdquoteparindent}#2},
        attribution={#3}
        }%
        input{cfr-dquote}%
        }
        % END defn dquote
        endinput
        end{filecontents}
        begin{filecontents}{cfr-dquote.tex}
        % !TEX TS-program = pdflatex
        % !TEX encoding = UTF-8 Unicode
        % arara: pdflatex: { synctex: true }
        %BEGIN preamble
        csname standaloneignoreendcsname
        pdfminorversion=7
        PassOptionsToPackage{rgb}{xcolor}
        RequirePackage{svn-prov}
        ProvidesFileSVN{$Id: cfr-dquote.tex 7800 2018-07-20 01:58:28Z cfr $}
        documentclass[tikz,12pt]{standalone}
        usetikzlibrary{calc,positioning,backgrounds}
        usepackage{pifont,biblatex}
        % END preamble

        begin{document}%
        begin{tikzpicture}[node distance=0pt]
        node (quotation) [/cfr-dquote/quote, text width=cfrdquotewidth] {cfrdquotetext};
        node (attrib) [/cfr-dquote/attrib, below=of quotation, text width=cfrdquotewidth] {cfrdquoteattrib};
        node (qlhs) [left=of quotation.north west, /cfr-dquote/quote mark, xshift=.25em, yshift=.25em, anchor=north east] {ding{123}};
        node (qrhs) [right=of quotation.south east, /cfr-dquote/quote mark, xshift=-.25em, yshift=-.75em, anchor=south west] {ding{124}};
        pgfresetboundingbox
        useasboundingbox (attrib.south -| qlhs.west) rectangle (quotation.north -| qrhs.east);
        end{tikzpicture}%
        end{document}
        end{filecontents}


        documentclass[a4paper,british]{article}
        usepackage[utf8]{inputenc}
        usepackage{geometry,babel,csquotes}
        usepackage{cfr-lm}
        usepackage{cfr-dquote}
        MakeAutoQuote{‘}{’}
        MakeAutoQuote*{“}{”}
        begin{document}
        tikzset{%
        dquote text font=fontfamily{LobsterTwo-LF}selectfontLargeupshape,
        dquote attrib font=fontfamily{LobsterTwo-LF}selectfontHugeitshape,
        dquote={
        quote style/.style={align=justify, fill=blue!50!cyan, fill opacity=.2, text opacity=1, text=blue!15!darkgray},
        marks={
        size=Huge,
        scale=4,
        color=blue!50!darkgray,
        opacity=.5,
        },
        },
        }%
        dquote{%
        ‘Come, we shall have some fun now!’ thought Alice. ‘I'm glad they've begun asking riddles --- I believe I can guess that,’ she added aloud.

        ‘Do you mean that you think you can find out the answer to it?’ said the March Hare.

        ‘Exactly so,’ said Alice.

        ‘Then you should say what you mean,’ the March Hare went on.

        ‘I do,’ Alice hastily replied; ‘at least --- at least I mean what I say --- that's the same thing, you know.’

        ‘Not the same thing a bit!’ said the Hatter. ‘Why, you might just as well say that ‘I see what I eat’ is the same thing as ‘I eat what I see’!’

        ‘You might just as well say,’ added the March Hare, ‘that ‘I like what I get’ is the same thing as ‘I get what I like’!’

        ‘You might just as well say,’ added the Dormouse, which seemed to be talking in its sleep, ‘that ‘I breathe when I sleep’ is the same thing as ‘I sleep when I breathe’!’
        }{Lewis Carroll}

        end{document}






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jul 20 '18 at 2:28









        cfrcfr

        158k8191390




        158k8191390























            1
















            I know that this is old, but I may as well share my simple attempt.



            Note: requires usepackage{xcolor}



            The command itself:



            newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}


            Minimum working example:



            documentclass{article}
            usepackage{xcolor}
            newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}

            begin{document}
            quotebox{Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar.}
            end{document}


            Example:



            Image of MWE






            share|improve this answer










            New contributor




            Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.
















            • 1





              Welcome to TeX.SE! Can you please --as usual here -- make your code snippet compilable for a fast proof?

              – Kurt
              1 hour ago











            • Sorry... What do you mean by snippet compatible? @Kurt

              – Ender - Joshua Pritsker
              1 hour ago













            • Please make your code compilable (if possible), or at least complete it with documentclass{...}, the required usepackage's, begin{document}, and end{document}. That is called a minimal working example (MWE).

              – Kurt
              1 hour ago











            • Done, thank you. @Kurt

              – Ender - Joshua Pritsker
              31 mins ago
















            1
















            I know that this is old, but I may as well share my simple attempt.



            Note: requires usepackage{xcolor}



            The command itself:



            newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}


            Minimum working example:



            documentclass{article}
            usepackage{xcolor}
            newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}

            begin{document}
            quotebox{Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar.}
            end{document}


            Example:



            Image of MWE






            share|improve this answer










            New contributor




            Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.
















            • 1





              Welcome to TeX.SE! Can you please --as usual here -- make your code snippet compilable for a fast proof?

              – Kurt
              1 hour ago











            • Sorry... What do you mean by snippet compatible? @Kurt

              – Ender - Joshua Pritsker
              1 hour ago













            • Please make your code compilable (if possible), or at least complete it with documentclass{...}, the required usepackage's, begin{document}, and end{document}. That is called a minimal working example (MWE).

              – Kurt
              1 hour ago











            • Done, thank you. @Kurt

              – Ender - Joshua Pritsker
              31 mins ago














            1












            1








            1









            I know that this is old, but I may as well share my simple attempt.



            Note: requires usepackage{xcolor}



            The command itself:



            newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}


            Minimum working example:



            documentclass{article}
            usepackage{xcolor}
            newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}

            begin{document}
            quotebox{Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar.}
            end{document}


            Example:



            Image of MWE






            share|improve this answer










            New contributor




            Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.












            I know that this is old, but I may as well share my simple attempt.



            Note: requires usepackage{xcolor}



            The command itself:



            newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}


            Minimum working example:



            documentclass{article}
            usepackage{xcolor}
            newcommand{quotebox}[1]{begin{center}fcolorbox{white}{blue!15!gray!15}{begin{minipage}{0.9linewidth}vspace{10pt}centerbegin{minipage}{0.8linewidth}{spaceHuge``}{#1}{hspace{1.5em}breaknullHugehfill''}end{minipage}smallbreakend{minipage}}end{center}}

            begin{document}
            quotebox{Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar.}
            end{document}


            Example:



            Image of MWE







            share|improve this answer










            New contributor




            Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.









            share|improve this answer



            share|improve this answer








            edited 31 mins ago





















            New contributor




            Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.









            answered 2 hours ago









            Ender - Joshua PritskerEnder - Joshua Pritsker

            112




            112




            New contributor




            Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.





            New contributor





            Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.






            Ender - Joshua Pritsker is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.








            • 1





              Welcome to TeX.SE! Can you please --as usual here -- make your code snippet compilable for a fast proof?

              – Kurt
              1 hour ago











            • Sorry... What do you mean by snippet compatible? @Kurt

              – Ender - Joshua Pritsker
              1 hour ago













            • Please make your code compilable (if possible), or at least complete it with documentclass{...}, the required usepackage's, begin{document}, and end{document}. That is called a minimal working example (MWE).

              – Kurt
              1 hour ago











            • Done, thank you. @Kurt

              – Ender - Joshua Pritsker
              31 mins ago














            • 1





              Welcome to TeX.SE! Can you please --as usual here -- make your code snippet compilable for a fast proof?

              – Kurt
              1 hour ago











            • Sorry... What do you mean by snippet compatible? @Kurt

              – Ender - Joshua Pritsker
              1 hour ago













            • Please make your code compilable (if possible), or at least complete it with documentclass{...}, the required usepackage's, begin{document}, and end{document}. That is called a minimal working example (MWE).

              – Kurt
              1 hour ago











            • Done, thank you. @Kurt

              – Ender - Joshua Pritsker
              31 mins ago








            1




            1





            Welcome to TeX.SE! Can you please --as usual here -- make your code snippet compilable for a fast proof?

            – Kurt
            1 hour ago





            Welcome to TeX.SE! Can you please --as usual here -- make your code snippet compilable for a fast proof?

            – Kurt
            1 hour ago













            Sorry... What do you mean by snippet compatible? @Kurt

            – Ender - Joshua Pritsker
            1 hour ago







            Sorry... What do you mean by snippet compatible? @Kurt

            – Ender - Joshua Pritsker
            1 hour ago















            Please make your code compilable (if possible), or at least complete it with documentclass{...}, the required usepackage's, begin{document}, and end{document}. That is called a minimal working example (MWE).

            – Kurt
            1 hour ago





            Please make your code compilable (if possible), or at least complete it with documentclass{...}, the required usepackage's, begin{document}, and end{document}. That is called a minimal working example (MWE).

            – Kurt
            1 hour ago













            Done, thank you. @Kurt

            – Ender - Joshua Pritsker
            31 mins ago





            Done, thank you. @Kurt

            – Ender - Joshua Pritsker
            31 mins ago


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f16964%2fblock-quote-with-big-quotation-marks%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

            Calculate evaluation metrics using cross_val_predict sklearn

            Insert data from modal to MySQL (multiple modal on website)