Quero converter um documento tex simples para html usandomake4ht. Se eu usar esta linha de comando make4ht document.tex
o programa chama o compilador "latex" e bloqueia a compilação. O make4ht --help
comando não explica como compilar o texto simples.
Qual é a linha de comando exata para compilar um documento tex simples para html?
Responder1
Não é tão simples fazer o TeX4ht funcionar com o Plain TeX. Ulrike já apontou para o meuresposta mais antiga. Podemos usar isso como ponto de partida. Salve o seguinte código como plain-4ht.tex
:
% file plain-4ht.tex
% the following macro needs to be executed in order to include all .4ht files
\csname tex4ht\endcsname
Simplifiquei o código ao mínimo. O \csname tex4ht\endcsname
comando precisa ser executado para inserir a estrutura HTML básica.
Este arquivo só precisa ser inserido após todas as definições de macro:
\input plain-4ht
Hello world
\bye
A próxima questão é como realmente executar TeX simples usando make4ht
. Precisamos usar um arquivo de construção para isso. Salve o seguinte arquivo como 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 {}
Ele usa o Make:add
comando para criar um novo comando Make:httex
que executa o Plain TeX. O mecanismo usado pode ser configurado usando htlatex
o parâmetro (o mecanismo padrão é htlatex="dviluatex"
)
Você pode compilar o documento usando
make4ht -e mybuild.lua filename.tex
A última questão é como configurar suas macros personalizadas. TeX4ht pode carregar arquivos de configuração para arquivos específicos graças ao \usepackage
comando corrigido, mas não funciona no Plain.
Digamos que você tenha um arquivo mymacros.tex
:
\def\mytitle#1{\bgroup\bf #1\egroup\par}
Queremos usar o <h1>
elemento for \mytitle
no documento HTML. Criar arquivo mymacros.4ht
:
\NewConfigure{mytitle}{2}
\def\mytitle#1{\a:mytitle#1\b:mytitle\par}
\Configure{mytitle}{\ifvmode\IgnorePar\fi\EndP\HCode{<h1>}}{\HCode{</h1>}}
Um documento de amostra:
\input mymacros
\input plain-4ht
\mytitle{My title}
Some text.
\bye
O mymacros.4ht
arquivo pode ser incluído no .cfg
arquivo:
\Preamble{xhtml}
\catcode`\:=11
\input mymacros.4ht
\catcode`\:=12
\EndPreamble
Precisamos usar catcodes corretos à medida que :
os caracteres são usados nos .4ht
arquivos. Tudo isso é feito automaticamente em LaTeX.
Agora você pode compilar o documento usando:
make4ht -e mybuild.lua -c config.cfg filename.tex
Este é o resultado:
<!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>