开箱即用的fitch.sty
软件包(目前由 Richard Zach 维护,可用这里) 有一些自动标记行为,我想改变它。
- 我想在行号两边加上括号。默认情况下,它们只是空数字。
- 我想删除推理步骤中提到的规则名称后面的逗号。
您可以在下面的 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}
答案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)}