Le mystère de l'astérisque qui disparaît [duplicate]
J'ai un étrange "bug" dans ma table. Pour une raison quelconque, un astérisque n'apparaît pas. J'utilise LuaLaTex qui, d'après ce que je comprends, utilise Unicode, donc tous ces glyphes étranges que j'ai dans ma table devraient être imprimés directement et ils le sont tous, à l'exception d'un astérisque! Et ce qui est étrange, c'est que si j'ajoute un deuxième astérisque, un apparaît. J'ai essayé le tableau sans tcolorbox
et avec tabular
au lieu de tabularx
et ni l'un ni l'autre ne ramène l'astérisque. Je suis perplexe.
À quoi il ressemble:

Voici mon code:
\documentclass[12pt,a4paper,openany]{book}
\usepackage{fontspec}
\setmainfont[Numbers=OldStyle,Ligatures=TeX]{linux libertine}
\usepackage{polyglossia}
\setdefaultlanguage{icelandic}
\usepackage{tcolorbox}
\usepackage{tabularx}
\begin{document}
\begin{table}[h!]%
\begin{footnotesize}
\begin{tcolorbox}
\begin{center}
\begin{tabularx}{0.9\textwidth}{lXX}
Stofn & Tenging við [GULUR] & Orð af sama stofni \\
\hline
*ƀlaikaz & gamalháþýska: \textit{bleih} ‘gulleitur, fölur’ & is. \textit{bleikur}; \\
& & dk. \textit{bleg} ‘fölur’; \\
& & en. \textit{bleak} ‘hráslagalegur’ \\
\hline
*ƀlēwaz & skylt latnesku \textit{flāvus} ‘gullingulur’; & is. \textit{blár}; \\
& fornírska \textit{blár} ‘gulur’ & dk. \textit{blå} ‘blár’; \\
& & en. \textit{blue} ‘blár’ \\
\hline
*falvaz & fornenska \textit{fealu} ‘gulbrúnn, gulur’; & is. \textit{fölur}; \\
& gamalsaxneska \textit{falu} ‘fölgulur’; & en. \textit{fallow} ‘gulbrúnn’ \\
& fornháþýska \textit{falo} ‘fölur, rauðgulur’; & \\
& slavneska *\textit{polь} ‘gulur, hvítleitur’ & \\
\hline
*ʒallan & talið skylt *\textit{g̑hel}- & is. \textit{gall}; \\
*ʒallōn & sanskrít \textit{hári} ‘fölur, gulleitur, grænleitur’; & en. \textit{gall} ‘ósvífni’ \\
& avestíska \textit{zairi} ‘gulur, gulleitur’ & \\
\hline
*ʒelwaz & fornenska \textit{ʒeolu} ‘gulur’; & is. \textit{gulur}; \\
& skylt sanskrít \textit{gaurá}- ‘hvítleitur, gulleitur’; & dk. \textit{gul} ‘gulur’; \\
& latína \textit{giluus} ‘fölgulur’; & en. \textit{yellow} ‘gulur’ \\
& latína \textit{fuluus} ‘skærgulur’ & \\
\hline
*ʒlōraz & sama og gríska \textit{khlorós} ‘grænleitur gulur’ & is. \textit{glor} ‘gulgrár hungurlitur’; \\
& & en. \textit{chlorine} ‘klór(gas)’ \\
\hline
*ʒlūmaz & skylt grísku \textit{khloús} ‘grænleitur gulur’ & is. \textit{Glúmur} ‘björn’; \\
& & en. \textit{glum} ‘dökkur, daufur, leiður’ \\
\hline
*xunaʒgan & tengt grísku \textit{knikós} ‘fölgulur’ & is. \textit{hunang}; \\
& & en. \textit{honey} ‘hunang’ \\
\hline
*pađđōn & fornírska \textit{buide} ‘gulur’ & is. \textit{padda}; \\
& & dk. \textit{padde} ‘froskur’ \\
\hline
*salwaz & fornnorræna \textit{sǫlr} ‘gulur’ & is. \textit{söl} \\
& miðhollenska \textit{salu} ‘skítugur, fölur, gulur’ & en. \textit{sallow} ‘gugginn, fölur’ \\
\end{tabularx}
\end{center}
\end{tcolorbox}
\end{footnotesize}
\caption{Germanskir stofnar íslenskra litaorða}
\label{tafla:gulur}
\end{table}
\end{document}
Je me rends compte que puisque j'ai techniquement trouvé une solution (en ajoutant le deuxième astérisque), ce ne serait pas un problème en soi, mais cela me dérange vraiment. Donc, si quelqu'un a des idées sur les raisons pour lesquelles cela se produirait, dites-le-moi.
Réponses
Un document très simple
\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{5cm}{lX}
\show\\
\end{tabularx}
\end{document}
donne la sortie du terminal
> \\=macro:
->\relax \iffalse {\fi \ifnum 0=`}\fi \@ifstar \@xarraycr \@xarraycr .
Outre le hack d'accolade, il y a un \@ifstar
suivi de deux occurrences de la même macro \@xarraycr
. Cela signifie que les deux \\
et \\*
ont le même effet. Maintenant, la \@ifstar
macro est basée sur \@ifnextchar
, ce qui fait un bon travail pour ignorer les espaces après elle. L'effet secondaire dans des cas comme celui-ci est que un \\
suivi d'une nouvelle ligne suivie de *
est interprété comme \\*
. Vous devez donc "arrêter" le scan \@ifnextchar
et l'utiliser par exemple \\ \relax
si votre ligne commence par a *
.