使用 tex4ht 将两张图片两侧的文本居中

使用 tex4ht 将两张图片两侧的文本居中

我正在尝试使用以下代码使用 tex4ht 创建 HTML 页面:

\rput[r](-2pt,6pt){\psvectorian[color=black,width=2cm]{41}}
\hfill{}
{\Large \url{Title Text}}
\hfill{}
\rput[l](0,6pt){\psvectorian[color=black,width=2cm]{42}}
\section{New Section}
This is a section. This is a section. 

我得到的是:

定心

有没有更好的方法让文本居中并将图像推到左/右?

编辑#1:

我还想提一下,这个问题只针对 tex4ht/HTML。对于 latex + dvipdf,我得到:

latex + dvipdf

编辑#2:

我只是想发布 michal.h21 提供的精彩答案的输出。tex4ht 无疑很强大,但我发现文档很难理解。希望这对其他人有所帮助:

解决方案

答案1

tex4ht不知道如何将您的\hfill命令转换为css,您必须自己创建css定义。

首先,我将为标题创建命令并将其分离到包中。例如decosection.sty

\ProvidesPackage{decosection}
\RequirePackage{psvectorian}
\newcommand\decosection[1]{%
        \dc@leftorn
        \hfill
        {\Large #1}
        \hfill
        \dc@rightorn
}

\newcommand\dc@rightorn{%
        \rput[r](-2pt,6pt){\psvectorian[color=black,width=2cm]{41}}
}

\newcommand\dc@leftorn{%
        \rput[l](0,6pt){\psvectorian[color=black,width=2cm]{42}}
}

现在你可以在文档中使用类似

\documentclass{article}
\usepackage{decosection}
\begin{document}
        \decosection{Title Text}

        ble bla ble ble bla ble ble bla ble ble bla ble
        ble bla ble ble bla ble ble bla ble ble bla ble 
        ble bla ble ble bla ble ble bla ble ble bla ble
        ble bla ble ble bla ble ble bla ble ble bla ble
        ble bla ble ble bla ble ble bla ble ble bla ble
\end{document}

因为命令在单独的包中,所以在这种情况下,您\decosection现在可以仅提供带有扩展名的名为此包的文件。.4htdecosection.4ht

\NewConfigure{decosection}{4}

\renewcommand\decosection[1]{%
\a:decosection%
\dc@leftorn%
\b:decosection%
#1%
\c:decosection%
\dc@rightorn%
\d:decosection%
}
\Configure{decosection}{%
\ifvmode\IgnorePar\fi\EndP%
\HCode{<div class="decosection"><div class="left-ornament">\Hnewline}
}{\HCode{</div>\Hnewline<div class="decosection-title">}}%
{\HCode{</div>\Hnewline<div class="right-ornament">}}%
{\HCode{</div></div>\Hnewline}}%
\Css{%
        .decosection{
                width:100\%;
                clear:both;
                overflow:auto;
        }
        .left-ornament, .decosection-title, .right-ornament{
                float:left;
        }
        .left-ornament{
                width:25\%;
        }
        .decosection-title{
                text-align:center;
                width:50\%;
                font-size:200\%;
        }
        .right-ornament{
                width:25\%;
                text-align:right;
        }
}

tex4ht加载时会自动调用此文件decosection.sty。我们需要创建所谓的hooks可配置位置,稍后我们将html标签放在那里。使用命令\NewConfigure我们创建了四个钩子,因为我们需要将它们放在元素的开头、结尾和之间。这些钩子被命名为\a:docusection...\d:docusection

然后我们需要重新定义命令并将钩子放到它们的位置。如您所见,不需要改变外观的命令,如\hfill\large。可视化输出是钩子和 的标签的工作css

使用时\Configure,我们放入一些标签,在这种情况下仅<div>带有各种class属性,用于css设置外观样式。

最后,\Css命令用于输入css定义。

相关内容