Este es el comando texexpand que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
texexpand - expandir \ entrada e \ incluir declaraciones en un archivo TeX
DESCRIPCIÓN
Mecanismo de traducción general:
El programa principal latex2html llama a texexpand con el nombre del documento para expandir algunos
de sus declaraciones \ input e \ include, aquí también llamado 'fusión', y para escribir una lista de
estilo, clase, entrada o incluir nombres de archivo sensibilizados. Cuando texexpand ha terminado, todos
está contenido en un archivo, TMP_foo. (se asume que foo.tex es el nombre del documento a
traducir).
En esta versión, texexpand se preocupa por los siguientes entornos que pueden abarcar archivos /
límites de la sección: a) \ begin {comment} b)% begin {comment} c) \ begin {any} introducido con
\ excludecomment d)% begin {any} e) \ begin {verbatim} f) \ begin {latexonly} g)
% begin {latexonly}
e) - g) evitar que texexpand expanda los archivos de entrada, pero el contenido del entorno va
completamente en el archivo de salida.
Junto con cada combinación de \ input, etc., existen los llamados marcadores %%% texexpand
acompañando el límite.
Cuando latex2html lee en el archivo de salida, usa estos marcadores para escribir cada parte en un
archivo separado y procesarlos más.
Hay una técnico nota:
1.% begin {latexonly} y% end {latexonly} deben estar en una línea separada. Cualquier cosa entre
estas etiquetas (incluidas las etiquetas) se descartan.
2. \ begin {latexonly} y \ end {latexonly} deben estar en una línea separada. Cualquier cosa entre
estas etiquetas (incluidas las etiquetas) no se expanden.
3. [% \] begin {"para excluir"} y [% \] end {"para excluir"} deben estar en una línea separada.
Todo lo que se encuentre entre estas etiquetas (incluidas las etiquetas) se descarta.
4. \ begin {verbatim / verbatim *} y \ end {verbatim / verbatim *} deben estar en una línea separada.
Cualquier cosa entre estas etiquetas (incluidas las etiquetas) no se expande.
5. El alcance de cualquiera de estas etiquetas puede extenderse a varios archivos. La etiqueta de apertura para
latexonly puede ocurrir en un nivel de inclusión diferente al de la etiqueta de cierre. La etiqueta de apertura
para palabra por palabra / "para excluir" debe aparecer dentro del mismo archivo que la etiqueta de cierre.
6. Las advertencias se imprimen cuando el documento se ha analizado y quedan etiquetas abiertas.
7. Cuando se encuentre en un entorno "para excluir" / textualmente, texexpand no reconocerá NINGÚN comando
excepto la etiqueta de cierre correspondiente. No puede haber construcciones anidadas. Esta
El comportamiento es idéntico al de LaTeX.
8. \ begin {latexonly}, \ end {latexonly} puede estar anidado, mientras que
% begin {latexonly},% end {latexonly} puede no estar anidado.
9. Una etiqueta "%" no puede cerrar una etiqueta "\" y viceversa.
10. Cada \documento(clase | estilo), \ usepackage, \ input e \ include comando tiene que estar en un
línea separada.
11. Todo lo que esté detrás de un `% 'que no esté precedido por un` \' se considera un comentario, es decir,
se imprime pero no se interpreta.
12. Si alguno de los comandos enumerados en 10. está precedido por una aparición de `\ verb 'o` \ latex' entonces
NO se interpreta. Esto se bloquea en líneas como esta: blah blah \ verb + foo foo +
\ input {bar}% bar no se cargará!
13. Los paquetes proporcionados a través de \ usepackage se manejan de la misma manera que las `opciones 'en
\documento(clase | estilo), es decir, se incluyen cuando -auto_exclude está desactivado, el paquete
no está en @dont_include * O * el paquete está en @do_include (nuevo). Se agregan al
archivo de estilo junto con sus opciones si el archivo en sí no se ha fusionado.
\ documentclass [opciones] {clase} busca cada option.clo,
\ documentstyle [opciones] {estilo} busca todas las opciones.
\ usepackage [opciones] {paquetes} busca cada paquete.sty.
14. En cada directorio texinputs se buscan archivos / estilos de entrada. Si termina en `// ', el
se busca en todo el árbol de subdirectorios.
15. \ input / \ include fusiona el archivo dado (si se encuentra bajo el nombre dado o con .tex
extensión) si su nombre base está en @do_include o si no está en @dont_include o si el
El nombre de archivo dado no termina en .sty / .clo / .cls cuando se establece -auto_exclude.
Notas
Reconoce \ documentclass, \ documentstyle, \ usepackage, \ RequirePackage,
\ begin {verbatim} ... \ end {verbatim},% begin {latexonly} ...% end {latexonly},
\ begin {latexonly} ... \ end {latexonly}, \ input, \ include, \ verb, \ latex \ endinput,
\ end {document} \ includecomment, \ excludecomment \ begin {"para excluir"}, \ end {"para excluir"}
% begin {"to exclude"},% end {"to exclude"}
La pestaña sangriento Detalles
Incluya y analice un archivo. Esta rutina es recursiva, consulte también
& process_input_include_file, & process_document_header y & process_package_cmd.
Dos banderas globales controlan los estados de texexpand.
o $ active es verdadero si debemos interpretar las líneas para expandir archivos, buscar paquetes,
etc.
o $ mute es verdadero si debemos evitar que las líneas entren en el archivo de salida.
Tenemos tres estados generales de texexpand:
1) interpretar las líneas y pasarlas al archivo de salida Este es el caso normal.
Correspondiente: $ active true, $ mute false
2) interpretar mínimos y suprimirlos
Esto es cuando se analiza dentro de un entorno de comentarios, que
también conservaría su cuerpo de LaTeX. => $ activo falso, $ mute verdadero
3) interprete el mínimo y pase las líneas al archivo de salida
Esto está dentro de un entorno textual o solo de látex.
La línea, por supuesto, debe interpretarse al menos para determinar la etiqueta de cierre.
=> $ activo falso, $ mute falso
Cualquier entorno puede extenderse a varios archivos de inclusión. Cualquier entorno excepto textualmente
y latexonly puede tener su etiqueta de apertura o cierre en diferentes niveles de entrada. El comentario
y los entornos textuales no se pueden anidar, como ocurre con LaTeX. Debemos al menos analizar
entornos textuales / de comentarios en entornos solo de látex, para detectar etiquetas falsas de solo látex.
El esquema de trabajo: Cinco funciones influyen en el comportamiento de texexpand. o & process_file abre el
dado y analiza la parte sin comentarios para establecer $ active y $ mute (ver arriba).
Llama e interpreta para interpretar el contenido sin comentarios y continúa con el
siguiente línea de su archivo o termina si & interprete detectó el \ end {documento} o un
\ endinput.
o & interprete maneja algunas etiquetas LaTeX con respecto a los tres estados controlados por
$ active y $ mute. Con respecto a \ input | include, \documento(clase | estilo), y
\ (use | Require) empaquetar las funciones & process_input_include_file, & process_document_header,
y & process_package_cmd se llaman respectivamente.
o Estas tres funciones comprueban si el nombre del archivo o los archivos de opciones están habilitados o deshabilitados para
fusión (a través de TEXE_DO_INCLUDE o TEXE_DONT_INCLUDE). Cualquier archivo que se incluya será
'fusionado' en el archivo actual, es decir, se llama a la función & process_file en este lugar
en el tiempo (recursivamente). Esto detendrá la interpretación en la línea actual en el archivo, comience
con el nuevo archivo para procesar y continúa con la siguiente línea tan pronto como el nuevo archivo es
interpretado hasta el final.
El árbol de llamadas (noweb + xy.sty sería útil aquí):
principal
|
v
+ -> archivo_proceso
| |
| v
| interpretar (con respecto a la línea actual, una de esas tres)
| | | |
| vvv
| proceso_entrada_incluir_archivo proceso_documento_encabezado proceso_paquete_cmd
| | | |
| vvv
+ ---- + --------------------------- + ---------------- -------- +
Errores: o Dado que el entorno de látex no se analiza, su contenido puede introducir
entornos que no son reconocidos.
o La etiqueta de cierre para latexonly no se encuentra si está oculta dentro de un archivo de entrada.
o ¡Una etiqueta de entorno por línea, todavía!
o Si tuviera que diseñar casos de prueba para esta bestia, desintegraría inmediatamente
en una nube lógica.
Notas:
o Ok, diseñé casos de prueba para ello. Consulte la prueba 'expandir' de la prueba de regresión
suite en el módulo de desarrolladores del repositorio l2h.
o -unsegment feature: En este (raro) caso, el usuario quiere traducir un segmento
documentar no en segmentos sino en un todo (para probar, digamos). Permitimos esto reconociendo
el comando \ segmento en & interprete, lo que hace que el archivo de segmento se trate como \ input
pero perdiendo las primeras líneas antes de \ startdocument (incl.), como se controla a través de
$ archivo de segmento. Sobre cómo segmentar un documento, lo mejor es guiarse por la sección `` Documento
Segmentación '' del manual LaTeX2HTML.
AVISOS
Esta utilidad se configura y construye automáticamente para funcionar en la configuración local. Si esto
cambios de configuración (por ejemplo, algunos de los comandos externos se mueven), el script debe ser
reconfigurado.
Escritores
Basado en texexpand de Robert Thau, laboratorio de IA del MIT, incluidas las modificaciones de
Franz Vojik[email protected]>
Nikos Drakos[email protected]>
Sebastián Rahtz[email protected]>
Maximilian Ott[email protected]>
Martín Boyer
herbert cisne
Jens Lippman
Use texexpand en línea usando los servicios de onworks.net
