LaTeX から PDF へ | .NET

LaTeX を PDF に変換する方法

C# のコードを詳しく見て、LaTeX を PDF 形式に変換する最も簡単な方法をご紹介します。

 1// Convert LaTeX to PDF - simplest approach
 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// Initialize the options for saving in PDF format.
10options.SaveOptions = new PdfSaveOptions();
11
12// Run LaTeX to PDF conversion.
13new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new PdfDevice(), options).Run();

そこで、最初に(必ずしも最初ではないこともありますが)行うべきことは、 TeXOptions のインスタンスを作成することです。このクラスの唯一の静的メソッドは ConsoleAppOptions() であり、その名前に惑わされないでください。このメソッドは、 TeXConfig のインスタンスを受け取り、これは LaTeX file の変換に正確に適しています。この構成は、Object TeX エンジンに Object LaTeX 形式をロードさせ、LaTeX ファイルを受け入れる準備をさせます。Object LaTeX 形式は実際には単なる LaTeX 形式で、ページメトリックを設定するために Object TeX 固有のプリミティブを使用します。

必要なオプションの最初は OutputWorkingDirectory で、TeX の出力が書き込まれる領域を定義します。 Here には Aspose.TeX for .NET における出力ディレクトリの概念の詳細があります。この例では、 OutputFileSystemDirectory クラスを使用し、指定したディレクトリ(フォルダー)に出力を書き込めるようにします。

次のオプションは SaveOptions クラスのインスタンスで、 object model をターゲット形式に変換する処理を制御します。LaTeX を PDF に変換するので、使用するのは PdfSaveOptions クラスのインスタンスです。

次に、 TeXJob クラスのインスタンスを作成します。ファイルシステムに保存された LaTeX ファイルを変換したい場合は、 this コンストラクタを使用します。ファイルへのフルパスを指定しなければなりません。そうしなければ、エンジンは現在のディレクトリ( CurrentDirectory)で検索し、見つからない可能性が高いです。拡張子が .tex であれば省略可能で、エンジンが自動的に付加します。コンストラクタの第2引数は Device クラスのインスタンスです。LaTeX を PDF に変換するので、 PdfDevice クラスのインスタンスを使用します。最後の引数として、先ほど準備した変換オプションを渡します。

残る作業は、ジョブを run することだけです。

実行が成功したかどうかに関わらず、最初に表示される結果はターミナル出力です。成功した場合は以下のようになります:

 1This is ObjectTeX, Version 3.1415926-1.0 (Aspose.TeX 21.8)
 2entering extended mode
 3
 4(<input_directory>\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.pdf (1 page).
13Transcript written on hello-world.log.

出力ディレクトリとして指定したフォルダー内に、エンジンの成果物としての他の「成果物」があります。それはトランスクリプトファイルと、こちらです! メインの出力 PDF ファイルです。

メイン出力 PDF ファイルを書き出す別の方法

PdfDevice クラスの別のコンストラクタがあり、結果の PDF ファイルを別の方法で取得できます。

 1// Convert LaTeX to PDF - alternative approach with stream
 2
 3// Create the stream to write the PDF file to.
 4using (Stream pdfStream = File.Open(Path.Combine(OutputDir, "hello-world-alt.pdf"), FileMode.Create))
 5{
 6    // Create conversion options for Object LaTeX format upon Object TeX engine extension.
 7    TeXOptions options = TeXOptions.ConsoleAppOptions(TeXConfig.ObjectLaTeX);
 8    
 9    // Specify a file system working directory for the output.
10    options.OutputWorkingDirectory = new OutputFileSystemDirectory(OutputDir);
11    
12    // Initialize the options for saving in PDF format.
13    options.SaveOptions = new PdfSaveOptions();
14    
15    // Run LaTeX to PDF conversion.
16    new TeXJob(Path.Combine(DataDir, "hello-world.ltx"), new PdfDevice(pdfStream), options).Run();
17}

指定ディレクトリ内の any-name.pdf ファイルがメインの出力 PDF ファイルとなります。同時に、 image output と異なり、変換オプションで定義された出力ディレクトリには PDF ファイルは生成されません。例外として、any-name.pdfOutputWorkingDirectory オプションで OutputFileSystemDirectory を使用して割り当てた同じファイルシステムディレクトリ内に配置されます。

入力オプションについて

メインの入力ファイルが基本的な LaTeX システムやサポートされているパッケージに含まれない依存関係(例: パッケージ)を必要とする場合は、 OutputWorkingDirectory オプションと同様の方法で RequiredInputDirectory オプションを設定し、依存ファイルをそのディレクトリに置く必要があります。依存関係はサブディレクトリに自由に整理できます。組版プロセスで外部画像ファイルなど独自のファイルを含める場合は、 InputWorkingDirectory を設定し、それらのファイルが格納されている場所へのパスを指定する必要があります。また、メイン入力ファイルを入力ディレクトリ内の任意の場所に配置し、run() メソッドで相対パスを指定することもできます(ルートにある場合はパスなしでも可)。 Here には Aspose.TeX for .NET における入力ディレクトリの概念と実装の詳細が掲載されています。

他の TeX ジョブオプションについては、 here を参照してください。

また、 Aspose.TeX for .NET API を基に構築された無料の LaTeX から PDF への変換 web app もご利用いただけます。

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.