我想定义一个使用两个可选参数的环境,但我希望能够使用一个,<>
另一个[]
以下是我所做的:
\NewDocumentCommand\why{O{\equiv}m}%
{ #1 & \quad\langle\;\text{{#2}}\;\rangle }
\NewDocumentCommand\res{m}%
{ & #1}
\NewDocumentCommand\To{}{\Rightarrow}
\NewDocumentEnvironment{derivation}{D<>{1.2} O{0pt}}{
\begingroup
\renewcommand{\arraystretch}{#1}
\setlength{\tabcolsep}{#2}
\begin{tabular}{>{$}l<{$} >{$}l<{$}}
}{
\end{tabular}
\endgroup
}
当我尝试使用任何可选参数时,它们要么打印在 pdf 中,要么我只是收到错误。我该如何解决这个问题?
示例代码为:
\documentclass{article}
\usepackage{xparse}
\usepackage{mathtools}
\usepackage{nicematrix}
\usepackage[spanish]{babel}
\ExplSyntaxOn
\NewDocumentCommand\why{O{\equiv}m}%
{ #1 & \quad\langle\;\text{{#2}}\;\rangle }
\NewDocumentCommand\res{m}%
{ & #1}
\NewDocumentCommand\To{}{\Rightarrow}
\NewDocumentEnvironment{derivation}{D<>{1.2} O{0pt}}{
\renewcommand{\arraystretch}{#1}
\setlength{\tabcolsep}{#2}
\begin{tabular}{>{$}l<{$} >{$}l<{$}}
}{
\end{tabular}
}
\ExplSyntaxOff
\begin{document}
\begin{center}
\begin{derivation}<1.5>
\res{ (p \To \neg q) \land (\neg q \To \neg p) }\\
\why[\To]{ Transitividad($\To$) }\\
\res{ p \To \neg p }\\
\why{ Def.(alt)($\To$) }\\
\res{ \neg p \lor \neg p }\\
\why{ Idempotencia($\lor$) }\\
\res{ \neg p }
\end{derivation}
\end{center}
\end{document}
显然,问题出在babel
包裹上。
答案1
默认情况下,babel-spanish
激活<
并>
获取报价。
此激活是在开始文档时完成的,但您的代码要求 LaTeX 寻找“普通”<
和>
,但它找不到。
解决方法:传递es-noquoting
选项。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[spanish,es-noquoting]{babel}
\usepackage{mathtools}
\usepackage{nicematrix} % loads the package 'array', used in the code
\ExplSyntaxOn
\NewDocumentCommand\why{O{\equiv}m}
{ #1 & \quad\langle\;\text{{#2}}\;\rangle }
\NewDocumentCommand\res{m}
{ & #1}
\NewDocumentCommand\To{}{\Rightarrow}
\NewDocumentEnvironment{derivation}{D<>{1.2} O{0pt}}{%
\renewcommand{\arraystretch}{#1}%
\setlength{\tabcolsep}{#2}%
\begin{tabular}{>{$}l<{$} >{$}l<{$}}%
}{
\end{tabular}%
}
\ExplSyntaxOff
\begin{document}
\begin{center}
\begin{derivation}<1.5>
\res{ (p \To \neg q) \land (\neg q \To \neg p) }\\
\why[\To]{ Transitividad($\To$) }\\
\res{ p \To \neg p }\\
\why{ Def.(alt)($\To$) }\\
\res{ \neg p \lor \neg p }\\
\why{ Idempotencia($\lor$) }\\
\res{ \neg p }
\end{derivation}
\end{center}
\end{document}
xparse
我删除了自 2020 年 10 月以来不再需要的调用。相反,我添加了fontenc
一个T1
选项,是西班牙语所需。
检查 的位置%
。