Quiero convertir un documento de texto simple a html usandohacer4ht. Si uso esta línea de comando, make4ht document.tex
el programa llama al compilador "latex" y bloquea la compilación. El make4ht --help
comando no explica cómo compilar el texto sin formato.
¿Cuál es la línea de comando exacta para compilar un documento de texto sin formato a html?
Respuesta1
No es tan sencillo hacer que TeX4ht funcione con Plain TeX. Ulrike ya me señalórespuesta anterior. Podemos usar eso como punto de partida. Guarde el siguiente 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
He simplificado el código al mínimo. El \csname tex4ht\endcsname
comando debe ejecutarse para insertar la estructura HTML básica.
Este archivo sólo necesita insertarse después de todas las definiciones de macro:
\input plain-4ht
Hello world
\bye
El siguiente problema es cómo ejecutar TeX simple usando make4ht
. Necesitamos usar un archivo de compilación para eso. Guarde el siguiente archivo 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 {}
Utiliza el Make:add
comando para crear un nuevo comando Make:httex
que ejecuta Plain TeX. El motor usado se puede configurar usando htlatex
el parámetro (el motor predeterminado es htlatex="dviluatex"
)
Puedes compilar el documento usando
make4ht -e mybuild.lua filename.tex
La última cuestión es cómo configurar sus macros personalizadas. TeX4ht puede cargar archivos de configuración para archivos particulares gracias al \usepackage
comando parcheado, pero no funciona en Plain.
Digamos que tienes un archivo mymacros.tex
:
\def\mytitle#1{\bgroup\bf #1\egroup\par}
Queremos utilizar el <h1>
elemento for \mytitle
en el documento HTML. Crea un archivo mymacros.4ht
:
\NewConfigure{mytitle}{2}
\def\mytitle#1{\a:mytitle#1\b:mytitle\par}
\Configure{mytitle}{\ifvmode\IgnorePar\fi\EndP\HCode{<h1>}}{\HCode{</h1>}}
Un documento de muestra:
\input mymacros
\input plain-4ht
\mytitle{My title}
Some text.
\bye
El mymacros.4ht
archivo se puede incluir en el .cfg
archivo:
\Preamble{xhtml}
\catcode`\:=11
\input mymacros.4ht
\catcode`\:=12
\EndPreamble
Necesitamos usar códigos cat correctos ya que :
se usan caracteres en los .4ht
archivos. Todo esto se hace automáticamente en LaTeX.
Ahora puedes compilar el documento usando:
make4ht -e mybuild.lua -c config.cfg filename.tex
Este es el 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>