重新格式化 fitch.sty 校样中的标签

重新格式化 fitch.sty 校样中的标签

开箱即用的fitch.sty软件包(目前由 Richard Zach 维护,可用这里) 有一些自动标记行为,我想改变它。

  1. 我想在行号两边加上括号。默认情况下,它们只是空数字。
  2. 我想删除推理步骤中提到的规则名称后面的逗号。

您可以在下面的 MWE 中看到开箱即用的行为。

\documentclass{standalone}

\usepackage{fitch}
\begin{document}

\begin{displaymath}
  \begin{nd}
    \hypo {1} {(P \land (Q \land R))} %
    \hypo {2} {(S \land P')}%
    \have {3} {(Q \land R)} \ae{1}%
    \have {4} {Q} \ae{3} %
    \have {5} {P'} \ae{2}%
    \have {6} {(P' \land Q)} \ai{5,4}
  \end{nd}
\end{displaymath}

\end{document}

MWE 代码的输出

答案1

您将能够在 v1.0 中执行此操作;请参阅文档的第 4 节:https://github.com/OpenLogicProject/fitch/releases/tag/v1.0-beta(编辑:我写得太早了。您还不能配置数字的打印方式。但这很容易做到。)

更新:已完成https://github.com/OpenLogicProject/fitch/releases/tag/v1.0-beta2

在新版本中fitch,您只需在序言中输入:

\renewcommand{\ndjustformat}[2]{#1 #2}
\renewcommand{\ndrefformat}[1]{(#1)}

答案2

奇怪的是,包写得很奇怪。使用*而不是 作为内部命令字符,这肯定会使这些简单的修改变得比需要的更难@。我还将文档类更改为,article因为您的代码无法用 进行编译standalone。(似乎 GitHub 上提供的测试版已经解决了这个问题。)

\documentclass{article}
\usepackage{etoolbox}
%
\usepackage{fitch}
% begin fitch modifications
{\chardef\x=\catcode`\*
\catcode`\*=11
\global\let\nd*astcode\x}
\catcode`\*=11

\patchcmd{\nd*by}{,}{}{}{\fail}
\patchcmd{\nd*render}{\the\nd*ctr}{(\the\nd*ctr)}{}{\fail}

\catcode`\*=\nd*astcode
% end fitch modifications
% don't try to do anything else within this block of code!

\begin{document}

\begin{displaymath}
  \begin{nd}
    \hypo {1} {(P \land (Q \land R))} %
    \hypo {2} {(S \land P')}%
    \have {3} {(Q \land R)} \ae{1}%
    \have {4} {Q} \ae{3} %
    \have {5} {P'} \ae{2}%
    \have {6} {(P' \land Q)} \ai{5,4}
  \end{nd}
\end{displaymath}

\end{document}

代码输出

更新:使用预发布版本

如果您下载了更新包的预发布版本这里*您可以使用下面的代码来做同样的事情。新版本还取消了代码中奇怪的 用法,并将其替换为@

\renewcommand{\ndjustformat}[2]{#1 #2}
\renewcommand{\ndrefformat}[1]{(#1)}

相关内容