On 7/12/2013 3:53 AM, Jagath AR wrote:
Hi Nasser,
Your configuration file can be slightly modified as given below to get *
multicols* work as you have expected. The optional argument of *multicols *is
not take care of at the moment.

----------------
\Preamble{ext=htm,pic-align}

\begin{document}
\EndPreamble

\catcode`\:11
\catcode`\@11

% Added to fix the opening and closing <p> tags
\Configure{HtmlPar}
   {\EndP\HCode{<!--l. \the\inputlineno-->%
<p \csname a:!P\endcsname
          class="no\ifHCond par\else indent\fi" \a:LRdir>}}
   {\EndP\HCode{<!--l. \the\inputlineno-->%
<p \csname a:!P\endcsname
         class="\ifdim \parindent=\z@ no\fi indent" \a:LRdir>}}
   {{\Tg</p>}}
   {{\Tg</p>}}%

\renewenvironment{multicols}[1]{\IgnorePar\EndP%
\HCode{<div class="newspaper}#1\HCode{">}
\expandafter\ifx\csname .newspaper#1\endcsname\relax%
\Css{.newspaper#1 p:first-child { margin-top: 0em; }}
\Css{.newspaper#1 {
    -moz-column-count:#1; /* Firefox */
    -webkit-column-count:#1; /* Safari and Chrome */
    column-count:#1;
    -moz-column-gap:10px; /* Firefox */
    -webkit-column-gap:10px; /* Safari and Chrome */
    column-gap:10px;
    -moz-column-rule:1px outset \#F8F8F8 ; /* Firefox */
    -webkit-column-rule:1px outset \#000000; /* Safari and Chrome */
    column-rule:1px outset \#000000;
}}
\expandafter\gdef\csname .newspaper#1\endcsname{1}%
\fi\ShowPar\par}
{\EndP\HCode{</div>}}
\ConfigureEnv{multicols}{}{}{}{}

\endinput
----------------

I have tested this with the following TeX code:

-----------------
\documentclass{article}%
\usepackage{lipsum}
\usepackage{multicol}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.01pt}
\newenvironment{newspaper}{}{}
\begin{document}

     \lipsum[1-2]

   \begin{multicols}{6}
     \lipsum[1-5]
   \end{multicols}

     \lipsum[1-2]

   \begin{multicols}{4}
     \lipsum[1-5]
   \end{multicols}

     \lipsum[1-2]

   \begin{multicols}{2}
     \lipsum[1-5]
   \end{multicols}

     \lipsum[1-2]

   \begin{multicols}{4}
     \lipsum[1-5]
   \end{multicols}

\end{document}
-----------------

You can use this workaround, while the developers came up with possible fix.

Regards
Jagath


Thanks!

But I think there is a small issue. Your code is too advanced for me
to know where it is, so I'll show the final result.

When I run this example latex file, using your update .cfg above,
the resulting HTML shows both items of an numeration on the
same line, instead of on separate lines:

--------------------------------
\documentclass{article}%
\usepackage{lipsum}
\usepackage{multicol}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.01pt}
% notice no need to add \newenvironment{newspaper}{}{} now
% it is in the updated .cfg file
\begin{document}

\begin{multicols}{2}

  \begin{enumerate}
    \item A
    \item B
   \end{enumerate}
   \lipsum[1-10]
\end{multicols}

\end{document}
-------------------------

Compiled using

htlatex foo.tex "Jagath.cfg"

Where Jagath.cfg is your .cfg code above.

But when I compile the same latex file above using my earlier
.cfg, then the items appear on separate lines as expected.

I am using TL 2013 on Linux.

thanks,
--Nasser



On 12 July 2013 13:02, Nasser M. Abbasi <[email protected]> wrote:

Ok, here is my poor's man implementation of multiple columns
support in htlatex.

compile using

         htlatex foo.tex "my.cfg"

where my.cfg is

---------------------
\Preamble{ext=htm,pic-align}

\ConfigureEnv{newspaper}
{\HCode{<div class="newspaper">}}
{\HCode{</div>}}
{}{}
\begin{document}
\EndPreamble

\Css{.newspaper {
    -moz-column-count:2; /* Firefox */
    -webkit-column-count:2; /* Safari and Chrome */

    column-count:2;
    -moz-column-gap:10px; /* Firefox */
    -webkit-column-gap:10px; /* Safari and Chrome */
    column-gap:10px;
    -moz-column-rule:1px outset \#F8F8F8 ; /* Firefox */
    -webkit-column-rule:1px outset \#000000; /* Safari and Chrome */
    column-rule:1px outset \#000000;
}}
---------------------------

and foo.tex is


-------------------
\documentclass{article}%
\usepackage{lipsum}
\usepackage{multicol}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0.**01pt}
\newenvironment{newspaper}{}{}
\begin{document}

\ifdefined\HCode
   \begin{newspaper}
\else
   \begin{multicols}{2}
\fi

     \lipsum[1-10]

\ifdefined\HCode
   \end{newspaper}
\else
   \end{multicols}
\fi

\end{document}
-----------------------

The div is hardcoded to 2 columns in HTML for now and the
other properties are hardcoded.

One can make newenv. for 3 columns, or pass the number of
columns as argument, but I am not good in Latex to do that
yet.

So, the above now generates HTML with 2 columns. I tried
it on firefox, chrome and IE and it all works. And pdflatex
works as before.

This is better for me than having to use tabular with 2 columns
to get the same effect in HTML.

--Nasser



Reply via email to