diff --git a/MANIFEST b/MANIFEST index d825e9839..a6ef9000c 100644 --- a/MANIFEST +++ b/MANIFEST @@ -413,6 +413,8 @@ lib/LaTeXML/Package/courier.sty.ltxml lib/LaTeXML/Package/cp852.def.ltxml lib/LaTeXML/Package/crop.sty.ltxml lib/LaTeXML/Package/cropmark.sty.ltxml +lib/LaTeXML/Package/csquotes.def.ltxml +lib/LaTeXML/Package/csquotes.sty.ltxml lib/LaTeXML/Package/dcolumn.sty.ltxml lib/LaTeXML/Package/deluxetable.sty.ltxml lib/LaTeXML/Package/doublespace.sty.ltxml @@ -1342,6 +1344,9 @@ t/structure/badabstract.xml t/structure/beforeafter.pdf t/structure/beforeafter.tex t/structure/beforeafter.xml +t/structure/csquotes.pdf +t/structure/csquotes.tex +t/structure/csquotes.xml t/structure/book.pdf t/structure/book.tex t/structure/book.xml diff --git a/lib/LaTeXML/Package/csquotes.def.ltxml b/lib/LaTeXML/Package/csquotes.def.ltxml new file mode 100644 index 000000000..04ee033c7 --- /dev/null +++ b/lib/LaTeXML/Package/csquotes.def.ltxml @@ -0,0 +1,26 @@ +# -*- mode: Perl -*- +# /=====================================================================\ # +# | csquotes.def | # +# | Implementation for LaTeXML | # +# |=====================================================================| # +# | Part of LaTeXML: | # +# | Public domain software, produced as part of work done by the | # +# | United States Government & not subject to copyright in the US. | # +# |---------------------------------------------------------------------| # +# | Thanks to Tom Wiesing | # +# | of the arXMLiv group for initial implementation | # +# | http://arxmliv.kwarc.info/ | # +# | Released under the Gnu Public License | # +# | Released to the Public Domain | # +# |---------------------------------------------------------------------| # +# | Bruce Miller #_# | # +# | http://dlmf.nist.gov/LaTeXML/ (o o) | # +# \=========================================================ooo==U==ooo=/ # +package LaTeXML::Package::Pool; +use strict; +use warnings; +use LaTeXML::Package; + +InputDefinitions('csquotes', type => 'def', noltxml => 1); + +1; diff --git a/lib/LaTeXML/Package/csquotes.sty.ltxml b/lib/LaTeXML/Package/csquotes.sty.ltxml new file mode 100644 index 000000000..a536daa5b --- /dev/null +++ b/lib/LaTeXML/Package/csquotes.sty.ltxml @@ -0,0 +1,280 @@ +# -*- mode: Perl -*- +# /=====================================================================\ # +# | csquotes.sty | # +# | Implementation for LaTeXML | # +# |=====================================================================| # +# | Part of LaTeXML: | # +# | Public domain software, produced as part of work done by the | # +# | United States Government & not subject to copyright in the US. | # +# |---------------------------------------------------------------------| # +# | Thanks to Tom Wiesing | # +# | of the arXMLiv group for initial implementation | # +# | http://arxmliv.kwarc.info/ | # +# | Released under the Gnu Public License | # +# | Released to the Public Domain | # +# |---------------------------------------------------------------------| # +# | Bruce Miller #_# | # +# | http://dlmf.nist.gov/LaTeXML/ (o o) | # +# \=========================================================ooo==U==ooo=/ # +package LaTeXML::Package::Pool; +use strict; +use warnings; +use LaTeXML::Package; + +# Load the style filke +InputDefinitions('csquotes', type => 'sty', noltxml => 1); + +########################################################################### +# Compatibility fixes + +RawTeX(<<'EoTeX'); +% the unicode check does not work properly in LaTeXML +% furthermore, package version <= 2018/04/06 v1.3b contain +% a known bug, but might still be around. +% therfore we skip the check here. +\def\csq@ifutfchar#1{% + \ifundef\@inpenc@undefined + {\@secondoftwo} + {\csq@ifutfenc}% + {\csq@ifsingle{#1} + {\ifnum`#1<128\relax + \expandafter\@secondoftwo + \else% <-- skip this else here + \expandafter\@secondoftwo + \fi} + {\@firstoftwo}} + {\csq@ifsingle{#1} + {\@secondoftwo} + {\csq@err@char + \@gobbletwo}}} + +% work around \cl@@ckpt not being defied by LaTeXML +\let\blockquote@prehook\relax +\newcommand*{\blockquote@prehook}{% + \def\@elt##1{\global\value{##1}\the\value{##1}\relax}% + \edef\csq@tempa{\@elt{page}}% <-- work around it here + \let\@elt\relax + \@fileswfalse} +EoTeX + +########################################################################### +# Typesettable quotes +########################################################################### +RawTeX(<<'EoTeX'); + +% outer quotation mark +\def\csq@qopen{% + \ifnum\csq@qlevel>\csq@maxlvl + \csq@mismatch{% + Level \number\csq@qlevel\space quote invalid at this point. + The maximum level is \number\csq@maxlvl}% + \else + \csq@resetstyle + \csq@init + \csq@addkern@open + \ifodd\csq@qlevel + \let\csq@kernchar@i\csq@thequote@oopen + \ltxml@oqmark@open\csq@thequote@oopen + \else + \let\csq@kernchar@i\csq@thequote@iopen + \ltxml@iqmark@open\csq@thequote@iopen + \fi + \csq@setmarker@open + \expandafter\csq@fixkern + \fi} + +% inner quotation mark +\protected\def\csq@iqmark{% + \csq@bqgroup + \ifnum\csq@qlevel>\@ne + \csq@mismatch{% + Level 2 quote invalid at this point. + The current level is \number\csq@qlevel}% + \advance\csq@qlevel\@ne + \let\csq@iqmark\csq@eqerror + \else + \csq@qlevel\tw@ + \let\csq@iqmark{\csq@qclose\ltxml@iqmark@close} + \ltxml@iqmark@open\expandafter\csq@qopen + \fi} + +% closing mark +\def\csq@qclose@ii#1{% + \ifdim\lastkern=\csq@omitmarker + #1\csq@eqgroup + \else + \csq@addkern@close + \ifodd\csq@qlevel + \csq@thequote@oclose + \ltxml@oqmark@close + \let\csq@kernchar@i\csq@thequote@oclose + \else + \csq@thequote@iclose + \ltxml@iqmark@close + \let\csq@kernchar@i\csq@thequote@iclose + \fi + \ifnum\csq@qlevel>\@ne + \csq@setmarker@close + \fi + \ifblank{#1}{}{\expandafter#1}% + \expandafter\csq@eqgroup + \expandafter\def + \expandafter\csq@kernchar@i + \expandafter{\csq@kernchar@i}% + \expandafter\csq@fixkern + \fi} +EoTeX + +DefConstructor('\ltxml@oqmark@open', ''); +DefConstructor('\ltxml@oqmark@close', ''); + +DefConstructor('\ltxml@iqmark@open', ''); +DefConstructor('\ltxml@iqmark@close', ''); + +########################################################################### +# Normal Citation (\mkcitation) +########################################################################### +RawTeX(<<'EoTeX'); +\long\def\csq@getcargs@ii#1#2[#3]{% + #1{\ltxml@mkcitation}{#2}{#3}} + +\let\MakeBlockQuote\relax +\newrobustcmd*{\MakeBlockQuote}[3]{% + \csq@addbspecial{#1}{#2}{#3}{\csq@bquote{}{}{\ltxml@mkcitation}}} + +\let\MakeForeignBlockQuote\relax +\newrobustcmd*{\MakeForeignBlockQuote}[4]{% + \csq@addbspecial{#2}{#3}{#4}% + {\csq@bquote{\csq@lang{#1}}{\csq@endlang}{\ltxml@mkcitation}}} + +\let\MakeHyphenBlockQuote\relax +\newrobustcmd*{\MakeHyphenBlockQuote}[4]{% + \csq@addbspecial{#2}{#3}{#4}% + {\csq@bquote{\csq@hyph{#1}}{\csq@endhyph}{\ltxml@mkcitation}}} + +\let\MakeHybridBlockQuote\relax +\newrobustcmd*{\MakeHybridBlockQuote}[4]{% + \csq@addbspecial{#2}{#3}{#4}% + {\csq@bquote + {\iftoggle{csq@block}{\csq@lang}{\csq@hyph}{#1}} + {\iftoggle{csq@block}{\csq@endlang}{\csq@endhyph}} + {\ltxml@mkcitation}}} +EoTeX + +DefMacro('\ltxml@mkcitation{}', '\ltxml@citation@open\mkcitation{#1}\ltxml@citation@close'); +DefConstructor('\ltxml@citation@open', ''); +DefConstructor('\ltxml@citation@close', ''); + +########################################################################### +# Integrated Citation (\mkccitation) +########################################################################### + +RawTeX(<<'EoTeX'); +\long\def\csq@getccargs@iii#1#2#3[#4]{% + #1{\ltxml@mkccitation}{\csq@cite#2{#3}}{#4}} +EoTeX + +DefMacro('\ltxml@mkccitation{}', '\ltxml@ccitation@open\mkccitation{#1}\ltxml@ccitation@close'); +DefConstructor('\ltxml@ccitation@open', ''); +DefConstructor('\ltxml@ccitation@close', ''); + +########################################################################### +# Text Quotes (\mktextquote) +########################################################################### +RawTeX(<<'EoTeX'); +\long\def\csq@tquote@i#1#2#3#4#5#6#7#8#9{% + \begingroup + \csq@setsfcodes + \edef\csq@tempa{% + \unexpanded{% + \ltxml@mktextquote + {#3}% + {#7}% + {\csq@qclose@i{#2}}% + {#6}{#8}}% + {\ifblank{#5} + {} + {\unexpanded{\csq@switchlang{#4{#5}}}}}}% + \csq@bqgroup#1\csq@tempa#9% + \endgroup} +EoTeX + +DefMacro('\ltxml@mktextquote{}{}{}{}{}{}', '\ltxml@mktextquote@open\mktextquote{#1}{#2}{#3}{#4}{#5}{#6}\ltxml@mktextquote@close'); +DefConstructor('\ltxml@mktextquote@open', ''); +DefConstructor('\ltxml@mktextquote@close', ''); + +########################################################################### +# Block Quotes (\mkblockquote) +########################################################################### +RawTeX(<<'EoTeX'); +\long\def\csq@bquote@iii#1#2#3#4#5#6#7#8{% + \ltxml@mkblockquote@open\begin{\csq@blockenvironment}% + \toggletrue{csq@block}% + \csq@setsfcodes + \edef\csq@tempa{% + \unexpanded{% + \mkblockquote + {\ltxml@mkblockquote@aopen#6\ltxml@mkblockquote@aclose}% + {#5}{#7}}% + {\ifblank{#4} + {} + {\unexpanded{\csq@switchlang{#3{#4}}}}}}% + #1\csq@tempa#8#2% + \end{\csq@blockenvironment}\ltxml@mkblockquote@close} + +% Because detection of word length does not work properly in LaTeXML +% always use a proper block-quote environment +\let\csq@bquote@ii\csq@bquote@iii +EoTeX + +# update the 'quote' environment to be +DefMacro('\ltxml@mkblockquote@open', '\begingroup\ltxml@mkblockquote@open@i'); +DefPrimitive('\ltxml@mkblockquote@open@i', sub { + DefEnvironment('{quote}', '#body', + beforeDigest => sub { Let('\\\\', '\@block@cr'); Let('\par', '\@block@cr') }, + mode => 'text'); }); +DefMacro('\ltxml@mkblockquote@close', '\endgroup'); + +DefConstructor('\ltxml@mkblockquote@aopen', ''); +DefConstructor('\ltxml@mkblockquote@aclose', ''); + +########################################################################### +# Display Quote (\mkbegdispquote, \mkenddispquote) +########################################################################### + +RawTeX(<<'EoTeX'); +\def\csq@bdquote#1#2#3#4#5{% + \ltxml@blockenvironment@open\csuse{\csq@blockenvironment}% + \toggletrue{csq@block}% + \csq@setsfcodes + #1\ifblank{#4} + {\def\csq@tempb{\ltxml@mkenddispquote{#5}{}#2}% + \ltxml@mkbegdispquote{#5}{}} + {\def\csq@tempb{\ltxml@mkenddispquote{#5}{\csq@switchlang{#3{#4}}}#2}% + \ltxml@mkbegdispquote{#5}{\csq@switchlang{#3{#4}}}}% + \ignorespaces} +\def\csq@edquote{% + \unspace\csq@tempb + \csuse{end\csq@blockenvironment}\ltxml@blockenvironment@close} +EoTeX + +# update the 'quote' environment to be +DefMacro('\ltxml@blockenvironment@open', '\begingroup\ltxml@blockenvironment@open@i'); +DefPrimitive('\ltxml@blockenvironment@open@i', sub { + DefEnvironment('{quote}', '#body', + beforeDigest => sub { Let('\\\\', '\@block@cr'); Let('\par', '\@block@cr') }, + mode => 'text'); }); +DefMacro('\ltxml@blockenvironment@close', '\endgroup'); + +DefMacro('\ltxml@mkbegdispquote{}{}', '\ltxml@mkbegdispquote@aopen\mkbegdispquote{#1}{#2}'); +DefConstructor('\ltxml@mkbegdispquote@aopen', ''); + +DefMacro('\ltxml@mkenddispquote{}{}', '\mkenddispquote{#1}{#2}\ltxml@mkenddispquote@aclose'); +DefConstructor('\ltxml@mkenddispquote@aclose', ''); + +########################################################################### +# TODO +########################################################################### +# \MakeForeignQuote does not seem to work + +1; diff --git a/t/50_structure.t b/t/50_structure.t index fde27c0db..1579bf7fc 100644 --- a/t/50_structure.t +++ b/t/50_structure.t @@ -4,4 +4,4 @@ #********************************************************************** use LaTeXML::Util::Test; -latexml_tests("t/structure"); +latexml_tests("t/structure", requires=>{csquotes=>'csquotes.sty'}); diff --git a/t/81_babel.t b/t/81_babel.t index eda94de60..a8918e2e8 100644 --- a/t/81_babel.t +++ b/t/81_babel.t @@ -6,6 +6,7 @@ use LaTeXML::Util::Test; latexml_tests("t/babel", requires=>{'*'=>['babel.sty','babel.def'], + csquotes=>['skipbecauseofoldtexliveintravis', 'csquotes.sty', 'frenchb.ldf', 'germanb.ldf'], numprints=>'numprint.sty', german=>'germanb.ldf', greek=>['greek.ldf','lgrenc.def'], diff --git a/t/babel/csquotes.pdf b/t/babel/csquotes.pdf new file mode 100644 index 000000000..780fe3e2c Binary files /dev/null and b/t/babel/csquotes.pdf differ diff --git a/t/babel/csquotes.tex b/t/babel/csquotes.tex new file mode 100644 index 000000000..50b7ffe6e --- /dev/null +++ b/t/babel/csquotes.tex @@ -0,0 +1,101 @@ +\documentclass{article} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} + +\usepackage[french,german,english]{babel} +\usepackage[babel=true]{csquotes} + +%\MakeForeignQuote{german}{<}{>} + +\begin{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Quoting in Current Language} + +\selectlanguage{french} +\subsection{\languagename} +\enquote{Citation extérieure} +\enquote{Extérieure \enquote{intérieur} extérieure} + +\selectlanguage{german} +\subsection{\languagename} +\enquote{Äußeres Zitat} +\enquote{Äußeres \enquote{inneres} Äußeres} + +\selectlanguage{english} +\subsection{\languagename} +\enquote{Outer Quote} +\enquote{Outer \enquote{Inner} Outer} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Quoting in Foreign Language} + +\subsection{french} +\foreignquote{french}{Citation extérieure} +\foreignquote{french}{Extérieure \foreignquote{french}{intérieur} extérieure} +\foreignquote{french}{Extérieure \foreignquote*{french}{intérieur} extérieure} + +%\subsection{Auto Quote German} +%< Äußeres Zitat > + +\subsection{german} +\foreignquote{german}{Äußeres Zitat} +\foreignquote{german}{Äußeres \foreignquote{german}{inneres} Äußeres} +\foreignquote{german}{Äußeres \foreignquote*{german}{inneres} Äußeres} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{textquote in Current Language} + +\selectlanguage{french} +\subsection{\languagename} +\textquote[Citation]{du texte ici} + +\selectlanguage{german} +\subsection{\languagename} +\textquote[Zitat]{etwas Text hier} + +\selectlanguage{english} +\subsection{\languagename} +\textquote[Citation]{some text here} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{textquote in foreign Language} + +\foreigntextquote{french}[Citation]{du texte ici} +\foreigntextquote{german}[Zitat]{etwas Text hier} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{displayquote in Current language} + +\selectlanguage{french} +\subsection{\languagename} +\begin{displayquote}[Citation] +du texte ici +\end{displayquote} + +\selectlanguage{german} +\subsection{\languagename} +\begin{displayquote}[Zitat] +etwas Text hier +\end{displayquote} + +\selectlanguage{english} +\subsection{\languagename} +\begin{displayquote}[Citation] +some text here +\end{displayquote} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{displayquote in foreign Language} + +\begin{foreigndisplayquote}{french}[Citation] +du texte ici +\end{foreigndisplayquote} + +\begin{foreigndisplayquote}{german}[Zitat] +etwas Text hier +\end{foreigndisplayquote} + +\end{document} \ No newline at end of file diff --git a/t/babel/csquotes.xml b/t/babel/csquotes.xml new file mode 100644 index 000000000..a9375b81c --- /dev/null +++ b/t/babel/csquotes.xml @@ -0,0 +1,216 @@ + + + + + + + + + + +
+ + 1 + 1 + §1 + + <tag close=" ">1</tag>Quoting in Current Language + + + 1.1 + 1.1 + §1.1 + + <tag close=" ">1.1</tag>french + +

