使用 latex.ltx 创建 FMT

使用 latex.ltx 创建 FMT

FMT我正在尝试使用latex.ltx以下步骤创建文件。

  1. latex.ltx将文件从基目录复制到我的本地工作目录。
  2. 重命名此文件。
  3. 我在命令之前加载以下命令的原始源文件 \dump

    \input xmltex.tex \input Sample.cfg \input Sample.xmt \LoadClass{article} \dump \endinput

我正在使用以下命令编译 ltx 文件,例如latex -ini filename.ltx

首先我收到以下错误。

! LaTeX requires e-TeX.
l.98     {LaTeX requires e-TeX}

?

因此我注释掉文件中的那些行ltx并尝试运行该ltx文件。

%   \errmessage
%     {LaTeX requires e-TeX}
%   \expandafter\endinput

在注释掉 ltx 文件中的这些行后,我将再次运行 ltx 文件。但我收到了下面提到的错误。

因此,我将更改编译命令etex -ini filename.ltx。但同样的错误又重复出现。

显示.ltx编译过程中的大量错误

\utfthreeuniglyph ... \expandafter {\the \numexpr 4096*(#1-224)+64*(

! Extra \else.
\unicodechar ...nichar@\number #1\endcsname \else
                                                  \errmessage {Unicode

我无法修复此错误。我把我的 MWE 贴出来供您参考。

%%Sample.tex%%
\def\xmlfile{sample.xml}
\input xmltex

%%Sample.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article SYSTEM "JATS-journalpublishing1.dtd">
<article>
<front>
<article-meta>
<title-group>
<article-title>The sample title</article-title>
</title-group>
</article-meta>
</front>
<body>
<sec id="j_nanoph-2018-0214_s_001">
<title>Introduction</title>
<p>The <bold>Sample.cfg, Sample.xmt, Sample-entity.sty</bold> files needs to be converted into unreadable format &#x00C1; &#x00E1;.</p>
</body>
</article>

%%Sample.xmt%%

\XMLentity{TeX}{\TeX}
\XMLentity{LaTeX}{\LaTeX}

%%%%Main Root Tag%%%%
\XMLelement{article}%
    {}%
    {\documentclass{article}%
    \begin{document}}%
    {\end{document}}%
%%%%

\XMLelement{bold}{}{\xmlgrab}{\textbf{#1}}


%%%%Front Matter Tags%%%%
\XMLelement{front}{}{}{%
  \date{}
  \maketitle%
}%
%%%%

\XMLelement{article-title}{}{\xmlgrab}{\title{#1}}

\XMLelement{title}{}{\xmlgrab}{\section*{#1}}

\XMLelement{p}{}{}{\par}%

请您建议如何清除这些错误并成功FMT创建以下源文件。

答案1

在任何编程语言中,如果出现错误,仅仅从源中注释掉错误消息而不修复问题不太可能解决任何问题。

请勿复制或编辑latex.ltx

查看pdfxmltex.ini位于以下位置的

/usr/local/texlive/2019/texmf-dist/tex/xmltex/xmltexconfig/xmltex.ini

将该文件复制到您所在地区的新名称myxmltex.ini

该文件总共

% public domain.
\let\primitivedump=\dump
\let\dump=\relax
\input pdflatex.ini
\let\dump=\primitivedump

% then read jadetex.  pdf output must be set first, since it needs hyperref.
\input xmltex.tex

然后,如果你想通过预加载大型软件包来加快速度,例如tikz你可以添加

\RequirePackage{tikz}

在该pdflatex.ini行之后。

然后使用

 pdftex --etex --ini myxmltex.ini

你可以使用它作为

  pdftex \&myxmltex  your-xml-file.xml

要预加载更多的 xmltex 内部结构将需要修改更多的 xmltex 源,因此不建议这样做(或者可能没什么用)。

xmltex 手册说

不幸的是,对这种构建 xmltex 方法的支持(以及对非英语连字符的访问)尚未完全设计并且完全没有记录。

必须问的是,您确定要使用 xmltex 吗?我很久以前就写了它(它实际上比 XML 更古老),那时 XML 工具还没有广泛使用。它确实能工作,但使用 XSLT 来处理 XML 文档要容易得多,写出“普通”的 TeX 文档,然后您可以使用普通的 pdflatex 运行来处理这些文档。

相关内容