lhs2Tex выдает неверный файл.tex

Я запустил lhs2Tex в моем файле f.lhs ($ lhs2Tex f.lhs > f.tex). Он успешно завершился, создав f.tex и не выдав ошибок.

Тем не менее, когда я тогда бегу $ pdflatex f.texЯ получаю (после некоторых выводов) следующую ошибку:

Runaway argument?
\ignorespaces \SaveRestoreHook \column {B}{@{}>{\hspre }l<{\hspost }@\ETC.
! File ended while scanning use of \PT@scantoend.
<inserted text> 
                \par 
<*> core.tex

?   

Почему вывод lhs2Tex не может скомпилироваться в корректный текст? Кажется, что lhs2Tex не должен генерировать недопустимый текст, даже с неверным вводом.

Я не уверен в лучшем способе отладки этого; сообщение об ошибке указывает на f.tex, но это длинный сгенерированный вывод, а не мой написанный код. В моем коде (f.lhs) я не уверен, с чего начать, так как lhs2Tex отправляет его в f.tex без ошибок или вывода вообще.

Любые предложения о том, как подойти к отладке этого?


Изменить: я удалил кучу сгенерированного кода, проверяя, чтобы то, что осталось, вызывало ту же ошибку. Вот что осталось; эта свернутая версия f.tex вызывает ту же ошибку.

\documentclass{article}
%% ODER: format ==         = "\mathrel{==}"
%% ODER: format /=         = "\neq "
%
%
\makeatletter
\@ifundefined{lhs2tex.lhs2tex.sty.read}%
  {\@namedef{lhs2tex.lhs2tex.sty.read}{}%
   \newcommand\SkipToFmtEnd{}%
   \newcommand\EndFmtInput{}%
   \long\def\SkipToFmtEnd#1\EndFmtInput{}%
  }\SkipToFmtEnd

\newcommand\ReadOnlyOnce[1]{\@ifundefined{#1}{\@namedef{#1}{}}\SkipToFmtEnd}
\usepackage{amstext}
\usepackage{amssymb}
\usepackage{stmaryrd}
\newcommand{\tex}[1]{\text{\texfamily#1}}   % NEU

\newcommand{\Sp}{\hskip.33334em\relax}


\usepackage{polytable}

%mathindent has to be defined
\@ifundefined{mathindent}%
  {\newdimen\mathindent\mathindent\leftmargini}%
  {}%

\def\resethooks{%
  \global\let\SaveRestoreHook\empty
  \global\let\ColumnHook\empty}
\newcommand*{\savecolumns}[1][default]%
  {\g@addto@macro\SaveRestoreHook{\savecolumns[#1]}}
\newcommand*{\restorecolumns}[1][default]%
  {\g@addto@macro\SaveRestoreHook{\restorecolumns[#1]}}
\newcommand*{\aligncolumn}[2]%
  {\g@addto@macro\ColumnHook{\column{#1}{#2}}}

\resethooks

\newcommand{\visiblecomments}{%
  \let\onelinecomment=\onelinecommentchars
  \let\commentbegin=\commentbeginchars
  \let\commentend=\commentendchars}

\visiblecomments

\newlength{\blanklineskip}
\setlength{\blanklineskip}{0.66084ex}

\EndFmtInput
\makeatother
%
%
%
%
%
%
% This package provides two environments suitable to take the place
% of hscode, called "plainhscode" and "arrayhscode". 
%
% The plain environment surrounds each code block by vertical space,
% and it uses \abovedisplayskip and \belowdisplayskip to get spacing
% similar to formulas. Note that if these dimensions are changed,
% the spacing around displayed math formulas changes as well.
% All code is indented using \leftskip.
%
% Changed 19.08.2004 to reflect changes in colorcode. Should work with
% CodeGroup.sty.
%
\ReadOnlyOnce{polycode.fmt}%
\makeatletter

\newcommand{\hsnewpar}[1]%
  {{\parskip=0pt\parindent=0pt\par\vskip #1\noindent}}

% can be used, for instance, to redefine the code size, by setting the
% command to \small or something alike
\newcommand{\hscodestyle}{}

% The command \sethscode can be used to switch the code formatting
% behaviour by mapping the hscode environment in the subst directive
% to a new LaTeX environment.

\newcommand{\sethscode}[1]%
  {\expandafter\let\expandafter\hscode\csname #1\endcsname
   \expandafter\let\expandafter\endhscode\csname end#1\endcsname}


% "plain" mode is the proposed default.
% It should now work with \centering.
% This required some changes. The old version
% is still available for reference as oldplainhscode.

\newenvironment{plainhscode}%
  {\hsnewpar\abovedisplayskip
   \advance\leftskip\mathindent
   \hscodestyle
   \let\hspre\(\let\hspost\)%
   \pboxed}%
  {\endpboxed%
   \hsnewpar\belowdisplayskip
   \ignorespacesafterend}

% Here, we make plainhscode the default environment.

\newcommand{\plainhs}{\sethscode{plainhscode}}
\newcommand{\oldplainhs}{\sethscode{oldplainhscode}}
\plainhs


%
\begin{document}
\begin{hscode}\SaveRestoreHook

\ColumnHook
\end{hscode}\resethooks
\end{document}
\end{document}

0 ответов

Другие вопросы по тегам