其他TEX转换输出格式| Python
您目前不太可能需要转换以乳胶以外的其他格式编写的TEX文件。但是,如果您出于任何原因正在研究Tex语言或Tex的内部内容,那仍然是可能的。无论如何,Aspose.TeX for Python使您可以转换以普通Tex格式编写的文件,还允许您创建以这些格式设计的自定义格式和排版文档。
首先,我们将创建一种自定义格式。
创建自定义格式
请记住,格式文件是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()
如您所见,代码与转换Tex文件的代码相似。但是,有一些区别。
首先,在这种情况下,我们使用 texconfig.object_ini_tex作业配置。这种配置可确保发动机的状态为“处女”,这意味着内部参数具有其默认值,并且控制序列的集合与原始序列一组对齐。在我们的示例中,(在Aspose.TeX和Object Tex文章)中扩展了一组原语(2)。
在此之后,我们继续设置输入和输出工作目录。输入工作目录应包括主要格式源文件及其所有依赖项。
第二个主要区别是我们执行工作的方法。在这种情况下,我们使用静态 create_format()方法,该方法与选项结合使用,要求主源文件的名称与格式名称相同。
以您的自定义格式排版TEX文件
现在,我们已经创建了自己的TEX格式,我们可以开始以这种格式编写的TEX文件。这是代码:
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()
要指定格式,我们需要创建 formatprovider类的实例。在选项构造函数中,我们使用 texconfig.object_tex()配置,该配置要求我们的格式提供商作为参数,并将格式加载到引擎的“ Virgin”状态之上。
其余的代码应该对您熟悉,因为它利用了 指南早期讨论的功能。
以普通Tex格式排版Tex文件
如果我们从上面显示的代码中删除格式提供程序,则引擎将加载默认格式,即 object tex在其第四种意义上。因此,如果您使用以普通Tex格式编写的TEX文件,则可以使用此方法将其转换为任何受支持的目标格式。