Autres moyens de fournir le fichier d'entrée TeX | .NET
Fournir le fichier d’entrée principal au moteur TeX sous forme de flux
Jusqu’à présent, nous savions seulement comment transmettre le
fichier d’entrée principal au moteur TeX sous forme de nom de fichier, qu’il soit entièrement spécifié ou sous forme abrégée, avec ou sans extension. Mais il existe un autre
constructeur de la classe TeXJob, qui prend un flux comme premier argument. Ceci est pratique si, pour une raison quelconque, nous avons le fichier d’entrée principal sous une forme autre qu’un fichier sur le système de fichiers du disque. Voici comment cela peut être mis en œuvre :
1// Stream input with LaTeX document and XPS output
2
3// Create conversion options for Object LaTeX format upon Object TeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
5
6// Specify a file system working directory for the output.
7options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
8
9// Specify the console as the output terminal.
10options.TerminalOut = new OutputConsoleTerminal();
11
12// Define the saving options.
13options.SaveOptions = new XpsSaveOptions();
14
15// Create the XPS device.
16XpsDevice device = new XpsDevice();
17
18// Run the job with LaTeX document from memory stream.
19TeXJob job = new TeXJob(new MemoryStream(Encoding.ASCII.GetBytes(
20 @"\documentclass{article} \begin{document} Hello, World! \end{document}")),
21 device, options);
22job.Run();
23
24// For further output to look fine.
25options.TerminalOut.Writer.WriteLine();Notez que tous les fichiers de sortie porteront le nom texput. C’est parce que le moteur ne peut trouver aucun autre nom nulle part. texput est le nom du travail par défaut. Ici et ici sont des détails sur les noms de tâches.
Saisie du fichier d’entrée principal TeX depuis le terminal
Il existe encore un autre
constructeur de la classe TeXJob, qui ne nous permet pas du tout de spécifier l’entrée. Alors, que va traiter un tel travail TeX, vous vous demandez peut-être ? Cette fois, nous aurons besoin d’un terminal d’entrée. Le moteur TeX nous demandera de saisir le nom du fichier depuis le terminal.
Voici le code :
1// Enter main TeX input file from the terminal (interactive)
2
3// Create conversion options for default ObjectTeX format upon ObjectTeX engine extension.
4TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectTeX());
5
6// Specify a file system working directory for the input.
7options.InputWorkingDirectory = new InputFileSystemDirectory(DataDir);
8
9// Specify a file system working directory for the output.
10options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
11
12// Specify the console as the output terminal.
13options.TerminalOut = new OutputConsoleTerminal();
14
15// Define the saving options.
16options.SaveOptions = new XpsSaveOptions();
17
18// Run the job. The TeX engine will ask to enter the file name from the terminal.
19// Note: This is an interactive example. In production, you would typically
20// provide input via TerminalIn property or use one of the other input methods.
21TeXJob job = new TeXJob(new XpsDevice(), options);
22job.Run();
23
24// For further output to look fine.
25options.TerminalOut.Writer.WriteLine();Dès qu’il est lancé, le moteur bloque, attendant que nous saisissions le nom du fichier (avec ou sans chemin, avec ou sans extension) :

Et voici à quoi cela ressemblerait sur le terminal de sortie qui est la console :
1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
2entering extended mode
3**<path_to_the_file>/hello-world.ltx
4(<path_to_the_file>/hello-world.ltx
5LaTeX2e <2011/06/27>
6(article.cls
7Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
8(size10.clo))
9No file hello-world.aux.
10[1]
11(<output_directory>\hello-world.aux) )
12Output written on hello-world.xps (1 page).
13Transcript written on hello-world.log.