我一直想尝试使用纯 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 时,您不需要inputenc
或fontenc
,因为默认情况下所有字符串都假定为 UTF-8 编码。不过您需要设置字体。如果您不介意 cmr 之类的字体,我建议您安装CMUnicode字体。要获取设置说明,您可以按照这个问题,使用plain-cmu.tex
egreg 建议的文件。
XeLaTeX 和 LuaLaTeX 所需的工作量较少,因为软件包fontspec
会负责设置字体。您只需声明
\usepackage{fontspec}
\setmainfont{CMU Serif}
安装字体后。
encTeX
对于纯 PDFTeX 或 (e)TeX,你可能希望在格式构建时尝试扩展,例如
[PDF[e]]TeX -ini -enc [yourformatfile] \dump
您需要设置所用字体的字体编码,以俄语为例这里解释,但您可以将其改编为法语。请确保选择正确的字体:拉丁现代或者欧洲现代是我的最爱。