Se debería haber utilizado un espacio de no separación (`~') en la tabla

Se debería haber utilizado un espacio de no separación (`~') en la tabla

Estoy haciendo una tabla con \ref{key}solo contenido en la primera columna. Me refiero dinámicamente a los números de artículo en un archivo \enumerate{}. CHKTeX me da la advertencia Non-breaking space (`~') should have been used.. Intenté agregar una tilde delante de \refpero luego CHKTeX da la advertencia Double space found..

¿Cómo me deshago de esta advertencia?

Entrada actual:

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

Respuesta1

Un ejemplo mínimo es

\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}

que produce

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\\  
^

Estas advertencias son simplemente incorrectas, por lo que ignorarlas o no ejecutar chktex sería una opción razonable.

No desea forzar un espaciado incorrecto o un código innecesariamente complicado solo para silenciar un corrector de sintaxis incorrecto, pero parece que puede hacerlo si lo desea y colocar la referencia en un grupo.

\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}

no tiene advertencias

Respuesta2

Lo descubrí yo mismo: usar lo sugerido ~por CHKTeX crea un espacio delante del elemento. En cambio, la forma correcta de hacerlo es \nolinebreak. Esta es una tilde pero invisible. También puedes agregar espacios delante, sin generar un aviso. De esta manera, el código todavía tiene sangría pero no se agrega ningún espacio. El código se verá así:

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

La salida se ve así:

ingrese la descripción de la imagen aquí

información relacionada