表では改行なしスペース (`~') を使用する必要があります

表では改行なしスペース (`~') を使用する必要があります

最初の列にコンテンツのみがあるテーブルを作成しています\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 &   &   &   \\ 

出力は次のようになります。

ここに画像の説明を入力してください

関連情報