我正在尝试使用 SWI Prolog PlDoc 包生成文档,但是我遇到了在中定义的环境的问题pldoc.sty
:
\newcommand{\tag}[1]{%
\item[#1]}
...
% \begin{tags} ... \end{tags}
\newenvironment{tags}%
{\begin{quote}\begin{description}%
\setlength{\itemsep}{0pt}%
\footnotesize}%
{\end{description}\end{quote}}
这在生成的 TeX 文件中使用如下:
\subsection{automata.pl: High-level predicates for dealing with regular expressions}
\label{sec:automata}
\begin{tags}
\tag{See also}
\url{https://github.com/wvxvw/intro-to-automata-theory}
\tag{To be done}
Add \predref{match_suffix_regex}{3}, \predref{match_all_regex}{3}, \predref{find_regex}{3}
\end{tags}
我将其插入到一个更大的文档中,如下所示:
\documentclass[11pt]{article}
...
\usepackage{amsmath}
...
\usepackage{pldoc}
...
\begin{document}
...
\section{Appendix A}
\label{sec:orgheadline18}
\input{automata-doc}
\end{document}
当我尝试使用生成 PDF 时latexmk
收到pdflatex
以下错误:
! Package amsmath Error: \tag not allowed here.
See the amsmath package documentation for explanation.
Type H <return> for immediate help.
...
l.253 \tag
{See also}
但是,当我生成独立文档(不使用amsmath
包)时,不会发生此错误。我猜是它amsmath
搞乱了一切,但我不知道如何防止它干扰。
答案1
我遇到了同样的问题,我修改了 Prolog 和 LaTeX 代码以解决问题。您可以在 GitHub 上的存储库 AltPldoc 中找到修改后的文件和一些说明。 https://github.com/francomorando/AltPldoc
答案2
看起来维护者不愿意更改文档生成器提供的 STY:https://github.com/SWI-Prolog/packages-pldoc/issues/11
我缺乏尝试自己修补此问题的知识,因此,我发现解决问题的唯一方法是分别生成代码文档和文章的其余部分,然后按照以下(或类似)说明合并两个生成的 PDF:https://askubuntu.com/a/18691/638782