表中应使用不间断空格(“〜”)

表中应使用不间断空格(“〜”)

我正在制作一个表格,\ref{key}其中第一列只有内容。我动态引用了中的项目编号\enumerate{}。CHKTeX 给出了警告Non-breaking space (`~') should have been used.。我尝试在前面添加波浪符号,\ref但 CHKTeX 给出了警告Double space found.

我该如何消除这个警告?

当前输入:

    \begin{tabular}{l c c c c c c}
        ~\ref{key}        &   & x & x &   &   &   \\ 
        ~\ref{anotherkey} & x & x & x &   &   &   \\ 
    \end{tabular}

答案1

一个最小的例子是

\documentclass{article}

\begin{document}

\section{Zzzz\label{zz}}

\begin{tabular}{ll}
\ref{zz}  & zzzz\\
\ref{zzz}  & zzzz  zzz\\
\end{tabular}

\section{Zzzz zzz\label{zzz}}


\end{document}

产生

Warning 2 in dd197.tex line 8: Non-breaking space (`~') should have been used.
\ref{zz}  & zzzz\\  
^
Warning 2 in dd197.tex line 9: Non-breaking space (`~') should have been used.
\ref{zzz}  & zzzz  zzz\\  
^

这些警告完全是不正确的,因此忽略它们或不运行 chktex 是一个合理的选择。

你不想强制使用错误的间距或不必要的复杂代码只是为了使不正确的语法检查器静音,但如果你愿意的话,你似乎可以这样做,并将 ref 放在一个组中

\documentclass{article}

\begin{document}

\section{Zzzz\label{zz}}

\begin{tabular}{ll}
{\ref{zz}}  & zzzz\\
{\ref{zzz}}  & zzzz  zzz\\
\end{tabular}

\section{Zzzz zzz\label{zzz}}


\end{document}

没有警告

答案2

我自己想出了这个:使用~CHKTeX 的建议会在项目前面创建一个空格。正确的做法是\nolinebreak。这是一个波浪号,但不可见。您还可以在前面添加空格,而不会生成警告。这样,代码仍然缩进,但没有添加空格。代码将如下所示:

    \nolinebreak\ref{reqBoot} &   & x & x &   &   &   \\ 
    \nolinebreak\ref{reqDisplays} &   &   & x &   &   &   \\ 
    \nolinebreak\ref{reqBoot} &   & x & x &   &   &   \\ 

输出如下所示:

在此处输入图片描述

相关内容