查询引擎和版本的标记

查询引擎和版本的标记

我想在文档中包含 TeX 引擎名称和版本,有没有标记可以捕获这些内容?

我试过这个

\documentclass{article}
\usepackage{expl3}
\usepackage{hyperref}
\usepackage{listings}
\ExplSyntaxOn
\newcommand* \enginedetails
  {
    \c_sys_engine_exec_str
    \c_space_tl
    \c_sys_engine_version_str
    \c_space_tl
    (\c_sys_engine_format_str)
  }
\ExplSyntaxOff

\begin{document}
\lstset{language=Rexx, extendedchars=true, frame=trbl}

\title{Unicode Case and Width Issues}
\author{Shmuel (Seymour J.) Metz}
\thanks
  {
  This is a working document for the Rexx Language Association (RexxLA).
  It is written in \LaTeX \fmtversion and was rendered \today using \enginedetails{}.
  }

\maketitle

\end{document}

并得到

未定义控制序列。}

在 /thanks 上加上结束 } 的行号。

答案1

您可以查询所有低级细节,但由于这已经完成expl3

\documentclass{article}
\ExplSyntaxOn
\newcommand* \enginedetails
  {
    \c_sys_engine_exec_str
    \c_space_tl
    \c_sys_engine_version_str
  }
\ExplSyntaxOff

\begin{document}

\enginedetails{}

\end{document}

答案2

在 LuaTeX 中,我们可以这样做:

\def\luatexengine{\directlua{tex.print(status.luatex_engine)}}
\def\luatexversion{\expandafter\putdot\directlua{tex.print(status.luatex_version)}}
\def\luatexrevision{\directlua{tex.print(status.luatex_revision)}}
\def\putdot#1{#1.}

This is \luatexengine, \luatexversion.\luatexrevision.

\bye

答案3

我下载了较新的 expl3,问题就解决了。不过,我还希望该命令更强大,所以我使用了 \NewDocumentCommand。

\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand\enginedetails{}%
  {%
    {
    \c_sys_engine_exec_str
    \c_space_tl
    \c_sys_engine_version_str
    \c_space_tl
    (\c_sys_engine_format_str)
    }
  }
\ExplSyntaxOff

\begin{document}

\enginedetails

\end{document}

相关内容