Ich erstelle eine Tabelle mit \ref{key}
nur Inhalt in der ersten Spalte. Ich beziehe mich dynamisch auf Artikelnummern in einem \enumerate{}
. CHKTeX gibt mir die Warnung aus Non-breaking space (`~') should have been used.
. Ich habe versucht, vor dem eine Tilde hinzuzufügen, \ref
aber dann gibt CHKTeX die Warnung aus Double space found.
.
Wie werde ich diese Warnung los?
Stromeingang:
\begin{tabular}{l c c c c c c}
~\ref{key} & & x & x & & & \\
~\ref{anotherkey} & x & x & x & & & \\
\end{tabular}
Antwort1
Ein Minimalbeispiel ist
\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}
das erzeugt
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\\
^
Diese Warnungen sind schlichtweg falsch, daher wäre es sinnvoll, sie zu ignorieren oder chktex nicht auszuführen.
Sie möchten keine falschen Leerzeichen oder unnötig komplizierten Code erzwingen, nur um einen fehlerhaften Syntaxprüfer zum Schweigen zu bringen, aber es scheint, dass Sie dies tun können, wenn Sie möchten, und den Verweis in eine Gruppe einfügen
\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}
hat keine Warnungen
Antwort2
Ich habe es selbst herausgefunden: Wenn Sie den Vorschlag ~
von CHKTeX verwenden, wird vor dem Element ein Leerzeichen erstellt. Die korrekte Vorgehensweise ist stattdessen \nolinebreak
. Dies ist eine Tilde, aber unsichtbar. Sie können auch Leerzeichen davor einfügen, ohne eine Warnung zu generieren. Auf diese Weise wird der Code immer noch eingerückt, aber es wird kein Leerzeichen hinzugefügt. Der Code sieht dann folgendermaßen aus:
\nolinebreak\ref{reqBoot} & & x & x & & & \\
\nolinebreak\ref{reqDisplays} & & & x & & & \\
\nolinebreak\ref{reqBoot} & & x & x & & & \\
Die Ausgabe sieht folgendermaßen aus: