当我评论一行时,神秘地编译失败

当我评论一行时,神秘地编译失败

我设立了一个github 仓库工作环境不是那么简陋(对此深表歉意)。

正如 github 上的 README 所说,取消注释以下愚蠢的行可以解决问题并使diplomadolgozat.tex文件可编译。

%\begin{figure}[h]\end{figure}

删除其他行后,编译器会很顺利,但这一切都是不可预测的。到目前为止,一切都很好,但这个错误让我的整个写作过程变得不稳定:我再也不知道它什么时候会再次中断,什么时候中断,为什么会中断。

如果您有时间,请克隆 github repo,亲自查看。

答案1

几乎任何改变分页符的修改都会使错误消失,所以在我看来,如果分页符出现在列表内部,并且存在待定的浮动环境,则会出现问题。(我能够将您的文档精简为一个更小的示例文档,但仍然显示错误,见下文。)

但问题的主要原因似乎是magyar.ldf你文档文件夹中的 1.5b 版本。当我使用 TeXlive 2011 提供的 v1.4j 版本时,错误也会消失,而且我无法通过更改文档内容来恢复错误。

因此,看起来 magyar.ldf 的 1.5b 版本至少有一个错误。下面是一个示例文档,在使用 magyar.ldf 的 v1.5b 版本时仍然显示错误:

\begin{filecontents}{compiler.clj}
;;{antIfStar}
(defn ant-if* [kond true-branch false-branch]
  {:pre [(every? node? [kond true-branch false-branch]) 
  (binary-node? kond)]
   :post [(node? %)]}
  (let [[t-node f-node] (mark-branches true-branch 
    false-branch)
        ztrue (to-ztree t-node)
        zkond (to-ztree kond)]
    (->> f-node
         (insert-at-the-bottom ztrue ,,,)
         (insert-under-a-jump-to-true-label zkond ,,,))))
;;{end}
\end{filecontents}

\documentclass[12pt,a4paper,oneside]{report}

\usepackage[utf8]{inputenc}
\def\magyarOptions{defaults=hu-min}
\usepackage[magyar]{babel}
\usepackage{anysize}
\marginsize{2.5cm}{2cm}{1.5cm}{1.5cm}
\usepackage[demo]{graphicx}
\linespread{1.3}

\usepackage{listings}

\begin{document}

\begin{verbatim}
(ant-if (sense :ahead :foe)  ; feltétel
        (turn :left)         ; igaz ág
        (turn :right))       ; hamis ág
\end{verbatim}

\begin{figure}
  \centering
  \includegraphics[bb=0 0 227 345,scale=0.85]{a.png}
  \caption{\texttt{(turn :right)}}
  \label{antSenseAFoe}
\end{figure}

A \verb|Sense Ahead| csúcsnak két \verb|"jump" UnaryNode| gyermeke van. Ha a \verb|Sense Ahead| feltétele igaz, tehát ha előttem egy ellenséges hangya áll, akkor a baloldali \verb|"jump" :next| értelmében a következő utasításon kell folytatnom, ami a [T1] címkével jelölt \emph{Turn Left}. Ha a feltétel nem igaz, tehát ha nincs előttem ellenség, akkor jobboldali \verb|"jump" F1| -- aminek a \verb|:target| mezőjében F1 szerepel -- az [F1] címkéjű \emph{Turn Right} utasításra irányít.

A \verb|Sense Ahead| csúcsnak két \verb|"jump" UnaryNode| gyermeke van. Ha a \verb|Sense Ahead| feltétele igaz, tehát ha előttem egy ellenséges hangya áll, akkor a baloldali \verb|"jump" :next| értelmében a következő utasításon kell folytatnom, ami a [T1] címkével jelölt \emph{Turn Left}. Ha a feltétel nem igaz, tehát ha nincs előttem ellenség, akkor jobboldali \verb|"jump" F1| -- aminek a \verb|:target| mezőjében F1 szerepel -- az [F1] címkéjű \emph{Turn Right} utasításra irányít.

A \verb|Sense Ahead| csúcsnak két \verb|"jump" UnaryNode| gyermeke van. Ha a \verb|Sense Ahead| feltétele igaz, tehát ha előttem egy ellenséges hangya áll, akkor a baloldali \verb|"jump" :next| értelmében a következő utasításon kell folytatnom, ami a [T1] címkével jelölt \emph{Turn Left}. Ha a feltétel nem igaz, tehát ha nincs előttem ellenség, akkor jobboldali \verb|"jump" F1| -- aminek a \verb|:target| mezőjében F1 szerepel -- az [F1] címkéjű \emph{Turn Right} utasításra irányít.

A \verb|Sense Ahead| csúcsnak két \verb|"jump" UnaryNode| gyermeke van. Ha a \verb|Sense Ahead| feltétele igaz, tehát ha előttem egy ellenséges hangya áll, akkor a baloldali \verb|"jump" :next| értelmében a következő utasításon kell folytatnom, ami a [T1] címkével jelölt \emph{Turn Left}. Ha a feltétel nem igaz, tehát ha nincs előttem ellenség, akkor jobboldali \verb|"jump" F1| -- aminek a \verb|:target| mezőjében F1 szerepel -- az [F1] címkéjű \emph{Turn Right} utasításra irányít.

Az \verb|ant-if| csak annyit csinál, hogy

\lstinputlisting[linerange=antIfStar-end]{compiler.clj}

\end{document}

答案2

杰克和安德烈,你们完全正确。

睡了一觉,头脑清醒了些之后,我尝试缩小主文档。注释掉该\def\magyarOptions{defaults=hu-min}行解决了问题。

我希望这是真正的问题,也希望我彻底解决了这个问题。如果不是,我将继续最小化它,直到达到 MWE。

相关内容