\documentclass{book}
\usepackage{tikz}
\usepackage{nicematrix}
\usepackage{tocloft}
\begin{document}
\tableofcontents
\chapter{The chap one}
\section{The sec one}
\section{The sec two}
\begin{NiceTabular}{cc}
\CodeBefore
\tikz\draw[red,line width=0.5pt] (2 -| 1) -- (2 -| 2);
\Body
1 & 2 \\
3 & 4 \\
\end{NiceTabular}
\end{document}
没有\CodeBefore
一切正常。
答案1
这是版本 5.15 (2021/04/25) 中的一个小错误nicematrix
:在某些情况下,它会将 添加\ExplSyntaxOn
到文件.aux
,但不会添加匹配的\ExplSyntaxOff
,因此从那时起空格将被忽略。该问题应该很快就会修复,同时您可以将此补丁添加到文档的序言中(nicematrix
更新时会出错,然后您应该删除该补丁):
\IfPackageAtLeastTF{nicematrix}{2021/04/26}
{\PackageError{}{Patch no longer needed! Delete these lines!}{}}
{\AfterEndEnvironment{NiceTabular}{%
\immediate\expandafter\write\csname @mainaux\endcsname{\ExplSyntaxOff}}}
以下是完整示例:
\documentclass{book}
\usepackage{tikz}
\usepackage{nicematrix}
\usepackage{tocloft}
\IfPackageAtLeastTF{nicematrix}{2021/04/26}
{\PackageError{}{Patch no longer needed! Delete these lines!}{}}
{\AfterEndEnvironment{NiceTabular}{%
\immediate\expandafter\write\csname @mainaux\endcsname{\ExplSyntaxOff}}}
\begin{document}
\tableofcontents
\chapter{The chap one}
\section{The sec one}
\section{The sec two}
\begin{NiceTabular}{cc}
\CodeBefore
\tikz\draw[red,line width=0.5pt] (2 -| 1) -- (2 -| 2);
\Body
1 & 2 \\
3 & 4 \\
\end{NiceTabular}
\end{document}
答案2
正如 Phelype Oleinik 所解释的,这是 中的一个错误nicematrix
。我已进行了更正,并nicematrix
在 CTAN 上上传了新版本(2021-05-06 的 v 5.15a)以解决该问题。