Pacotes de LaTeX externos | Python
Pacotes de LaTeX externos
A biblioteca Aspose.TeX vem com uma variedade de pacotes comuns de LaTeX, portanto não há necessidade de fornecer manualmente esses pacotes ao mecanismo TEX. No entanto, pode haver situações em que seu arquivo de LaTeX requer um pacote que não esteja incluído no “pacote” de pacotes da biblioteca. Nesses casos, você pode tentar fornecer a entrada necessária, como os arquivos de origem do pacote necessário, através da opção requerir_input_directory da instância da classe texoptions. Vamos explorar como isso funciona com dois exemplos.
Entrada necessária fornecida em um formulário não embalado (o pacote FancyBox
).
Suponha que tenhamos o seguinte arquivo BASIC LATEX chamado requerir-input-f-fs.tex
, que faz parte da nossa
Solução de Exemplo:
1\documentclass{article}
2\usepackage[a6paper,landscape]{geometry}
3\usepackage{fancybox}
4\begin{document}
5Test: \fbox{
6 \begin{Bitemize}[b]
7 \item First item
8 \item A second one\\ on two lines
9 \item(2pt) A third with extra space
10 \end{Bitemize}
11}
12\par\bigskip
13Test: \fbox{
14 \begin{Beqnarray}[t]
15 y & = & x^2 \\
16 a^2 + 2ab + b^2 & = & (a + b)^2 \\
17 \int_0^\infty e^{-ax} dx & = & \frac{1}{a}
18 \end{Beqnarray}
19}
20\end{document}
A terceira linha do arquivo indica que requer o pacote FancyBox
, que não está incluído no suporte" nativo “. Vamos supor que temos o arquivo de origem do pacote FancyBox
. Como é um pacote simples composto por um único arquivo, podemos colocar esse arquivo em qualquer lugar do nosso sistema de arquivos e especificar o caminho do diretório da seguinte forma:
1options.required_input_directory = InputFileSystemDirectory('path-to-directory-where-fancybox.sty-located')
Depois de executar um trabalho de Tex com esta opção (lembre -se de ajustar as outras opções conforme necessário), obteremos o documento de saída, que neste caso é uma imagem PNG.
Aqui está o código -fonte completo para o exemplo:
1from aspose.tex import *
2from aspose.tex.io import *
3from aspose.tex.presentation.image import *
4from util import Util
5from os import path
6###############################################
7###### Class and Method declaration here ######
8###############################################
9
10# Create conversion options for Object LaTeX format upon Object TeX engine extension.
11options = TeXOptions.console_app_options(TeXConfig.object_latex)
12# Specify a file system working directory for the output.
13options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
14# Specify a file system working directory for the required input.
15# The directory containing packages may be located anywhere.
16options.required_input_directory = InputFileSystemDirectory(path.join(Util.input_directory, "packages"))
17# Initialize the options for saving in PNG format.
18options.save_options = PngSaveOptions()
19# Run LaTeX to PNG conversion.
20TeXJob(path.join(Util.input_directory, "required-input-fs.tex"), ImageDevice(True), options).run()
Fornecendo entrada necessária em um formulário arquivado (o pacote pgfplots
)
Agora, suponha que tenhamos o seguinte arquivo LATEX chamado requerir-in-zip.tex
, que também é um arquivo simples da nossa solução de exemplo:
1\documentclass{article}
2\usepackage[margin=0.25in]{geometry}
3\usepackage{pgfplots}
4\pgfplotsset{width=10cm,compat=1.18}
5\begin{document}
6
7First example is 2D and 3D math expressions plotted side-by-side.
8
9%Here begins the 2D plot
10\begin{tikzpicture}
11\begin{axis}
12\addplot[color=red]{exp(x)};
13\end{axis}
14\end{tikzpicture}
15%Here ends the 2D plot
16\hskip 5pt
17%Here begins the 3D plot
18\begin{tikzpicture}
19\begin{axis}
20\addplot3[
21 surf,
22]
23{exp(-x^2-y^2)*x};
24\end{axis}
25\end{tikzpicture}
26%Here ends the 3D plot
27
28\end{document}
Na terceira linha, pode -se observar que o arquivo requer o pacote pgfplots
, que não é suportado” nativamente “. Mais uma vez, assumindo que possuímos os arquivos de origem para o pacote PGFPLOTS
, esses arquivos são bastante numerosos e estão localizados em dois diretórios diferentes no diretório de instalação de qualquer aplicativo de tipógrafo de LaTeX. A pasta pgfplots
pode ser encontrada nos diretórios\tex \generic
e \tex \latex
. Para que a biblioteca Aspose.TeX funcione corretamente, é necessário fornecer o conteúdo dessas duas pastas como entrada. Para conseguir isso, desejamos empacotar esses arquivos de origem em um arquivo zip. Abaixo está o layout desejado do arquivo:
E aqui está o método pelo qual definimos a acessibilidade a esses arquivos de origem:
1with open("path-to-zip-with-pgfplots-sources") as zipStream:
2 ...
3 options.required_input_directory = InputZipDirectory(zipStream)
4 ...
Depois de executar um trabalho de Tex com esta opção, obtemos o documento de saída:
Aqui está o código -fonte completo para o exemplo:
1from aspose.tex import *
2from aspose.tex.io import *
3from aspose.tex.presentation.image import *
4from util import Util
5from os import path
6###############################################
7###### Class and Method declaration here ######
8###############################################
9
10# Create conversion options for Object LaTeX format upon Object TeX engine extension.
11options = TeXOptions.console_app_options(TeXConfig.object_latex)
12# Specify a file system working directory for the output.
13options.output_working_directory = OutputFileSystemDirectory(Util.output_directory)
14# Initialize the options for saving in PNG format.
15options.save_options = PngSaveOptions()
16# Create a file stream for the ZIP archive containing the required package.
17# The ZIP archive may be located anywhere.
18with open(path.join(Util.input_directory, "packages\\pgfplots.zip"), "rb") as zip_stream:
19 # Specify a ZIP working directory for the required input.
20 options.required_input_directory = InputZipDirectory(zip_stream, "")
21
22 # Run LaTeX to PNG conversion.
23 TeXJob(path.join(Util.input_directory, "required-input-zip.tex"), ImageDevice(True), options).run()
NOTA: O resultado foi verificado através do pacote
pgfplots
versão 1.18.1. Quanto à versão do pacotepfg
incluída na biblioteca Aspose.TeX é a 3.1.9a.
Restrições
Se você se deparar com um pacote desenvolvido noLatex3ekernel e for necessário pelo seu arquivo LaTex, é improvável que trabalhe com a biblioteca Aspose.TeX. Isso ocorre porque a biblioteca é baseada no kernel LATEX2E.
Além disso, pode haver casos em que um pacote exigido pelo seu arquivo de LaTeX use diretamente comandos primitivos dependentes do dispositivo que não são suportados pelo mecanismo aspose.tex da biblioteca tex. Nesses casos, o pacote não funcionará com a biblioteca.