激活 cyrplain 包 (CyrTeX) 的简单方法

激活 cyrplain 包 (CyrTeX) 的简单方法

我想要一个西里尔语版本的 TeX/AMSTeX。我已经安装了cyrplain包裹,但进一步的说明对我来说太长且技术性太强,有时会提到README其他软件包或建议手动移动某些文件,并且按照这些说明操作的预期结果并不十分明确。引用自述

要安装对 Plain TeX、AMS-TeX、Texinfo 或 BLUe TeX 的俄语支持,请执行以下步骤:

  1. 要设置连字,您需要俄语连字模式和一个文件hyphen.cfg(来自BABEL或手动创建)。建议使用包含在 ruhyphen包(README有关更多信息,请参阅父目录中的)。您还可以在那里找到有关模式安装和使用的文档。请注意,对于所有基于 Plain TeX 的格式,建议使用“组合”俄语-英语模式作为单一语言,以避免必须使用语言切换命令(如 \Russian和)\English(您可以在创建格式文件时使用包中的示例“ language.datruhyphen)。

  2. 如果您希望能够使用除 之外的输入编码cp866,则应安装T2首先安装软件包。然后编辑文件cyrtex.cfg,并在“ ”行中选择文档的默认输入编码\def\definpenc{koi8-r}。在这种情况下,您必须安装BABEL,因为我们使用来自BABEL(例如,plain.defhyphen.cfg)的一些文件。

    否则(如果您只处理cp866编码中的文档),请将中的“ \iftrue”更改为“ ” (或放入的定义中)。\iffalsecyrtex.cfgcp866\definpenc

    请注意,我们在此使用的文件是LaTeX2e 软件包lcydefs.tex的一部分 ( )。请注意,此文件应按照 软件包中的说明生成。cyrillicCTAN:macros/latex/required/cyrillic00readme.txtcyrillic

  3. 默认情况下,我们使用字体。您可以通过重新定义中的 命令LH将其更改为任何其他 LCY- 或 -T2A编码的字体集(例如,使用Type1像“字体包”这样的虚拟字体) 。C1\fontprefixcyrtex.cfg

    我们支持LCYT2A字体编码(请参阅cyrtex.cfg)。如果您使用T2A 编码,则应EXMI从中获取字体并在中CTAN:macros/ec-plain/*.mf定义\miprefix为。excyrtex.cfg

  4. 编辑文件makefmts.shmakefmts.bat(取决于您的平台),并(可选)删除或注释掉调用 INITEX您不想安装的格式的行。

然后运行脚本/批处理文件makefmts.shmakefmts.bat。这将创建 TeX 格式文件:cyrtex.fmt、、cyramstex.fmtcyrtexinfo.fmtcyrblue.fmt如果您在 makefmts 脚本中注释了一些行,则可能不是全部)。对于makefmts.bat,我们使用短 DOSish 文件名cyramstx.fmtcyrtxinf.fmt而不是cyramstex.fmtcyrtexinfo.fmt。如果您的操作系统支持,您可以将它们重命名为长名称。;-) 最后,照常安装格式文件(可能创建符号链接或脚本/批处理文件,以使用这些格式调用 TeX)。

注意:如果您使用的amsppt是 AMS-TeX,您还应该修补文件amsppt.sty,将一些硬编码CM字体更改为相应的西里尔字体。补丁amsppt.diff位于etc 软件包目录中T2[如果您没有patch实用程序,您可以手动进行更改]。

  1. 是否有一种自动化的方法来激活cyrplain包(在一些合理的默认配置中创建cyrtex.fmt,,cyramstex.fmt...)?

  2. 有没有比这更简单的操作说明README

  3. 软问题。) 激活似乎会影响其他软件包(例如,修补amsppt.sty)。激活会对cyrplain安装的其他部分产生多大影响?可以减少这种干扰吗?


事实上,我不会介意任何其他用户友好的解决方案,以便能够编译俄罗斯化的 Plain TeX 和 AMSTeX 的旧源,可能在更改源编码后。例如,XeTeX 看起来很有前途,但我还没有弄清楚如何让它使用带有西里尔字形的字体。我创建了一个新问题关于西里尔字母 XeTeX。


更新

看起来应该可以使用并且已经知道它们来生成cyrplaincyramsplain格式化。fmtutilfmtutil

修补后/usr/local/texlive/2015basic/texmf-dist/tex/plain/cyrplain/plainenc.tex按照建议一条评论回答这个问题,我尝试执行

sudo fmtutil --enablefmt cyrtex
sudo fmtutil --enablefmt cyramstex
sudo fmtutil --missing

并且格式文件是在中创建的/usr/local/texlive/2015basic/texmf-var/web2c/pdftex/。但是,出于某种原因,我无法使用它们。例如,

tex &cyrtex

给出错误:

[12] 23093
zsh: command not found: cyrtex
This is TeX, Version 3.14159265 (TeX Live 2015) (preloaded format=tex)
**[12]  + suspended (tty input)  tex

很奇怪,zsh跟这有什么关系呢?

答案1

有一个完全支持俄语的纯 TeX 格式,网址为http://github.com/igor-liferenko/tex(它在文件中тех.tex)。

该站点上还有 UTF-8 TeX 实现(通过了 TRIP 测试),允许您直接使用 UTF-8 输入。

答案2

另一种方法是,仍然使用 cmcyr 字体,并假设您有一个 cp1251 编码的文本文件,只需使用以下命令即可创建 myplain.ini 文件:

\input myplain

\def\set #1 #2 {
  \lccode`#1=`#2
  \lccode`#2=`#2
  \uccode`#1=`#1
  \uccode`#2=`#1
  \catcode`#1=11
  \catcode`#2=11
  \sfcode`#1=999
  \sfcode`#2=1000
}

\set А а
\set Б б
\set В в
\set Г г
\set Д д
\set Е е
\set Ё ё
\set Ж ж
\set З з
\set И и
\set Й й
\set К к
\set Л л
\set М м
\set Н н
\set О о
\set П п
\set Р р
\set С с
\set Т т
\set У у
\set Ф ф
\set Х х
\set Ц ц
\set Ч ч
\set Ш ш
\set Щ щ
\set Ъ ъ
\set Ы ы
\set Ь ь
\set Э э
\set Ю ю
\set Я я

\let\set=\undefined

\input hyphru
\dump

确保将此代码保存在 cp1251 中。

然后在 bash 提示符下运行以下命令,或使用您的操作系统执行类似的操作:

cp `kpsewhich plain.tex` myplain.tex
perl -i -ne 'BEGIN{open F,"ls -1 /usr/share/texlive/texmf-dist/fonts/tfm/public/cmcyr/wcm*|xargs -i basename {} .tfm|";@a=<F>}next if /\\font\\preloaded/;s!(\\font.*?=)(\w+)!$a=$1;$b=$2;$a.(grep(/^x$b/,@a)?"x":"").$b!e; print' myplain.tex
cat `kpsewhich ruhyphal.tex` | iconv -f koi8-r -t cp1251 > hyphru.tex
tex -jobname tex -ini myplain.ini
mkdir -p /usr/local/share/texmf/web2c/tex/
mv tex.fmt /usr/local/share/texmf/web2c/tex/
rm myplain.tex hyphru.tex tex.log
texhash /usr/local/share/texmf

请注意,现在我们在 perl 命令中调用的是 wcm 字体(cp1251 编码),而不是 xcm 字体(cp866 编码);并且我们不需要-enc在 tex 调用中使用选项来创建格式或\mubyte-\endmubyte对,因为不需要重新编码。一般来说,如果您可以匹配输入和文档的字体编码,则只需设置字体和连字模式,它们就可以正常工作。

相关内容