![inputenc 包减慢了 LaTeX 编译速度](https://linux22.com/image/292126/inputenc%20%E5%8C%85%E5%87%8F%E6%85%A2%E4%BA%86%20LaTeX%20%E7%BC%96%E8%AF%91%E9%80%9F%E5%BA%A6.png)
在使用包时inputenc
,我fontenc
观察到 inputenc 包严重减慢了编译速度。情况如下。让我们有
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}
开关[russian]{babel}
允许T2A-coding
使用俄语字母\"e
(俄语哟)。这里的要点是T2A
和
cp1251
代码字符映射几乎(!)一致,但只有这个符号例外。
使用任何 LaTeX 命令(包括 AMS 数学命令)时,我都没有遇到任何差异。在 Windows 1251 编码中输入一些(俄语)文本后,我可以在键盘上输入此字母,并且只有在将其包含
[cp1251]{inputenc}
在序言中时才能在 dvi 文件中看到它。如果没有它,我将得到一些不同的(西里尔)符号而不是\"e
。这是我观察的第一部分。
第二个是,在 和\usepackage[cp1251]{inputenc}
没有 的情况下,编译速度相差 3 倍(!)。因此,如果我没有明确使用 yo-keybutton,我可以在的 编码cp1251
框架中很好地工作,并且每次我单击 MiKTeX 中的编译按钮时,都会立即出现 dvi-viewer。否则,即明确使用 yo-letter,我应该包含 并慢慢等待三次才能获得相同的结果。[russian]{babel}
T2A
[cp1251]{inputenc}
比如说,排版一些 250 页长的文本需要花费一秒钟进行 TeX 编译,这很好,但每次都要等待 3 秒钟,我认为不可以(不要问为什么)。即使文件不包含 yo 字母。请记住,pdf 编译比 dvi 编译慢大约两倍。
另一个麻烦是,所有辅助命令都
aux-files
包含(在 下inputenc
)诸如 etc. 之类的胡言乱语命令流\CYRYO
。它们被严重忽视(+ BiBTeX 的问题),并且包含\"e
(而不是明确的“yo”符号)的单词尚未被字典检查器检测到。
最后,我想将 排除[cp1251]{inputenc}
在序言之外,只使用[russian]{babel}
。这是真的吗?在我看来,这个问题对于专家来说很容易解决。事实上,我想在序言中加入一些更正(catcodes、@ 等?)仅针对这两个符号“yo”和“YO”。
在 Windowscp1251
编码中,它们分别具有代码编号\symbol{184}
和\symbol{168}
。同样,好处是 TeX 编译速度加快了 3 倍。我认为其他语言也存在同样的问题。
PS. 顺便说一句,如果您不使用 dvi 而是使用 pdf 编译,那么编译时间会更长。
答案1
我摘录了你问题的一段文字,并通过谷歌翻译生成了一些西里尔文文本(如果全错了,抱歉 :-),然后将其复制了 30 次,如下所示。没有 inputenc,我得到了时间
real 0m2.550s
user 0m1.981s
sys 0m0.076s
使用 inputenc 我得到时间
real 0m2.093s
user 0m1.934s
sys 0m0.109s
因此速度稍微快了一些(可能是节省了时间,没有发出未使用 inputenc 的警告)但对于这份 6 页的文档来说,速度绝对不会慢三倍。
\documentclass{article}
\usepackage[cp1251]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}
\begin{document}
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
Второй является то, что скорость компиляции под \ usepackage [cp1251]
{inputenc} и без него различаются в 3 раза (!). Так что, если я не
использую явно йо-keybutton я мог работать хорошо без cp1251 в рамках
[русский] {Babel} 'ы кодирования T2A и получить, каждый раз, когда я
нажимаю на кнопку компиляции в моей MiKTeX, мгновенного появления
DVI-зритель. В противном случае, то есть с явным использованием
йо-письма, я должен включить [cp1251] {inputenc} и ждать три раза
медленно, чтобы получить тот же результат.
\end{document}