«  Citation extérieure  » +«  Extérieure “intérieur” extérieure  »

+
+
+ + + 1.2 + 1.2 + §1.2 + + <tag close=" ">1.2</tag>german + +

„Äußeres Zitat“ +„Äußeres ‚inneres‘ Äußeres“

+
+
+ + + 1.3 + 1.3 + §1.3 + + <tag close=" ">1.3</tag>english + +

“Outer Quote” +“Outer ‘Inner’ Outer”

+
+
+
+
+ + 2 + 2 + §2 + + <tag close=" ">2</tag>Quoting in Foreign Language + + + 2.1 + 2.1 + §2.1 + + <tag close=" ">2.1</tag>french + +

«  Citation extérieure  » + +«  Extérieure +“intérieur” extérieure  » + +«  Extérieure +“intérieur” extérieure  »

+
+
+ + + 2.2 + 2.2 + §2.2 + + <tag close=" ">2.2</tag>german + +

„Äußeres Zitat“ +„Äußeres ‚inneres‘ Äußeres“ +„Äußeres ‚inneres‘ Äußeres“

+
+
+
+
+ + 3 + 3 + §3 + + <tag close=" ">3</tag>textquote in Current Language + + + 3.1 + 3.1 + §3.1 + + <tag close=" ">3.1</tag>french + +

