make4ht para tex simple

make4ht para tex simple

Quiero convertir un documento de texto simple a html usandohacer4ht. Si uso esta línea de comando, make4ht document.texel programa llama al compilador "latex" y bloquea la compilación. El make4ht --helpcomando 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\endcsnamecomando 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:addcomando para crear un nuevo comando Make:httexque ejecuta Plain TeX. El motor usado se puede configurar usando htlatexel 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 \usepackagecomando 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 \mytitleen 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.4htarchivo se puede incluir en el .cfgarchivo:

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

Necesitamos usar códigos cat correctos ya que :se usan caracteres en los .4htarchivos. 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:

ingrese la descripción de la imagen aquí

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

información relacionada