FindLATEXモジュールでLaTeX環境を構築: CMakeでのLaTeXドキュメント作成入門


FindLATEX モジュールは、以下の機能を提供します。

  • 変数の設定
    モジュールは、LaTeX 関連プログラムの場所に関する情報を提供する変数を設定します。これらの変数は、CMake プロジェクトで使用できます。
  • コンパイラパスの設定
    モジュールは、LaTeX コンパイラ (pdflatex、xelatex など) のパスを設定します。これにより、CMake プロジェクトはこれらのツールを簡単に利用できます。
  • LaTeX および関連プログラムの検出
    モジュールは、システム上で LaTeX およびその関連プログラム (BibTeX、PdfLaTeX など) がインストールされているかどうかを調べます。

FindLATEX モジュールの使用方法

FindLATEX モジュールを使用するには、以下の手順を実行します。

  1. CMakeLists.txt ファイルで、find_package() コマンドを使用してモジュールを呼び出します。
find_package(LATEX)
  1. モジュールによって設定された変数を使用します。
message(STATUS "LaTeX compiler path: ${LATEX_COMPILER}")

FindLATEX モジュールの詳細については、以下のリソースを参照してください。

FindLATEX モジュールは、LaTeX を使用してドキュメントを作成する CMake プロジェクトにとって便利なツールです。このモジュールを使用すると、LaTeX コンパイラと関連プログラムを簡単に検索して設定できます。

以下の例は、FindLATEX モジュールの使用方法を示しています。

cmake_minimum_required(VERSION 3.10)

project(myproject)

find_package(LATEX)

message(STATUS "LaTeX compiler path: ${LATEX_COMPILER}")

add_executable(myprogram main.cpp)
target_link_libraries(myprogram ${LATEX_LIBRARIES})

この例では、find_package() コマンドを使用して FindLATEX モジュールを呼び出し、LaTeX コンパイラのパスを LATEX_COMPILER 変数に設定します。次に、message() コマンドを使用して、コンパイラのパスをコンソールに出力します。

最後に、add_executable() コマンドを使用して実行可能ファイルを作成し、target_link_libraries() コマンドを使用して、実行可能ファイルに必要なライブラリをリンクします。



cmake_minimum_required(VERSION 3.10)

project(myproject)

find_package(LATEX)

message(STATUS "LaTeX compiler path: ${LATEX_COMPILER}")
message(STATUS "BibTeX path: ${BIBTEX}")
message(STATUS "PdfLaTeX path: ${PDFLATEX}")

add_executable(myprogram main.cpp)
target_link_libraries(myprogram ${LATEX_LIBRARIES})

add_executable(mydocument mydocument.tex)
target_sources(mydocument mydocument.tex)
target_link_libraries(mydocument ${LATEX_LIBRARIES})

この例では、find_package() コマンドを使用して FindLATEX モジュールを呼び出し、LaTeX コンパイラ、BibTeX、および PdfLaTeX のパスをそれぞれ LATEX_COMPILERBIBTEX、および PDFLATEX 変数に設定します。次に、message() コマンドを使用して、これらのパスのコンソールへの出力を表示します。

最後に、add_executable() コマンドを使用して実行可能ファイルとドキュメントを作成し、target_link_libraries() コマンドを使用して、それぞれに必要なライブラリをリンクします。

この例は、FindLATEX モジュールの使用方法のほんの一例です。モジュールは、LaTeX 関連プログラムの場所に関する情報を提供する多くの変数を設定します。これらの変数は、CMake プロジェクトで使用できます。

LaTeX オプションの設定

find_package(LATEX OPTIONS
  USE_PDF
  USE_INTRODUCTION_CEREMONIES
)

message(STATUS "LaTeX options: ${LATEX_OPTIONS}")

この例では、find_package() コマンドの OPTIONS オプションを使用して、USE_PDFUSE_INTRODUCTION_CEREMONIES LaTeX オプションを有効にします。次に、message() コマンドを使用して、有効なオプションをコンソールに出力します。

LaTeX 関連プログラムの検出の無効化

find_package(LATEX REQUIRED NO_DEFAULT_PATH)

if(NOT LATEX_FOUND)
  message(FATAL_ERROR "LaTeX not found")
endif()

この例では、find_package() コマンドの REQUIRED オプションを使用して、LaTeX の検出を必須にします。次に、if() ステートメントを使用して、LaTeX が見つからない場合はエラーメッセージを出力します。

この例は、LaTeX がシステムにインストールされていない場合に CMake プロジェクトを失敗させる方法を示しています。

find_package(LATEX REQUIRED VERSION 2.09)

if(NOT LATEX_FOUND)
  message(FATAL_ERROR "LaTeX version 2.09 not found")
endif()

この例では、find_package() コマンドの REQUIRED オプションと VERSION オプションを使用して、特定のバージョンの LaTeX (2.09) の検出を必須にします。次に、if() ステートメントを使用して、指定されたバージョンの LaTeX が見つからない場合はエラーメッセージを出力します。



手動設定

  • target_link_libraries() コマンドを使用して、LaTeX 関連プログラムに必要なライブラリを手動でリンクします。
  • CMAKE_C_COMPILERCMAKE_CXX_COMPILER のような CMake 変数を使用して、LaTeX コンパイラのパスを手動で設定します。


set(CMAKE_C_COMPILER "/usr/local/bin/pdflatex")
set(CMAKE_CXX_COMPILER "/usr/local/bin/pdflatex")

add_executable(myprogram main.cpp)
target_link_libraries(myprogram ${BIBTEX_LIBRARIES} ${PDFLATEX_LIBRARIES})

外部モジュールの使用

  • CMakeLists.txt ファイルに直接 LaTeX コンパイラのパスを設定するカスタムモジュールを作成します。
  • FindPackageHandle モジュールを使用して、FindLATEX モジュールの機能を独自に実装します。

CMake ターゲット依存関係の使用

  • target_link_libraries() コマンドを使用して、LaTeX 関連プログラムに必要な CMake ターゲットをリンクします。


add_executable(myprogram main.cpp)
target_link_libraries(myprogram pdflatex)

システムコマンドの使用

  • system() コマンドを使用して、LaTeX コンパイラと関連プログラムを実行します。


system(pdflatex main.tex)

FindLATEX モジュールの代替方法を選択する際には、以下の要素を考慮する必要があります。

  • 保守性
    カスタムモジュールを作成する場合は、保守がより困難になる可能性があります。
  • 移植性
    プロジェクトを複数のプラットフォームで移植する場合は、手動設定の方が移植性が高くなります。
  • プロジェクトの複雑性
    プロジェクトが複雑な場合は、FindLATEX モジュールを使用するのが最善です。