Altri formati di output di conversione Tex | Java
È altamente improbabile che tu voglia attualmente convertire un file Tex scritto in qualsiasi altro formato rispetto a LaTex. Ma questo è possibile se stai studiando la lingua Tex e/o gli interni per qualche motivo. Ad ogni modo, Aspose.TeX per java ti consente di convertire i file scritti in semplice formato tex. Inoltre, consente di creare formati personalizzati e documenti di composizione progettati in questi formati.
Inizieremo con la creazione di un formato personalizzato.
Creazione di un formato personalizzato
Ricordiamo che il file di formato è una dump binaria dello stato interno del motore Tex.
1// Create TeX engine options for no format upon ObjectTeX engine extension.
2TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectIniTeX());
3// Specify a file system working directory for the input.
4options.setInputWorkingDirectory(new InputFileSystemDirectory(Utils.getInputDirectory()));
5// Specify a file system working directory for the output.
6options.setOutputWorkingDirectory(new OutputFileSystemDirectory(Utils.getOutputDirectory()));
7
8// Run format creation.
9TeXJob.createFormat("customtex", options);
10
11// For further output to look fine.
12options.getTerminalOut().getWriter().newLine();
Come puoi vedere, il codice è simile al codice per la conversione di un file Tex. Ma ci sono alcune differenze.
Innanzitutto, qui utilizziamo la configurazione del lavoro TexConfig.ObjectInitex(). Questa è una configurazione speciale che lascia lo stato del motore “vergine”, ovvero i parametri interni hanno i loro valori predefiniti e l’insieme di sequenze di controllo coincide con l’insieme di primitive. Nel nostro esempio, l’insieme di primitive è esteso nel senso menzionato qui.
Successivamente, impostiamo le directory di lavoro input e output come al solito. La directory di lavoro input deve contenere il file di origine del formato principale e tutte le sue dipendenze.
E la seconda differenza chiave è il modo in cui gestiamo il lavoro. Questa volta utilizziamo il metodo statico createFormat(), che insieme alle opzioni prende il nome del file di origine principale, che deve essere uguale al nome del formato.
Compromettere un file tex nel tuo formato personalizzato
Ora che abbiamo il nostro formato tex, vogliamo scrivere un file Tex scritto in questo formato. Ecco il codice:
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.
3final FormatProvider formatProvider = new FormatProvider(
4 new InputFileSystemDirectory(Utils.getOutputDirectory()), "customtex");
5try {
6 // Create conversion options for a custom format upon ObjectTeX engine extension.
7 TeXOptions options = TeXOptions.consoleAppOptions(TeXConfig.objectTeX(formatProvider));
8 options.setJobName("typeset-with-custom-format");
9 // Specify the input working directory. This is not required here as we are providing the main input as a stream.
10 // But it is required when the main input has dependencies (e.g. images).
11 options.setInputWorkingDirectory(new InputFileSystemDirectory(Utils.getInputDirectory()));
12 // Specify a file system working directory for the output.
13 options.setOutputWorkingDirectory(new OutputFileSystemDirectory(Utils.getOutputDirectory()));
14
15 // Run the job.
16 new TeXJob(new ByteArrayInputStream(
17 "Congratulations! You have successfully typeset this text with your own TeX format!\\end".getBytes("ASCII")),
18 new XpsDevice(), options).run();
19
20 // For further output to look fine.
21 options.getTerminalOut().getWriter().newLine();
22} finally {
23 formatProvider.close();
24}
Ovviamente, dobbiamo in qualche modo specificare il formato. Prima di tutto, dobbiamo creare un’istanza della classe FormatProvider. Quindi, nel costruttore di opzioni, utilizziamo la configurazione TexConfig.objectx(), che prende il nostro fornitore di formato come argomento e carica il formato in cima allo stato “vergine” del motore.
Il resto del codice dovrebbe essere familiare a te. Utilizza le funzionalità discusse in precedenza in questa guida.
Testa di un file tex in un formato Tex semplice
Se gettiamo via il provider di formato dal codice appena dimostrato, il motore caricherà il formato predefinito, che è Object Tex nel suo quarto senso. Pertanto, se hai un file Tex scritto in un semplice formato Tex, in questo modo puoi convertirlo in qualsiasi formato target supportato.