我想要一个西里尔语版本的 TeX/AMSTeX。我已经安装了cyrplain
包裹,但进一步的说明对我来说太长且技术性太强,有时会提到README
其他软件包或建议手动移动某些文件,并且按照这些说明操作的预期结果并不十分明确。引用自述:
要安装对 Plain TeX、AMS-TeX、Texinfo 或 BLUe TeX 的俄语支持,请执行以下步骤:
要设置连字,您需要俄语连字模式和一个文件
hyphen.cfg
(来自BABEL
或手动创建)。建议使用包含在ruhyphen
包(README
有关更多信息,请参阅父目录中的)。您还可以在那里找到有关模式安装和使用的文档。请注意,对于所有基于 Plain TeX 的格式,建议使用“组合”俄语-英语模式作为单一语言,以避免必须使用语言切换命令(如\Russian
和)\English
(您可以在创建格式文件时使用包中的示例“language.dat
”ruhyphen
)。如果您希望能够使用除 之外的输入编码
cp866
,则应安装T2
首先安装软件包。然后编辑文件cyrtex.cfg
,并在“ ”行中选择文档的默认输入编码\def\definpenc{koi8-r}
。在这种情况下,您必须安装BABEL
,因为我们使用来自BABEL
(例如,plain.def
,hyphen.cfg
)的一些文件。否则(如果您只处理
cp866
编码中的文档),请将中的“\iftrue
”更改为“ ” (或放入的定义中)。\iffalse
cyrtex.cfg
cp866
\definpenc
请注意,我们在此使用的文件是LaTeX2e 软件包
lcydefs.tex
的一部分 ( )。请注意,此文件应按照 软件包中的说明生成。cyrillic
CTAN:macros/latex/required/cyrillic
00readme.txt
cyrillic
默认情况下,我们使用字体。您可以通过重新定义中的 命令
LH
将其更改为任何其他LCY
- 或 -T2A
编码的字体集(例如,使用Type1
像“字体包”这样的虚拟字体) 。C1
\fontprefix
cyrtex.cfg
我们支持
LCY
和T2A
字体编码(请参阅cyrtex.cfg
)。如果您使用T2A
编码,则应EXMI
从中获取字体并在中CTAN:macros/ec-plain/*.mf
定义\miprefix
为。ex
cyrtex.cfg
编辑文件
makefmts.sh
或makefmts.bat
(取决于您的平台),并(可选)删除或注释掉调用INITEX
您不想安装的格式的行。然后运行脚本/批处理文件
makefmts.sh
或makefmts.bat
。这将创建 TeX 格式文件:cyrtex.fmt
、、cyramstex.fmt
和cyrtexinfo.fmt
(cyrblue.fmt
如果您在 makefmts 脚本中注释了一些行,则可能不是全部)。对于makefmts.bat
,我们使用短 DOSish 文件名cyramstx.fmt
,cyrtxinf.fmt
而不是cyramstex.fmt
、cyrtexinfo.fmt
。如果您的操作系统支持,您可以将它们重命名为长名称。;-) 最后,照常安装格式文件(可能创建符号链接或脚本/批处理文件,以使用这些格式调用 TeX)。注意:如果您使用的
amsppt
是 AMS-TeX,您还应该修补文件amsppt.sty
,将一些硬编码CM
字体更改为相应的西里尔字体。补丁amsppt.diff
位于etc
软件包目录中T2
[如果您没有patch
实用程序,您可以手动进行更改]。
是否有一种自动化的方法来激活
cyrplain
包(在一些合理的默认配置中创建cyrtex.fmt
,,cyramstex.fmt
...)?有没有比这更简单的操作说明
README
?(软问题。) 激活似乎会影响其他软件包(例如,修补
amsppt.sty
)。激活会对cyrplain
安装的其他部分产生多大影响?可以减少这种干扰吗?
事实上,我不会介意任何其他用户友好的解决方案,以便能够编译俄罗斯化的 Plain TeX 和 AMSTeX 的旧源,可能在更改源编码后。例如,XeTeX 看起来很有前途,但我还没有弄清楚如何让它使用带有西里尔字形的字体。我创建了一个新问题关于西里尔字母 XeTeX。
更新
看起来应该可以使用并且已经知道它们来生成cyrplain
和cyramsplain
格式化。fmtutil
fmtutil
修补后/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
对,因为不需要重新编码。一般来说,如果您可以匹配输入和文档的字体编码,则只需设置字体和连字模式,它们就可以正常工作。