ebproof 中的对齐

ebproof 中的对齐

我正在尝试使用软件包排版连续校样ebproof。此软件包用于&垂直对齐连续。我正在尝试编写一个命令来生成完整的连续,包括对齐标记,这样我就可以在一个地方更改连续样式并使其在我的整个文档中起作用。

这是一个可以产生我想要的东西的例子:

\documentclass{article}
\usepackage{ebproof}

\begin{document}

\[
\begin{prooftree}
\Hypo{\Gamma &| \Delta, A}
\Infer1{\Gamma, \neg A &| \Delta}
\end{prooftree}
\]

\end{document}

这段代码运行正常,并将两个序列对齐|。另一方面,下面的代码无法编译:

\documentclass{article}
\usepackage{ebproof}

\newcommand{\sqq}[2]{#1 &| #2}

\begin{document}

\[
\begin{prooftree}
\Hypo{\sqq{\Gamma}{\Delta, A}}
\Infer1{\sqq{\Gamma, \neg A}{\Delta}}
\end{prooftree}
\]

\end{document}

Misplaced alignment tab character它在该行中给出了错误\Hypo{\sqq{\Gamma}{\Delta, A}}。但据我所知,这应该与第一个有效的示例基本相同。

\protect虽然\DeclareRobustCommand我不理解它们,但似乎没有帮助,所以可能是我没有正确尝试它们。

答案1

您不能使用按照建议定义的命令,因为包会&在给出的参数中专门寻找 s等\Hypo\Infer

为了确保一致性,我建议定义两个命令:一个用于部分序列,一个用于对齐标记。

\newcommand*\dram{|}
\newcommand*\partsq[1]{#1}

显然,第二个只是重复了它的论点,但我认为你的想法是你可能希望它做其他的事情。

然后你可以写

\[
  \begin{prooftree}
    \Hypo{\partsq{\Gamma} &\dram \partsq{\Delta, A}}
    \Infer1{\partsq{\Gamma, \neg A} &\dram \partsq{\Delta}}
  \end{prooftree}
\]

生产

比对序列

据我所知,这里没有什么巧妙的技巧,所以替代方案将涉及重写大部分内容,ebproof因此你最好简单地编写一个替代包。

\documentclass{article}
\usepackage{ebproof}
\newcommand*\dram{|}
\newcommand*\partsq[1]{#1}
\begin{document}

\[
  \begin{prooftree}
    \Hypo{\partsq{\Gamma} &\dram \partsq{\Delta, A}}
    \Infer1{\partsq{\Gamma, \neg A} &\dram \partsq{\Delta}}
  \end{prooftree}
\]

\end{document}

相关内容