我知道这个问题已经讨论过很多次了,建议的解决方案是在表格单元格内使用嵌套的 parbox,但我想避免这种情况。到目前为止,我使用的表格的每一列都用选项定义X
。换行符语句已被考虑在内,效果很好。
然后,我决定第一列有点太大,我X
用左列的列语句替换了它l
。但是我现在得到的结果没有正确对齐。如您所见,我得到了不必要的空格,并且换行符被丢弃了。
我拥有的最小工作代码:
\documentclass[twoside]{report}
\usepackage[a4paper,margin=2cm]{geometry}
\linespread{1.2}
\usepackage{fontspec}
\usepackage{csquotes}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{tabu}
% Add extra space for proper alignement between table rows
\tabulinesep = 3pt
\usepackage{float}
\usepackage{booktabs}
\usepackage[export]{adjustbox}
\usepackage{mwe}
\usepackage[french]{babel}
\usepackage{parskip}
\begin{document}
\begin{tabu}{X X X}\toprule
Catégories & Objectifs de la vue & Exemples de vue\\\midrule
Contenu
\adjustbox{margin=1ex 0.5\baselineskip}{\includegraphics[width=0.05\textwidth]{example-image-a}} & Afficher un type particulier de contenu comme une image ou un texte & Image view, label\\
Collections
\adjustbox{margin=1ex 0.5\baselineskip}{\includegraphics[width=0.05\textwidth]{example-image-b}} & Afficher des collections ou un groupe de vues & Collection view (conteneur), table view (ableau)\\
Contrôles utilisateurs
\adjustbox{margin=1ex 0.5\baselineskip}{\includegraphics[width=0.05\textwidth]{example-image-c}} & Effectuer des actions pour afficher des éléments & Bouton, un slider (barre glissante), switch (interrupteur ON-OFF)\\
Barres
\adjustbox{margin=1ex 0.5\baselineskip}{\includegraphics[width=0.05\textwidth]{example-image-a}} & Naviger dans les vues ou effectuer des actions & Barre d'outils, barre de navigation, barre d'onglets\\
Entrées
\adjustbox{margin=1ex 0.5\baselineskip}{\includegraphics[width=0.05\textwidth]{example-image-b}} & Recevoir une entrée de l'utilisateur généralement à partir du clavier & Barre de recherche, text view\\
Conteneurs
\adjustbox{margin=1ex 0.5\baselineskip}{\includegraphics[width=0.05\textwidth]{example-image-c}} & Serveur de conteneurs pour d'autres vues & Simple vue, scroll view\\
Modal & Interrompre le flux de l'application pour autoriser l'utilisateur à effectuer une action particulière & \enquote{Action sheet} (feuille d'actions), \enquote{alert view} (boites de dialogues d'avertissement)\\\bottomrule
\end{tabu}
\end{document}
答案1
首先,您使用手动回车/换行符为第一列中的图像插入换行符。请将它们替换为\newline
,不要使用,\\
因为您的表格环境会认为您正在尝试创建新行,并且第二列和第三列中的文本将移至底部,并添加一个空白区域(请参见以下屏幕截图中我用红色标记的空间)。
在代码中这将给出(仅给出第一行内容的示例):
Contenu\newline\adjustbox{margin=1ex 0.5\baselineskip}{\includegraphics[width=0.05\textwidth]{example-image-a}} & Afficher un type particulier de contenu comme une image ou un texte & Image view, label\\
正如@Sveinung 在您的问题评论中明确指出的那样,这是由于l
段落模式下未定义列的参数:\newline
未被解释。
幸运的是,tabu
确实X
为列提供了系数(参见第 2.3 点来自文档)。基本上,您只需要用\begin{tabu}{X X X}\toprule
by替换该行\begin{tabu}{X[0.8] X[1.1] X[1.1]}\toprule
即可。
现在它可以按预期工作了(请注意,第一列的大小已调整,但回车符保持不变):