A

最近正好要做一个比较大的练习册,做好之后进行编译。结果弹出一个报错信息:

Tex capacity exceeded [number of strings = 2078043]

差不多是一个这样的报错信息,只是数值有点区别。

我拿着这个报错信息去问chatGPT,给到我的回复是内存设定的太低了。

我一听觉得合理,按照它给的方法去改配置文件,结果一点用都没有。

最后在论坛上找到了相应的解决办法。

B

[Tex capacity exceeded [number of strings = 2078043]](https://tex.stackexchange.com/questions/562243/tex-capacity-exceeded-number-of-strings-2078043)

以上这个报错信息跟我基本上是一致的,但是并没有给到相应的解决办法。

论坛上继续搜索,找到了这个链接:

Increasing memory

这个还挺相关的,虽然看的不是很明白,但是有一段写到:

You can increase the number of strings by calling it as follows (or by editing texmf.cnf)

$ max_strings=1000000 lualatex cc372
This is LuaTeX, Version 1.10.0 (TeX Live 2019) 
 restricted system commands enabled.
(./cc372.tex
LaTeX2e <2019-10-01> patch level 3

luaotfload | main : initialization completed in 2.141 seconds
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/10/25 v1.4k Standard LaTeX document class
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/size10.clo)) (./cc372.aux)
! TeX capacity exceeded, sorry [hash size=665536].
<recently read> \endcsname

这个文件夹我很熟,刚才chatGPT也指引我了,甚至还教我输入kpsewhich texmf.cnf 可以找到路径。

/usr/local/texlive/2023/texmf.cnf

找到之后,我选择使用vscode打开,看到前段时间关于lualatex字体问题而输入的文件夹路径。

接着在下面添加max_strings=1000000,最后保存的时候因为需要root权限,再次输入密码即可。

C

问题基本上解决了,顺便一提,这个数值可以调整的更大一点,如果说文件大的话。但是非常大也不行,也会报错,不知道具体原因。

我在win上也跑了一下,无事发生,正常编译。

我开始怀疑买mac的意义了。

win上是好几年前买的5700g,显卡都没有一张。

或许一个mac随身携带,大型任务直接ssh回家到win才是最佳解法?

D

我这篇文章还没有同步到blog上,新的问题又出现了。

这一次增添了一倍的内容,依旧是报错number of strings的问题。

我故技重施,去调整参数,但是这一次怎样都没有效果了,无论调到多少,报错的信息都是一样的:number of strings = 2075460 ,接着我继续看别人的一些解决办法,先后调整了:

  • max_strings
  • hash_extra
  • main_memory
  • pool_size

但是没有啥作用

累了

真的累了

扔去win上跑了一遍,提示内存超出了,接着我更新到2023texlive,顺利编译。

无语

mac

就这?

最后修改:2023 年 05 月 31 日
如果觉得我的文章对你有用,请随意赞赏