Altri formati di output di conversione Tex | Python tramite .NET

È improbabile che tu sia attualmente necessario convertire un file Tex scritto in un formato diverso dal LaTeX. Tuttavia, se stai studiando gli interni di Tex Language o Tex per qualsiasi motivo, è ancora possibile. In ogni caso, Aspose.TeX per Python consente di convertire i file scritti in un formatosemplice texe consente anche di creare formati personalizzati e documenti di composizione progettati in questi formati.

Per iniziare, creeremo un formato personalizzato.

Creazione di un formato personalizzato

Teniamo presente che il file di formato è una rappresentazione binaria dello stato interno del motore Tex.

 1from aspose.tex import *
 2from aspose.tex.io import *
 3from util import Util
 4###############################################
 5###### Class and Method declaration here ######
 6###############################################
 7
 8# Create TeX engine options for no format upon ObjectTeX engine extension.
 9options = TeXOptions.console_app_options(TeXConfig.object_ini_tex)
10# Specify a file system working directory for the input.
11options.input_working_directory = InputFileSystemDirectory(Util.input_directory)
12# Specify a file system working directory for the output.
13options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
14
15# Run format creation.
16TeXJob.create_format("customtex", options)
17
18# For further output to look fine.
19options.terminal_out.writer.write_line()

Come puoi vedere, il codice ha una somiglianza con il codice per la conversione di un file Tex. Tuttavia, ci sono alcune distinzioni.

In primo luogo, in questo caso, utilizziamo la configurazione del lavoro TexConfig.object_ini_tex. Questa configurazione garantisce che lo stato del motore sia “vergine”, il che significa che i parametri interni hanno i loro valori predefiniti e l’insieme di sequenze di controllo si allinea con l’insieme di primitive. Nel nostro esempio, l’insieme di primitivi viene ampliato nell’articolo Aspy.tex e Object tex.

In seguito, procediamo con la configurazione delle directory di lavoro input e output come al solito. La directory di lavoro input dovrebbe includere il file di origine del formato principale e tutte le sue dipendenze.

E la seconda grande differenza è il metodo con cui eseguiamo il lavoro. In questo caso, utilizziamo il metodo statico create_format (), che, insieme alle opzioni, richiede che il nome del file di origine principale sia identico al nome del formato.

Compromettere un file tex nel tuo formato personalizzato

Ora che abbiamo creato il nostro formato tex, possiamo procedere a compensare un file tex scritto in questo formato. Ecco il codice:

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

Per specificare il formato, dobbiamo creare un’istanza della classe FormatProvider. Nel costruttore di opzioni, utilizziamo la configurazione TexConfig.Object_tex(), che richiede il nostro provider di formato come argomento e carica il formato in cima allo stato “vergine” del motore.

Il codice rimanente dovrebbe essere familiare, in quanto utilizza le caratteristiche discusse in precedenza in questa guida.

Testa di un file tex in un formato Tex semplice

Se rimuoviamo il provider di formato dal codice mostrato sopra, il motore caricherà il formato predefinito, che è Object Tex nel suo quarto senso. Pertanto, se hai un file Tex scritto nel semplice formato Tex, è possibile convertirlo in qualsiasi formato target supportato usando questo approccio.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.