Otros formatos de salida de conversión TeX | Pitón

Es poco probable que actualmente necesites convertir un archivo TeX escrito en un formato que no sea LaTeX. Sin embargo, si por algún motivo estás estudiando el lenguaje TeX o las partes internas de TeX, todavía es posible. En cualquier caso, Aspose.TeX para Python le permite convertir archivos escritos en formato Plain TeX y también le permite crear formatos personalizados y componer documentos diseñados en estos formatos.

Para comenzar, crearemos un formato personalizado.

Creando un formato personalizado

Tengamos en cuenta que el archivo de formato es una representación binaria del estado interno del motor TeX.

 1# Create TeX engine options for no format upon ObjectTeX engine extension.
 2options = TeXOptions.console_app_options(TeXConfig.object_ini_tex)
 3# Specify a file system working directory for the input.
 4options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
 5# Specify a file system working directory for the output.
 6options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
 7
 8# Run format creation.
 9TeXJob.create_format("customtex", options)
10
11# For further output to look fine.
12options.terminal_out.writer.write_line()

Como puede ver, el código se parece al código para convertir un archivo TeX. Sin embargo, hay algunas distinciones.

En primer lugar, en este caso, utilizamos la configuración del trabajo TeXConfig.object_ini_tex. Esta configuración garantiza que el estado del motor sea “virgen”, lo que significa que los parámetros internos tienen sus valores predeterminados y el conjunto de secuencias de control se alinea con el conjunto de primitivas. En nuestro ejemplo, el conjunto de primitivas se amplía en el artículo Aspose.TeX y Object TeX.

A continuación, procedemos a configurar los directorios de trabajo de entrada y salida como de costumbre. El directorio de trabajo de entrada debe incluir el archivo fuente del formato principal y todas sus dependencias.

Y la segunda gran diferencia es el método mediante el cual ejecutamos el trabajo. En este caso, utilizamos el método estático create_format(), que, junto con las opciones, requiere que el nombre del archivo fuente principal sea idéntico al nombre del formato.

Componer un archivo TeX en su formato personalizado

Ahora que hemos creado nuestro propio formato TeX, podemos proceder a componer un archivo TeX escrito en este formato. Aquí está el código:

 1# Create the format provider using the file system input working directory.
 2# We use the project output directory as our custom format file is supposed to be located there.
 3with FormatProvider(InputFileSystemDirectory(Util.output_directory), "customtex") as format_provider:
 4    # Create conversion options for a custom format upon ObjectTeX engine extension.
 5    options = TeXOptions.console_app_options(TeXConfig.object_tex(format_provider))
 6    options.job_name = "typeset-with-custom-format"
 7    # Specify the input working directory. This is not required here as we are providing the main input as a stream.
 8    # But it is required when the main input has dependencies (e.g. images).
 9    options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
10    # Specify a file system working directory for the output.
11    options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
12
13    # Run the job.
14    TeXJob(BytesIO("Congratulations! You have successfully typeset this text with your own TeX format!\\end".encode('ascii')),
15           XpsDevice(), options).run()
16
17    # For further output to look fine.
18    options.terminal_out.writer.write_line()

Para especificar el formato, necesitamos crear una instancia de la clase FormatProvider. En el constructor de opciones, usamos la configuración TeXConfig.object_tex(), que requiere nuestro proveedor de formato como argumento y carga el formato encima del estado “virgen” del motor.

El código restante debería resultarle familiar, ya que utiliza las funciones que se analizaron anteriormente en esta guía.

Composición tipográfica de un archivo TeX en formato Plain TeX

Si eliminamos el proveedor de formato del código mostrado arriba, el motor cargará el formato predeterminado, que es Object TeX en su cuarto sentido. Por lo tanto, si tiene un archivo TeX escrito en formato Plain TeX, puede convertirlo a cualquier formato de destino compatible utilizando este enfoque.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.