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 \ref
pero 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í: