Я создаю таблицу \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.
Вы не хотите принудительно вводить неправильные пробелы или излишне усложнять код только для того, чтобы заставить замолчать некорректную проверку синтаксиса, но, похоже, вы можете сделать это, если хотите, и поместить ссылку в группу.
\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 & & & \\
Вывод выглядит так: