从 LaTeX 到 pdflatex 再到普通 TeX

从 LaTeX 到 pdflatex 再到普通 TeX

我一直想尝试使用纯 TeX 而不是 LaTeX。我可以使用纯 TeX,但无法正确使用字体,也无法使用法语连字符。我想知道如何使用纯 TeX 做到这一点。是的,有很多问题!我使用 MacTeX,如果我需要创建新格式,这可能很重要。

\documentclass{article} % It's not really important I can work without a class.
\usepackage[utf8]{inputenc} % is it possible to work with utf8 with TeX ?
%\usepackage[T1]{fontenc}    
\usepackage[upright]{fourier} % or another font with T1 !
\usepackage[frenchb]{babel} % I need french hyphenation only !
\begin{document}

Bonjour

J'ai toujours voulu savoir comment écrire un document en français avec TeX.

\end{document} 

也许使用 ConTeX 来解决问题更有趣?

使用 XeTeX、XelaTeX、LuaTeX 和 LuaLaTeX 来回答这个问题将会很有趣。

答案1

Plain TeX 实际上是一种示例格式,而不是用于制作文档的格式,因此您几乎总是必须加载某些内容才能获得可用的文档设置(manmac、eplain 或 amstex 或您自己的宏),但无论如何尽可能保持简单。

\documentclass{article} % It's not really important I can work without a class.

什么都不做,plain 只会以排版模式开始。它没有类似 LaTeX 序言的在开始时进行设置的功能。

\usepackage[utf8]{inputenc} % is it possible to work with utf8 with TeX ?

直接使用 LuaTeX 或 xetex 会更容易,但原则上你只需要激活 128-255 个字符并解析接下来的几个字符来查找 Unicode 编号。ctan 可能已经有与纯 TeX 兼容的代码,或者 latex 的 inputenc 可以转换(或者可能更简单),xmltex 中的 utf8 阅读器基本上不依赖于任何东西(xmltex 可以加载到 initex 中)

%\usepackage[T1]{fontenc}

正如您通过注释掉这一点所暗示的那样,plain 没有任何管理字体编码的概念,如果您使用具有不同编码的字体,那么您需要同时切换任何依赖于编码的定义,格式没有帮助。

\usepackage[upright]{fourier} % or another font with T1 !

如上所述,plain 不关心编码。如果你坚持

\expandafter\show\the\font

在你的乳胶文档中它说

\T1/futs/m/n/10=选择字体futr8t。

所以如果你把

\font\tenrm=futr8t
\rm

在您的纯 TeX 文件中,您将获得 8t(又名 T1)编码的字体。

\usepackage[frenchb]{babel} % I need french hyphenation only !

要切换您需要的语言或输入法语连字表时的\language2任何值。\language您无法将连字表输入到标准 tex 中,您需要将其作为 initex 运行并转储新格式。此时您可能至少想要切换到 eplain,因为在格式构建时转储了更多语言连字表。但 plan 明确允许您在格式构建时自定义语言和连字表,几乎整个格式都由单个文件 plain.tex 定义,但连字除外,因此\input hyphen如果您在制作纯 tex 格式时在 hyphen.tex 中设置了英语/法语(或仅法语)连字表,则可以使用法语。

\end{document}

其纯文本为\bye

如果您不使用 utf8,而只想使用 latin-1 输入和 T1 输出,那么您可以避免担心多字节编码是否有效,一切都会正常进行。当我剪切并粘贴您的 latex 文档时,它最终变成了 latin1 而不是 utf8(不确定转换发生在哪里),因此以下纯 TeX 文档确实给出了带重音的字母,é 和 ç 都排版正确。

\font\tenrm=futr8t
\rm

Bonjour

J'ai toujours voulu savoir comment écrire un document en français avec TeX.

\bye

答案2

使用 XeTeX 和 LuaTeX 时,您不需要inputencfontenc,因为默认情况下所有字符串都假定为 UTF-8 编码。不过您需要设置字体。如果您不介意 cmr 之类的字体,我建议您安装CMUnicode字体。要获取设置说明,您可以按照这个问题,使用plain-cmu.texegreg 建议的文件。

XeLaTeX 和 LuaLaTeX 所需的工作量较少,因为软件包fontspec会负责设置字体。您只需声明

\usepackage{fontspec} 
\setmainfont{CMU Serif}

安装字体后。

encTeX对于纯 PDFTeX 或 (e)Te​​X,你可能希望在格式构建时尝试扩展,例如

[PDF[e]]TeX -ini -enc [yourformatfile] \dump

您需要设置所用字体的字体编码,以俄语为例这里解释,但您可以将其改编为法语。请确保选择正确的字体:拉丁现代或者欧洲现代是我的最爱。

相关内容