3

make4ht is creating unnecessary span sibling tags in abstract. The following example shows this behavior:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\begin{document}
\begin{abstract}
\lipsum[1-1]
\end{abstract}
\lipsum[1-1]
\end{document}

The resulting HTML is:

<!DOCTYPE html> 
<html xml:lang='en-US' lang='en-US'> 
<head> <title></title> 
<meta charset='utf-8' /> 
<meta content='TeX4ht (https://tug.org/tex4ht/)' name='generator' /> 
<meta content='width=device-width,initial-scale=1' name='viewport' /> 
<link type='text/css' rel='stylesheet' href='test.css' /> 
<meta content='test.tex' name='src' /> 
</head><body>
   <section role='doc-abstract' class='abstract'> 

<div class='center'>
<!-- l. 10 --><p class='noindent'>
</p><!-- l. 10 --><p class='noindent'><span class='rm-lmbx-9'>Abstract</span></p></div>
     <!-- l. 13 --><p class='indent'>    <span class='rm-lmr-9'>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus
     </span><span class='rm-lmr-9'>elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum
     </span><span class='rm-lmr-9'>gravida  mauris.  Nam  arcu  libero,  nonummy  eget,  consectetuer  id,
     </span><span class='rm-lmr-9'>vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant
     </span><span class='rm-lmr-9'>morbi tristique senectus et netus et malesuada fames ac turpis egestas.
     </span><span class='rm-lmr-9'>Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum
     </span><span class='rm-lmr-9'>urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat.
     </span><span class='rm-lmr-9'>Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent
     </span><span class='rm-lmr-9'>eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla,
     </span><span class='rm-lmr-9'>malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla.
     </span><span class='rm-lmr-9'>Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend,
     </span><span class='rm-lmr-9'>sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.</span>
</p>
</section>
<!-- l. 17 --><p class='indent'>   Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula
augue eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada
fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem.
Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet
tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac,
nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi
dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor
semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan
eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.
</p> 
</body> 
</html>

Is there a fix to prevent this behavior? Unfortunately HTML Tidy has no merge option for sibling tags.

1 Answer 1

2

That's because we keep original fonts in abstract. Because smaller font is used by LaTeX, TeX4ht adds <span> elements with the size information. To prevent that, we need to request normal sized font. We can insert this instruction after the abstract title:

\Preamble{xhtml}
\ConfigureEnv{abstract}
{\ifvmode\IgnorePar\fi\EndP\HCode{<section role="doc-abstract" class="abstract">\Hnewline}
\ConfigureEnv{center}{\ifvmode\IgnorePar\fi\EndP\HCode{<h3 class="abstracttitle">}\HtmlParOff}{\HCode{</h3>}\HtmlParOn\par\normalsize\normalfont}{\empty}{\empty}
} 
{\ifvmode\IgnorePar\fi\EndP\HCode{</section>}}{}{}
\Css{.abstract{font-size:0.9rem;margin-bottom:1em;}}
\Css{.abstracttitle{text-align:center;}}

\begin{document}
\EndPreamble

\ConfigureEnv{center} is used because abstract uses center environment internally to print the abstract title. We use it to insert the <h3> element and to require the normal sized font using \normalsize.

This is the result:

 <section class='abstract' role='doc-abstract'> 
<h3 class='abstracttitle'>
<span class='cmbx-9'>Abstract</span>
</h3>
     <!-- l. 7 --><p class='noindent'>Lorem  ipsum  dolor  sit  amet,  consectetuer  adipiscing  elit.  Ut
     purus  elit,  vestibulum  ut,  placerat  ac,  adipiscing  vitae,  felis.
     Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget,
     consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.
     Pellentesque habitant morbi tristique senectus et netus et malesuada
     fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus
     sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu
     tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in,
     pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices
     bibendum.  Aenean  faucibus.  Morbi  dolor  nulla,  malesuada  eu,
     pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. Donec
     varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend,
     sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.
</p>
</section>

Original answer:

\Preamble{xhtml}
\Configure{abstracttitle}{\ifvmode\IgnorePar\fi\EndP\HCode{<h3 class="abstracttitle">}\HtmlParOff}
   {\HCode{</h3>}\HtmlParOn\normalsize}
\Css{.abstract{font-size:0.9rem;}}

\begin{document}
\EndPreamble

The \Configure{abstracttitle} is adapted from TeX4ht sources. I've just added the \normalsize command. \Css is used to get the smaller text.

6
  • @michal-h21, I've got the following error: ! LaTeX Error: Missing \begin{document} in `test.cfg'. See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help. ... l.2 ...r\fi\EndP\HCode{<h3 class="abstracttitle">} \HtmlParOff} You're in trouble here. Try typing <return> to proceed. If that doesn't work, type X <return> to quit.
    – LEo
    Jan 28, 2021 at 12:01
  • @Leo I've updated my answer, hope it works now.
    – michal.h21
    Jan 28, 2021 at 15:15
  • it did work, @michal-h21
    – LEo
    Jan 28, 2021 at 16:47
  • @LEo that's great!
    – michal.h21
    Jan 28, 2021 at 17:18
  • This answer still does not explain why many adjacent identical sibling spans (<span class='rm-lmr-9>) are created (when a single span should be expected). Further, the generated spans do not correspond to any division in the original, it seems that TeX4ht is somehow afraid of generating large spans??
    – leonbloy
    Jul 11, 2021 at 22:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .