我正在尝试使用以下代码使用 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,我得到:
编辑#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
现在可以仅提供带有扩展名的名为此包的文件。.4ht
decosection.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
定义。