![需要 LaTeX 编译方面的帮助](https://linux22.com/image/473299/%E9%9C%80%E8%A6%81%20LaTeX%20%E7%BC%96%E8%AF%91%E6%96%B9%E9%9D%A2%E7%9A%84%E5%B8%AE%E5%8A%A9.png)
我在项目编译方面遇到了大问题。我没有“集中精力获取正确的内容”,而是花了好几天时间编译项目。我的项目截止日期快到了,如果能得到任何帮助,我将不胜感激。
我使用 Overleaf,我喜欢它的界面,而且易于使用。我有一个大项目。我可以分部分编译它,但我无法编译整个项目,因为 Overleaf 甚至对付费客户也应用了编译时间限制。我尝试了所有建议的技巧,但没有帮助: 修复和防止编译超时。
我尝试在我的计算机(Windows)上本地编译该项目。我安装了 TeX Live。同样,我可以分部分编译该项目,但无法编译整个项目。我收到以下错误:
Unable to read an entire line---bufsize=200000.
Please increase buf_size in texmf.cnf.
我尝试buf_size
通过在 Windows cmd 上运行来增加:
buf_size=100000 pdflatex main.tex
但是我收到一个错误:
'buf_size' is not recognized as an internal or external command, operable program or batch file.
然后,我texmf.cnf
通过添加以下内容更改了文件:
main_memory = 7000000
根据提议在此 StackExchange 线程中。但是当我在 cmd 中运行时:
sudo fmtutil-sys --all
我收到以下错误:
'sudo' is not recognized as an internal or external command, operable program or batch file.
我不知道如何编译该项目。我花了几个月的时间。我将不胜感激任何帮助。
谨致问候,亚历克斯。
答案1
您可以在命令行上设置缓冲区大小
pdflatex --cnf-line=buf_size=400000 file
会将默认大小从 200000 增加一倍至 400000。
您可以通过检查日志末尾的一行来检查缓冲区的使用量
35i,5n,50p,1016b,109s stack positions out of 10000i,1000n,20000p,400000b,200000s
这是b
本次测试使用的值 1016(已经是非常一行中有 1000 个 x,这是异常大的示例)
注意,此缓冲区用于保存单线输入不是为了保存整个文件,它需要大于源文件中实际最长的行,但通常不会大很多,您必须做一些不寻常的事情才能在输入缓冲区中使用 200000 个字符。
您可能有一个无限循环,无论您将其设置得多大,它都会填充此缓冲区。如果您注释掉文档的某些部分以使其完成,您可以检查每个部分并检查值b
以查看哪个构造使用了超过 200000 个输入缓冲区字符。