make4ht 用於純文字

make4ht 用於純文字

我想使用將純 tex 文件轉換為 html製作4ht。如果我使用此命令列,make4ht document.tex程式將呼叫編譯器“latex”並阻止編譯。該make4ht --help命令沒有解釋如何編譯純文字。

將純 tex 文件編譯為 html 文件的確切命令列是什麼?

答案1

讓 TeX4ht 與 Plain TeX 一起工作並不是那麼簡單。烏爾里克已經指出了我的較舊的答案。我們可以以此為起點。將以下程式碼另存為plain-4ht.tex

% file plain-4ht.tex
% the following macro needs to be executed in order to include all .4ht files
\csname tex4ht\endcsname

我已將代碼簡化到最低限度。這\csname tex4ht\endcsname指令才能插入基本 HTML 結構。

該檔案只需插入所有巨集定義之後:

\input plain-4ht

Hello world
\bye

下一個問題是如何使用make4ht.我們需要為此使用建置文件。將以下文件另存為mybuild.lua

Make:add("httex", 
'${htlatex} --interaction=${interaction} ${latex_par}' ..
"'\\def\\Link#1.a.b.c.{\\expandafter\\def\\csname tex4ht\\endcsname{\\expandafter\\def\\csname tex4ht\\endcsname{#1,html}\\input tex4ht.sty }}" ..
"\\def\\HCode{\\futurelet\\HCode\\HChar}\\def\\HChar{\\ifx\"\\HCode\\def\\HCode\"##1\"{\\Link##1}\\expandafter\\HCode\\else\\expandafter\\Link\\fi}" ..
"\\HCode ${tex4ht_sty_par}.a.b.c.\\input \"\\detokenize{${tex_file}}\"'", 
{htlatex="dviluatex"})
Make:httex {}

它使用該Make:add命令創建Make:httex執行 Plain TeX 的新命令。使用的引擎可以透過htlatex參數配置(預設引擎為htlatex="dviluatex"

您可以使用以下方式編譯文檔

make4ht -e mybuild.lua filename.tex

最後一個問題是如何配置自訂巨集。由於經過修補,TeX4ht 可以載入特定檔案的設定文件\usepackage命令載入特定文件的設定文件,但它在 Plain 中不起作用。

假設您有一個文件mymacros.tex

\def\mytitle#1{\bgroup\bf #1\egroup\par}

我們想要在 HTML 文件中使用<h1>for 元素。\mytitle建立文件mymacros.4ht

\NewConfigure{mytitle}{2}
\def\mytitle#1{\a:mytitle#1\b:mytitle\par}

\Configure{mytitle}{\ifvmode\IgnorePar\fi\EndP\HCode{<h1>}}{\HCode{</h1>}}

範例文件:

\input mymacros
\input plain-4ht

\mytitle{My title}

Some text.

\bye

mymacros.4ht文件可以包含在.cfg文件中:

\Preamble{xhtml}
\catcode`\:=11
\input mymacros.4ht
\catcode`\:=12
\EndPreamble

我們需要使用正確的catcodes,因為:字元在.4ht。這一切都是在 LaTeX 中自動完成的。

現在您可以使用以下命令編譯文件:

 make4ht -e mybuild.lua -c config.cfg filename.tex

這是結果:

在此輸入影像描述

<!DOCTYPE html> 
<html lang='en-US' xml:lang='en-US'> 
<head>

<title>sample.html</title> 
<meta charset='utf-8' /> 
<meta name='generator' content='TeX4ht (http://www.tug.org/tex4ht/)' /> 
<meta name='viewport' content='width=device-width,initial-scale=1' /> 
<link rel='stylesheet' href='sample.css' type='text/css' /> 
<meta name='src' content='sample.tex' /> 
</head><body>
<h1>My title</h1>
<!-- l. 6 --><p class='indent'>    Some text.

</p>    

</body> 
</html>

相關內容