diff --git a/lib/LaTeXML/Engine/latex_constructs.pool.ltxml b/lib/LaTeXML/Engine/latex_constructs.pool.ltxml index 1b763a7ec..ccb05cd41 100644 --- a/lib/LaTeXML/Engine/latex_constructs.pool.ltxml +++ b/lib/LaTeXML/Engine/latex_constructs.pool.ltxml @@ -1500,13 +1500,17 @@ sub setEnumerationStyle { return; } # End paragraphs, like \par, but only if within an item's text +our %QNamesForItems = map { $_ => 1 } ('ltx:itemize', 'ltx:enumerate', + 'ltx:description', 'inline-itemize', 'inline-enumerate', 'inline-description'); DefConstructorI('\preitem@par', undef, sub { my ($document, %props) = @_; - if (!$props{inPreamble} && !$document->getNodeQName($document->getElement(), 'ltx:itemize')) { + return if $props{inPreamble}; + my $qname = $document->getNodeQName($document->getElement()) || 'ltx:itemize'; + if (!$QNamesForItems{$qname}) { $document->maybeCloseElement('ltx:p'); - $document->maybeCloseElement('ltx:para'); } }, + $document->maybeCloseElement('ltx:para'); + } }, alias => '\par'); - # id, but NO refnum (et.al) attributes on itemize \item ... # unless the optional tag argument was given! # We'll make the from either the optional arg, or from \labelitemi.. @@ -1536,23 +1540,20 @@ DefConstructor('\inline@description@item OptionalUndigested', DefEnvironment('{itemize}', "#body", - mode => 'internal_vertical', - properties => sub { beginItemize('itemize', '@item'); }, - beforeDigestEnd => sub { Digest('\par'); }, - locked => 1); + mode => 'internal_vertical', + properties => sub { beginItemize('itemize', '@item'); }, + locked => 1); DefEnvironment('{enumerate}', "#body", - mode => 'internal_vertical', - properties => sub { beginItemize('enumerate', 'enum'); }, - beforeDigestEnd => sub { Digest('\par'); }, - locked => 1); + mode => 'internal_vertical', + properties => sub { beginItemize('enumerate', 'enum'); }, + locked => 1); DefEnvironment('{description}', "#body", - mode => 'internal_vertical', - beforeDigest => sub { Let('\makelabel', '\descriptionlabel'); }, - properties => sub { beginItemize('description', '@desc'); }, - beforeDigestEnd => sub { Digest('\par'); }, - locked => 1); + mode => 'internal_vertical', + beforeDigest => sub { Let('\makelabel', '\descriptionlabel'); }, + properties => sub { beginItemize('description', '@desc'); }, + locked => 1); DefMacro('\makelabel{}', '#1'); DefMacro('\@mklab{}', '\hfil #1'); @@ -1720,8 +1721,7 @@ DefConstructor('\trivlist', mode => 'internal_vertical', properties => sub { beginItemize('trivlist'); }); DefConstructor('\endtrivlist', sub { - $_[0]->maybeCloseElement('ltx:itemize'); }, - beforeDigest => sub { Digest('\par'); }); + $_[0]->maybeCloseElement('ltx:itemize'); }); DefMacro('\trivlist@item', '\preitem@par\trivlist@item@'); DefConstructor('\trivlist@item@ OptionalUndigested', "" @@ -1729,11 +1729,11 @@ DefConstructor('\trivlist@item@ OptionalUndigested', properties => sub { ($_[1] ? (tag => Digest(Expand($_[1]))) : ()); }); DefMacro('\@trivlist', '\relax', locked => 1); -DefRegister('\topsep' => Glue(0)); -DefRegister('\partopsep' => Glue(0)); -DefRegister('\lx@default@itemsep' => Glue(0)); -DefRegister('\itemsep' => Glue(0)); -DefRegister('\parsep' => Glue(0)); +DefRegister('\topsep' => Glue('8pt plus 2pt minus 4pt')); +DefRegister('\partopsep' => Glue('2pt plus 1pt minus 1pt')); +DefRegister('\lx@default@itemsep' => Glue('4pt plus 2pt minus 1pt')); +DefRegister('\itemsep' => Glue('4pt plus 2pt minus 1pt')); +DefRegister('\parsep' => Glue('4pt plus 2pt minus 1pt')); DefRegister('\@topsep' => Glue(0)); DefRegister('\@topsepadd' => Glue(0)); DefRegister('\@outerparskip' => Glue(0)); @@ -6008,4 +6008,3 @@ EOL #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1; - diff --git a/lib/LaTeXML/Package/IEEEtran.cls.ltxml b/lib/LaTeXML/Package/IEEEtran.cls.ltxml index dc7b3088c..6171b2f12 100644 --- a/lib/LaTeXML/Package/IEEEtran.cls.ltxml +++ b/lib/LaTeXML/Package/IEEEtran.cls.ltxml @@ -350,20 +350,17 @@ DefMacro('\IEEEiedlabeljustifyr', ''); # also, we skip the internal @-named variants for now. DefEnvironment('{IEEEitemize}[]', "#body", - properties => sub { beginItemize('itemize', '@item'); }, - beforeDigestEnd => sub { Digest('\par'); }, - locked => 1, mode => 'internal_vertical'); + properties => sub { beginItemize('itemize', '@item'); }, + locked => 1, mode => 'internal_vertical'); DefEnvironment('{IEEEenumerate}[]', "#body", - properties => sub { beginItemize('enumerate', 'enum'); }, - beforeDigestEnd => sub { Digest('\par'); }, - locked => 1, mode => 'internal_vertical'); + properties => sub { beginItemize('enumerate', 'enum'); }, + locked => 1, mode => 'internal_vertical'); DefEnvironment('{IEEEdescription}[]', "#body", - beforeDigest => sub { Let('\makelabel', '\descriptionlabel'); }, - properties => sub { beginItemize('description', '@desc'); }, - beforeDigestEnd => sub { Digest('\par'); }, - locked => 1, mode => 'internal_vertical'); + beforeDigest => sub { Let('\makelabel', '\descriptionlabel'); }, + properties => sub { beginItemize('description', '@desc'); }, + locked => 1, mode => 'internal_vertical'); # override LaTeX's default IED lists Let('\itemize', '\IEEEitemize'); @@ -429,7 +426,7 @@ DefMacro('\qed', '\ltx@qed'); DefConstructor('\ltx@qed', "?#isMath(\x{220E})(\x{220E})", enterHorizontal => 1, - reversion => '\qed'); + reversion => '\qed'); Let('\proof', '\IEEEproof'); Let('\endproof', '\endIEEEproof'); # V1.8 no longer support biography or biographynophoto diff --git a/lib/LaTeXML/Package/elsarticle.cls.ltxml b/lib/LaTeXML/Package/elsarticle.cls.ltxml index 1b3d869fe..64c179ce1 100644 --- a/lib/LaTeXML/Package/elsarticle.cls.ltxml +++ b/lib/LaTeXML/Package/elsarticle.cls.ltxml @@ -57,13 +57,13 @@ DefMacro('\biboptions{}', '\setcitestyle{#1}'); # (not even sure what the intended effect is) DefEnvironment('{enumerate}[]', "#body", - properties => sub { beginItemize('enumerate', 'enum'); }, - beforeDigestEnd => sub { Digest('\par'); }, - locked => 1, mode => 'internal_vertical'); + properties => sub { beginItemize('enumerate', 'enum'); }, + mode => 'internal_vertical', + locked => 1, mode => 'internal_vertical'); DefEnvironment('{itemize}[]', "#body", - properties => sub { beginItemize('itemize', 'enum'); }, - beforeDigestEnd => sub { Digest('\par'); }, - locked => 1, mode => 'internal_vertical'); + properties => sub { beginItemize('itemize', 'enum'); }, + mode => 'internal_vertical', + locked => 1, mode => 'internal_vertical'); 1; diff --git a/lib/LaTeXML/Package/enumitem.sty.ltxml b/lib/LaTeXML/Package/enumitem.sty.ltxml index c2c16eb52..f0ce121eb 100644 --- a/lib/LaTeXML/Package/enumitem.sty.ltxml +++ b/lib/LaTeXML/Package/enumitem.sty.ltxml @@ -144,14 +144,12 @@ if (!LookupValue('enumitem@loadonly')) { DefEnvironment('{itemize} OptionalKeyVals:enumitem', "#body", properties => sub { beginEnumItemize('itemize', '@item', $_[1]); }, - beforeDigestEnd => sub { Digest('\par'); }, afterDigestBody => sub { endEnumItemize($_[1]); }, mode => 'internal_vertical', locked => 1); DefEnvironment('{enumerate} OptionalKeyVals:enumitem', "#body", properties => sub { beginEnumItemize('enumerate', 'enum', $_[1]); }, - beforeDigestEnd => sub { Digest('\par'); }, afterDigestBody => sub { endEnumItemize($_[1]); }, mode => 'internal_vertical', locked => 1); @@ -159,7 +157,6 @@ if (!LookupValue('enumitem@loadonly')) { "#body", beforeDigest => sub { Let('\makelabel', '\descriptionlabel'); }, properties => sub { beginEnumItemize('description', '@desc', $_[1]); }, - beforeDigestEnd => sub { Digest('\par'); }, afterDigestBody => sub { endEnumItemize($_[1]); }, mode => 'internal_vertical', locked => 1); @@ -199,7 +196,6 @@ DefPrimitive('\newlist{}{}{}', sub { DefEnvironmentI($listname, "OptionalKeyVals:enumitem", "#body", properties => sub { beginEnumItemize($listname, $listname, $_[1]); }, - beforeDigestEnd => sub { Digest('\par'); }, afterDigestBody => sub { endEnumItemize($_[1]); }, mode => 'internal_vertical', locked => 1); diff --git a/lib/LaTeXML/Package/paralist.sty.ltxml b/lib/LaTeXML/Package/paralist.sty.ltxml index 52ebe8af0..a4825555a 100644 --- a/lib/LaTeXML/Package/paralist.sty.ltxml +++ b/lib/LaTeXML/Package/paralist.sty.ltxml @@ -83,22 +83,27 @@ DefMacro('\setdefaultenum{}{}{}{}', sub { DefEnvironment('{inparaenum} OptionalUndigested', "#body", - properties => sub { beginItemize('inline@enumerate', 'enum'); }, + mode => 'internal_vertical', + properties => sub { beginItemize('inline@enumerate', 'enum'); }, afterDigestBegin => sub { setEnumerationStyle($_[1]->getArg(1)); }); DefEnvironment('{compactenum} OptionalUndigested', "#body", - properties => sub { beginItemize('enumerate', 'enum'); }, + mode => 'internal_vertical', + properties => sub { beginItemize('enumerate', 'enum'); }, afterDigestBegin => sub { setEnumerationStyle($_[1]->getArg(1)); }); DefEnvironment('{asparaenum} OptionalUndigested', "#body", - properties => sub { beginItemize('enumerate', 'enum'); }, + mode => 'internal_vertical', + properties => sub { beginItemize('enumerate', 'enum'); }, afterDigestBegin => sub { setEnumerationStyle($_[1]->getArg(1)); }); # Possibly redefine stock enumerate to take optional argument if (IfCondition(T_CS('\if@plnewenum'))) { DefEnvironment('{enumerate} OptionalUndigested', "#body", - properties => sub { beginItemize('enumerate', 'enum'); }, + mode => 'internal_vertical', + + properties => sub { beginItemize('enumerate', 'enum'); }, afterDigestBegin => sub { setEnumerationStyle($_[1]->getArg(1)); }); } #====================================================================== @@ -113,34 +118,42 @@ DefMacro('\setdefaultitem{}{}{}{}', sub { DefEnvironment('{inparaitem} OptionalUndigested', "#body", - properties => sub { beginItemize('inline@itemize', '@item'); }, + mode => 'internal_vertical', + properties => sub { beginItemize('inline@itemize', '@item'); }, afterDigestBegin => sub { setItemizationStyle($_[1]->getArg(1)); }); DefEnvironment('{compactitem} OptionalUndigested', "#body", - properties => sub { beginItemize('itemize', '@item'); }, + mode => 'internal_vertical', + properties => sub { beginItemize('itemize', '@item'); }, afterDigestBegin => sub { setItemizationStyle($_[1]->getArg(1)); }); DefEnvironment('{asparaitem} OptionalUndigested', "#body", - properties => sub { beginItemize('itemize', '@item'); }, + mode => 'internal_vertical', + properties => sub { beginItemize('itemize', '@item'); }, afterDigestBegin => sub { setItemizationStyle($_[1]->getArg(1)); }); if (IfCondition(T_CS('\if@plnewitem'))) { DefEnvironment('{itemize} OptionalUndigested', "#body", - properties => sub { beginItemize('itemize', '@item'); }, + mode => 'internal_vertical', + + properties => sub { beginItemize('itemize', '@item'); }, afterDigestBegin => sub { setItemizationStyle($_[1]->getArg(1)); }); } #====================================================================== # Descriptions DefEnvironment('{inparadesc}', "#body", + mode => 'internal_vertical', properties => sub { beginItemize('inline@description', '@desc'); }); DefEnvironment('{compactdesc}', "#body", + mode => 'internal_vertical', properties => sub { beginItemize('description', '@desc'); }); DefEnvironment('{asparadesc}', "#body", + mode => 'internal_vertical', properties => sub { beginItemize('description', '@desc'); }); # \paradescriptionlabel{} diff --git a/lib/LaTeXML/Package/parskip.sty.ltxml b/lib/LaTeXML/Package/parskip.sty.ltxml index dfc18d114..a41f6e54c 100644 --- a/lib/LaTeXML/Package/parskip.sty.ltxml +++ b/lib/LaTeXML/Package/parskip.sty.ltxml @@ -1,6 +1,6 @@ # -*- mode: Perl -*- # /=====================================================================\ # -# | colordvi | # +# | parskip | # # | Implementation for LaTeXML | # # |=====================================================================| # # | Part of LaTeXML: | # @@ -17,5 +17,6 @@ use LaTeXML::Package; #====================================================================== # Nothing to do here, really.... +# TODO: But we may want to revise this if/when it is used in SVG contexts. #====================================================================== 1; diff --git a/lib/LaTeXML/Package/sv_support.sty.ltxml b/lib/LaTeXML/Package/sv_support.sty.ltxml index 1f86e960f..bc994512c 100644 --- a/lib/LaTeXML/Package/sv_support.sty.ltxml +++ b/lib/LaTeXML/Package/sv_support.sty.ltxml @@ -232,7 +232,7 @@ DefMacro('\qed', '\ltx@qed'); DefConstructor('\ltx@qed', "?#isMath(\x{220E})(\x{220E})", enterHorizontal => 1, - reversion => '\qed'); + reversion => '\qed'); Let('\smartqed', '\qed'); Let('\squareforqed', '\qed'); @@ -285,8 +285,10 @@ DefMacro('\lastevenhead', Tokens()); # Odd; they add an optional arg! DefEnvironment('{description}[]', "#body", - properties => sub { beginItemize('description'); }, - locked => 1); + properties => sub { beginItemize('description', '@desc'); }, + mode => 'internal_vertical', + beforeDigest => sub { Let('\makelabel', '\descriptionlabel'); }, + locked => 1); #====================================================================== 1;