[背景與問題描述]工具
在Latex中,常常出現各類問題;spa
Runaway argument? {\contentsline {subsection}{\numberline {6.3}General comments o ! File ended while scanning use of \@writefile. <inserted text> \par l.47 \begin{document}
這個Runaway argument問題常常是因爲不徹底的Latex編譯致使的,例子能夠參考版本控制
https://tex.stackexchange.com/questions/66015/errors-in-tables-then-runaway-argument-at-begindocumentcode
在離線的Latex工具上,一個簡單的解決方法就是刪除.aux文件並從新編譯。若是編譯徹底,生成正確.aux文件,問題也就解決了。可是,若是問題未解決,從新編譯依然不徹底,那麼Runaway argument還會反覆出現。blog
在線的Latex工具(如overleaf)因爲增長了一些限制,也經常使得這些問題變得更加棘手。圖片
如Overleaf有編譯時間限制,當處理佔用空間較大的圖片文件時(比方說,爲了解決Type 3問題,將eps圖片曲線化從而使得圖片增大),容易超時。get
=============================it
[問題解決方法與解釋]io
這裏,針對在線Latex工具Overleaf,羅列咱們嘗試成功的方法:編譯
一、從新新建Overleaf項目
「遇事不決就重啓」的Latex版。雖然玄學地跑通了,但對Overleaf的內部業務邏輯不瞭解,咱們猜想緣由以下:
新開的項目,沒有編譯以前不存在中間文件,因此運行正常。而老項目:
1)在Overleaf中產生了備份或log文件,增長了編譯時間
2)會產生中間文件會覆蓋以前的,不斷的覆蓋的過程當中,可能出現碎片等其它錯誤
--------------------------------
二、延用原有Overleaf項目
爲了保持原有的版本控制,這裏咱們選擇了繼續調整原有項目。
問題描述:Runaway argument的產生是由於aux出錯,aux出錯是由於編譯的不徹底。而在線版本,因爲咱們從新編譯仍然不徹底,因此aux和compile timeout交替出現。
問題分析:編譯不徹底的其中一個緣由是由於eps佔用空間太大,在線生成pdf須要時間太長;
問題解決:
1)在離線備份前提下,刪除在線的大致積eps (好比名字是abc.eps);
2)用離線latex(包含了epstopdf package,離線文件夾中也有大致積eps)生成大致積eps對應的pdf
3)確認pdf命名,好比名字是abc.eps,其pdf命名應爲abc-eps-converted-to.pdf
4)上傳pdf
編譯無錯經過
注意:
1)若是不但願編譯eps,即便上傳了pdf,其eps也應該刪除。由於一旦系統發現eps和pdf不匹配,會從新編譯eps。
2)pdf的命名
好處:主要是但願兼容以前的版本(不去修改原文中圖片引用的代碼)。原理是這樣的,系統首先會搜索eps,搜索不到的狀況會顯示上一次成功版本(也就是,對名字是abc.eps的文件,系統會搜索abc-eps-converted-to.pdf),因此pdf的名字就須要是convert後的命名。這樣就能夠同時支持eps和pdf文件的讀取(但abc.eps)。
缺點:因爲部分在文中說起的eps缺失了,因此會有warning;若是以後有相應的eps圖片要更新,就須要先生成pdf再上傳
3)也能夠考慮用其它方式壓縮圖片體積。用photoshop打開,而後另存爲eps,能夠將5.5MB的eps壓縮到3.8M左右。也能夠考慮換個轉換的軟件(若是讀者還有其它建議,歡迎評論或留言)。
4)Overleaf編譯超時還能夠嘗試一下買一個Pro版 。匿名版編譯時間30秒,免費版編譯時間1 min,時間到出不來就會超時。Pro / Pro+能把編譯時間增長到4 min [1]。
Reference
[1] https://www.overleaf.com/help/46-why-do-i-keep-getting-the-compile-timeout-error-message
=======================
鳴謝:華中科技大學 陳瓊同志