通过带框架的 Tex4ht,使用配置文件 cc.cfg
\Preamble{xhtml,mathml,sections+,ext=htm,charset="utf-8",2,frames}
\Configure{@HEAD}{\HCode{<title>Good Morning</title>\Hnewline}}
\Configure{@HEAD}{\HCode{<link rel="profile" href="http://gmpg.org/xfn/11" />\Hnewline}}
\Configure{@HEAD}{\HCode{<link rel="shortcut icon" href="css/images/favicon.ico" />\Hnewline}}
\Configure{BODY}
{%
\HorFrames{*,3*}\Frame{s1}\Frame[ name="f2"]{s2}
\NoFrames
\PushStack\eBody{}
\SubConfig
\HPage[p1]{hello}\Link{}{s1}\EndLink
\bgroup
\Configure{Link}{a}{target="f2" href=}{name=}{}
\tableofcontents
\egroup
\EndHPage{p1} \Tg<br />
\HPage[p2]{text2222}\Link{}{s2}\EndLink
}
{ \EndHPage{p2}}
\Configure{DOCTYPE}
{\HCode{<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
\Hnewline "http://Hello1">\Hnewline}}
\def\SubConfig{%
\Configure{BODY}
{\PushStack\eBody{x}\Tg<body>}
{\PopStack\eBody\temp
\ifx \temp\empty \EndFrames \else\Tg</body>\fi}
\Configure{DOCTYPE}
{\HCode{%
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" \Hnewline "http://Hello2"> \Hnewline}}
}
\begin{document}
\EndPreamble
我正在尝试编译以下 tex 文件 site_test.tex
\documentclass{book}
%\usepackage[latin1]{inputenc}
\usepackage{inputenc}
\usepackage[english]{babel}
\pdfcompresslevel=9
\usepackage{minitoc}
\begin{document}
\dominitoc
\title{This is a title}
\date{Today is today}
\author{Joe}
\maketitle
\tableofcontents
\chapter{Chapter alpha}
\section{Alpha prime}
\section{Alpha secundus}
\subsection{Hello}
\subsection{Ciao}
\chapter{Chapter beta}
\section{bye}
\section{Here you are}
\end{document}
通过命令(在 MikteX Windows 8 上)
htlatex site_test.tex "cc.cfg"
我遇到了一些问题,想解决一下
该页面应名为“早上好”,网址:
\Configure{@HEAD}{\HCode{<title>Good Morning</title>\Hnewline}}
但它采用文档的标题“这是一个标题”(图标有效)
我试图将标题、日期和作者放在目录上方,但迄今为止没有成功。
在目录中,有 2 个“内容”。如何删除至少一个?
(有人知道通过修改 css 文件来改进网站的方法吗?)
我理解代码的整体结构,但还不够。如有必要,我可以发布 HTML 输出。有人有实际示例吗?欢迎提供任何帮助 :)
答案1
我认为这可能会有所帮助。TeX\tableofcontents
文件中使用的现在被注释,因为这会导致内容标题在框架中。修改后的 TeX 文件如下所示:
\documentclass{book}
%\usepackage[latin1]{inputenc}
\usepackage{inputenc}
\usepackage[english]{babel}
\pdfcompresslevel=9
\usepackage{minitoc}
\begin{document}
\dominitoc
\title{This is a title}
\date{Today is today}
\author{Joe}
\maketitle
%\tableofcontents
\chapter{Chapter alpha}
\section{Alpha prime}
\section{Alpha secundus}
\subsection{Hello}
\subsection{Ciao}
\chapter{Chapter beta}
\section{bye}
\section{Here you are}
\end{document}
我现在将尝试回答您的问题:
作为命令参数提供的内容
\title
将出现在<title>...</title>
HTML 中。如果您想删除默认文本,有一个简单的方法肮脏的实现方法:\Configure{TITLE}{\HCode{<title>}\special{t4ht@[}}{\special{t4ht@]}Good Morning\HCode{</title>\Hnewline}}
\special{t4ht@[}
和之间的所有字符都\special{t4ht@]}
将被忽略,标题的实际内容现在将被剥离,您的自定义标题Good Morning
现在将显示为标题。之前在您的例子中,浏览器使用第一个<title>...</title>
元素来显示标题。
\title
在第一次编译时将、\author
和的值放入 toc 并不容易。因此,我重新定义了标准命令,以便其参数在第一次编译时分别作为、和\date
写入辅助文件。请注意,现在我还没有考虑处理默认可用的可选参数。\Title
\Author
\Date
\let\Title\@empty \let\Author\@empty \let\Date\@empty \def\title#1{\gdef\@title{#1} \immediate\write\@auxout{\string\gdef\string\Title{#1}}} \def\author#1{\gdef\@author{#1} \immediate\write\@auxout{\string\gdef\string\Author{#1}}} \def\date#1{\gdef\@date{#1} \immediate\write\@auxout{\string\gdef\string\Date{#1}}}
这些命令现已添加到目录中,位于\tableofcontents
命令之前,如下所示:
\HPage[p1]{hello}\Link{}{s1}\EndLink
\bgroup
\Tg<span class="likechapterToc" >
\Tg<a target="f2" href="\jobname4.html\#s2" name="">\Title\Tg</a>
\Tg</span>\Tg<br />
\Tg<span class="likechapterToc" >
\Tg<a target="f2" href="\jobname4.html\#s2" name="">\Author\Tg</a>
\Tg</span>\Tg<br />
\Tg<span class="likechapterToc" >
\Tg<a target="f2" href="\jobname4.html\#s2" name="">\Date\Tg</a>
\Tg</span>\Tg<br />
\Configure{Link}{a}{target="f2" href=}{name=}{}
\tableofcontents
\egroup
\EndHPage{p1} \Tg<br />
当我们
\tableofcontents
从 TeX 文件中删除命令时,来自 toc 框架的重复条目现在消失了。这可能有点题外。但有人可以提出一个好建议。
因此,更新后的 cfg 如下所示:
\Preamble{xhtml,mathml,sections+,ext=htm,charset="utf-8",2,frames}
\Configure{TITLE}{\HCode{<title>}\special{t4ht@[}}{\special{t4ht@]}Good Morning\HCode{</title>\Hnewline}}
\Configure{@HEAD}{\HCode{<link rel="profile" href="http://gmpg.org/xfn/11" />\Hnewline}}
\Configure{@HEAD}{\HCode{<link rel="shortcut icon" href="css/images/favicon.ico" />\Hnewline}}
\makeatletter
\let\Title\@empty
\let\Author\@empty
\let\Date\@empty
\def\title#1{\gdef\@title{#1}
\immediate\write\@auxout{\string\gdef\string\Title{#1}}}
\def\author#1{\gdef\@author{#1}
\immediate\write\@auxout{\string\gdef\string\Author{#1}}}
\def\date#1{\gdef\@date{#1}
\immediate\write\@auxout{\string\gdef\string\Date{#1}}}
\Configure{BODY}
{\Tg<a id="title"/>%
\HorFrames{*,3*}\Frame{s1}\Frame[ name="f2"]{s2}
\NoFrames
\PushStack\eBody{}
\SubConfig
\HPage[p1]{hello}\Link{}{s1}\EndLink
\bgroup
\Tg<span class="likechapterToc" >
\Tg<a target="f2" href="\jobname4.html\#s2" name="">\Title\Tg</a>
\Tg</span>\Tg<br />
\Tg<span class="likechapterToc" >
\Tg<a target="f2" href="\jobname4.html\#s2" name="">\Author\Tg</a>
\Tg</span>\Tg<br />
\Tg<span class="likechapterToc" >
\Tg<a target="f2" href="\jobname4.html\#s2" name="">\Date\Tg</a>
\Tg</span>\Tg<br />
\Configure{Link}{a}{target="f2" href=}{name=}{}
\tableofcontents
\egroup
\EndHPage{p1} \Tg<br />
\HPage[p2]{text2222}\Link{}{s2}\EndLink
}
{ \EndHPage{p2}}
\Configure{DOCTYPE}
{\HCode{<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
\Hnewline "http://Hello1">\Hnewline}}
\def\SubConfig{%
\Configure{BODY}
{\PushStack\eBody{x}\Tg<body>}
{\PopStack\eBody\temp
\ifx \temp\empty \EndFrames \else\Tg</body>\fi}
\Configure{DOCTYPE}
{\HCode{%
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" \Hnewline "http://Hello2"> \Hnewline}}
}
\makeatother
\begin{document}
\EndPreamble