make4ht para texto simples

make4ht para texto simples

Quero converter um documento tex simples para html usandomake4ht. Se eu usar esta linha de comando make4ht document.texo programa chama o compilador "latex" e bloqueia a compilação. O make4ht --helpcomando 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\endcsnamecomando 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:addcomando para criar um novo comando Make:httexque executa o Plain TeX. O mecanismo usado pode ser configurado usando htlatexo 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 \usepackagecomando 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 \mytitleno 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.4htarquivo pode ser incluído no .cfgarquivo:

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

Precisamos usar catcodes corretos à medida que :os caracteres são usados ​​nos .4htarquivos. 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:

insira a descrição da imagem aqui

<!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>

informação relacionada