«  du texte ici  » (Citation)

+
+
+ + + 3.2 + 3.2 + §3.2 + + <tag close=" ">3.2</tag>german + +

„etwas Text hier“ (Zitat)

+
+
+ + + 3.3 + 3.3 + §3.3 + + <tag close=" ">3.3</tag>english + +

“some text here” (Citation)

+
+
+
+
+ + 4 + 4 + §4 + + <tag close=" ">4</tag>textquote in foreign Language + +

«  du texte ici  » (Citation) +„etwas Text hier“ (Zitat)

+
+
+
+ + 5 + 5 + §5 + + <tag close=" ">5</tag>displayquote in Current language + + + 5.1 + 5.1 + §5.1 + + <tag close=" ">5.1</tag>french + + +

du texte ici + (Citation)

+
+
+
+ + + 5.2 + 5.2 + §5.2 + + <tag close=" ">5.2</tag>german + + +

etwas Text hier + (Zitat)

+
+
+
+ + + 5.3 + 5.3 + §5.3 + + <tag close=" ">5.3</tag>english + + +

some text here + (Citation)

+
+
+
+
+
+ + 6 + 6 + §6 + + <tag close=" ">6</tag>displayquote in foreign Language + + +

du texte ici + (Citation)

+
+
+ + +

etwas Text hier + (Zitat)

