LaTeX 套接字错误:无法编织 Rmd 文档

LaTeX Socket Error: Cannot knit Rmd Document

提问人:PinkCalculator 提问时间:11/11/2023 更新时间:11/18/2023 访问量:185

问:

赏金将在 19 小时后到期。这个问题的答案有资格获得 +100 声望赏金。nullglob 正在寻找一个规范的答案
我们在这里需要帮助。我们尝试删除 .cls 文件和前导码中对 hyperref 的调用,但它仍然不断加载,导致错误。

我目前正在撰写我的论文,并且一直在使用该系一位学者提供的书籍模板,但我在将其编织成 pdf 时遇到了一个问题。

每当我尝试这样做时,它都会失败,并且出现以下错误:! LaTeX socket Error: Sockets can only be declared at top-level!

我过去曾多次编织该文件,直到最近才遇到这个问题。我最初能够通过删除软件包并重新安装它来修复它,但这不再起作用,我无法让文件编织。.tex 文件创建得很好,它在将 tex 文件编译为导致问题的 pdf 中。当我尝试自行编译 tex 文件时,据说该错误与编译中使用的 hyperref.sty 文件有关,但我真的不知道为什么或如何解决这个问题。tinytex

我也已经尝试更新我的 R 和 R 工作室,并在我的笔记本电脑(Macbook Pro,如果这有助于诊断此问题)上删除并重新安装 LaTeX (LaTeXIT),但没有任何区别。既没有清除缓存,也没有重新下载模板并编织空白模板。当我尝试使用对齐我的方程式时,我第一次遇到了这个问题,从那以后就遇到了问题。split

这是我尝试编织时日志的底部部分,如果这有任何帮助:

Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
)
\Hy@SavedSpaceFactor=\count411

! LaTeX socket Error: Sockets can only be declared at top-level!

For immediate help type H <return>.
 ...                                              
                                                  
l.2080  {\providecommand\UseSocket[2]{#2}}
                                           
Here is how much of TeX's memory you used:
 15152 strings out of 476232
 276012 string characters out of 5795949
 1924530 words of memory out of 5000000
 36931 multiletter control sequences out of 15000+600000
 562584 words of font info for 39 fonts, out of 8000000 for 9000
 14 hyphenation exceptions out of 8191
 81i,0n,95p,596b,9378s stack positions out of 10000i,1000n,20000p,200000b,200000s

!  ==> Fatal error occurred, no output PDF file produced!

为了进一步的背景,当最近发生此问题时,我从文档中删除了所有新添加的内容并尝试编织它,但即使重复了我上面列出的所有步骤,它仍然无法编织。 如果有人能帮忙,那将不胜感激!

乳胶 R-Markdown

评论

0赞 hanne 11/14/2023
您是否尝试过(重新)安装 intcalc 宏?或者尝试使用 Overleaf 从文件生成 pdf?.tex
0赞 PinkCalculator 11/20/2023
我一开始没有安装 intcalc 宏,但安装它没有任何区别。Overleaf 可能无法正常工作,因为我在图形和表格等的 Markdown 文件中嵌入了 R 代码,

答:

1赞 Linh P 11/18/2023 #1

两天前,我突然弹出了同样的LaTeX套接字错误。由于我也是 latex 和 R Markdown 的新手,因此我依赖于包含以下包的模板:

header-includes:
- \usepackage[ngerman]{babel}
- \usepackage{float}
- \usepackage{sectsty}
- \usepackage{paralist}
- \usepackage{setspace}\spacing{1}
- \usepackage{fancyhdr}
- \usepackage{lastpage}
- \usepackage{dcolumn}
- \usepackage{csquotes}
- \usepackage[nottoc, numbib]{tocbibind}

直到那一天,这都很好。由于使用 biblatex(没有这些包)编译一个简单的 bookdown 文档仍然工作正常,因此我逐个包删除,直到没有错误。事实证明,我只需要删除.\spacing{1}

评论

1赞 Yihui Xie 11/21/2023
谢谢!我可以确认删除可以修复错误,尽管我不知道为什么。\spacing{1}
0赞 Yihui Xie 11/21/2023
为了记录在案,我已向 github.com/latex3/hyperref/issues/315 提交了一个问题。
4赞 Ulrike Fischer 11/21/2023 #2

正如 hyperref 错误报告 https://github.com/latex3/hyperref/issues/315 中提到的,输入错误。间距是一个环境,而不是一个命令,它会打开一个组,这会破坏 hyperref。\spacing{1}\spacing{1}

替换为 或 。或者干脆将其删除。\spacing{1}\singlespacing\setstretch{1}