%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % conditional for xetex or luatex \newif\ifxetexorluatex \ifxetex \xetexorluatextrue \else \ifluatex \xetexorluatextrue \else \xetexorluatexfalse \fi \fi % \ifxetexorluatex% \usepackage{fontspec} \usepackage{libertine} % or use \setmainfont to choose any font on your system \newfontfamily\quotefont[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) {\quotefont\fontsize{\quotesize}{\quotesize}\selectfont``};\kern0pt} \newcommand*{\closequote}[1] {\tikz[remember picture,overlay,xshift=4ex,yshift={#1}] \node (CQ) {\quotefont\fontsize{\quotesize}{\quotesize}\selectfont''};} % select a colour for the shading \colorlet{shadecolor}{white} \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 \def\authorfill{}\def\quotefill{\hfill} \else \if#1r \def\authorfill{\hfill}\def\quotefill{} \else \if#1c \gdef\authorfill{\hfill}\def\quotefill{\hfill} \else\typeout{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} {\def\shadequoteauthor{}\def\yshift{-2ex}\def\quotefill{\hfill}} {\def\shadequoteauthor{\par\authorfill\shadedauthorformat{#2}}\def\yshift{2ex}} \begin{snugshade}\begin{quote}\openquote} {\shadequoteauthor\quotefill\closequote{\yshift}\end{quote}\end{snugshade}}