+
+
+
+
diff --git a/t/structure/csquotes.pdf b/t/structure/csquotes.pdf new file mode 100644 index 000000000..ac231e489 Binary files /dev/null and b/t/structure/csquotes.pdf differ diff --git a/t/structure/csquotes.tex b/t/structure/csquotes.tex new file mode 100644 index 000000000..c0838f782 --- /dev/null +++ b/t/structure/csquotes.tex @@ -0,0 +1,107 @@ +\documentclass[a4paper]{article} + +\usepackage[utf8]{inputenc} + +%% Some upstream versions of csquotes need this fix +%% in order to work properly +%\makeatletter +%\def\@inpenc@undefined{} +%\makeatother + +\usepackage{csquotes} + +\MakeOuterQuote{"} +\MakeAutoQuote{«}{»} +\MakeBlockQuote{<}{|}{>} + +\begin{document} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Active Quotes} + +"Outer quote" + +«Outer «Inner» Outer» + +Some text before the quotation. +< A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +|Citation > +Some text after the quotation. + +% to check that the quote environment is not broken +\begin{quote} +A normal quote +\end{quote} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{enquote macro} + +\enquote{Outer Quote} + +\enquote{Outer \enquote{Inner} Outer} + +\enquote{Outer \enquote*{Inner} Outer} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Textquote} + +\textquote[Citation]{This is a short quotation typeset with a text quotation +command. It would be presented in inline style even if it were longer than +three lines.} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Display Quote} + +Some text before the quotation. +\begin{displayquote}[Citation] +A short quotation shown intended. +\end{displayquote} +Some text after the quotation. + +Some text before the quotation. +\begin{displayquote}[Citation] +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +\end{displayquote} +Some text after the quotation. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Block Quote} + +Some text before the quotation. +\blockquote[Citation]{A short quotation latex would embed. } +Some text after the quotation. + +Some text before the quotation. +\blockquote[Citation]{A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. } +Some text after the quotation. + + +\end{document} \ No newline at end of file diff --git a/t/structure/csquotes.xml b/t/structure/csquotes.xml new file mode 100644 index 000000000..d7e7fe01f --- /dev/null +++ b/t/structure/csquotes.xml @@ -0,0 +1,139 @@ + + + + + + + + +
+ + 1 + 1 + §1 + + <tag close=" ">1</tag>Active Quotes + +

“Outer quote”

+
+ +

“Outer ‘Inner’ Outer”

+
+ +

Some text before the quotation.

+ +

A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. + (Citation )

+
+

Some text after the quotation.

+
+ + +

A normal quote

+
+
+
+
+ + 2 + 2 + §2 + + <tag close=" ">2</tag>enquote macro + +

“Outer Quote”

+
+ +

“Outer ‘Inner’ Outer”

+
+ +

“Outer ‘Inner’ Outer”

+
+
+
+ + 3 + 3 + §3 + + <tag close=" ">3</tag>Textquote + +

“This is a short quotation typeset with a text quotation +command. It would be presented in inline style even if it were longer than +three lines.” (Citation)

+
+
+
+ + 4 + 4 + §4 + + <tag close=" ">4</tag>Display Quote + +

Some text before the quotation.

+ +

A short quotation shown intended. + (Citation)

+
+

Some text after the quotation.

+
+ +

Some text before the quotation.

+ +

A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. + (Citation)

+
+

Some text after the quotation.

+
+
+
+ + 5 + 5 + §5 + + <tag close=" ">5</tag>Block Quote + +

Some text before the quotation.

+ +

A short quotation latex would embed. (Citation)

+
+

Some text after the quotation.

+
+ +

Some text before the quotation.

+ +

A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. +A long quotation latex would show indented. (Citation)

+
+

Some text after the quotation.

+
+
+