Rで自作関数:get_typst_version

関数名 : get_typst_version

Typst のバージョンを取得する関数です。

Rコード

#' @title Typstのバージョン情報を取得する関数
#' @description
#' R環境からCLIコマンド経由でQuarto内蔵(またはシステム)の
#' Typstバージョン文字列を取得します。
#'
#' @return 文字列(例: "typst 0.15.1 (9dfd3a08)")
get_typst_version <- function() {
  # system2() を使用して、外部コマンド 'quarto' を実行します。
  # 引数として 'typst' と '--version' を渡すことで、Quartoが認識している
  # Typstのバージョン情報を取得します。
  #
  # stdout = TRUE: コマンドの標準出力をRの文字列ベクターとして受け取ります。
  # stderr = TRUE: エラー発生時のメッセージも補獲できるように設定します。
  res <- tryCatch(
    {
      system2("quarto", args = c("typst", "--version"), stdout = TRUE, stderr = TRUE)
    },
    error = function(e) {
      # 'quarto' コマンド自体が見つからない等の環境不備が発生した場合のフォールバック処理
      return(paste("Quartoコマンドの実行に失敗しました:", e$message))
    }
  )

  # 取得したTypstのバージョン情報を返します
  return(res)
}

関数の実行例

# 定義した関数を実行して結果を表示します。
get_typst_version()
[1] "typst 0.15.1 (9dfd3a08)"

補足

  1. system2()

    • RからOSのシェルコマンドを呼び出す標準関数です。quarto typst --version を裏側で呼び出すことで、RStudioやQuarto環境が実際にビルドで使用しているTypstバージョンを取得します。
  2. tryCatch() によるエラーハンドリング

    • Quartoにパスが通っていない環境などで実行された場合、Rスクリプト全体は停止せずにエラーメッセージを返します。
  3. 出力文字列の構成

    • 実行結果として得られる "typst 0.15.1 (9dfd3a08)" のような文字列のうち、後半のカッコ内(例: 9dfd3a08)はプログラムがビルドされた時点の Gitコミットハッシュ(識別番号) を表しています。

以上です。