latex \tabular 中的垂直对齐不正确

latex \tabular 中的垂直对齐不正确

我对表格垂直对齐有一个小问题。我有一个包含字母和文本的两列表格:

\begin{tabular}{p{0.1\textwidth} p{0.8\textwidth} }

Hypothèse   &   Description\\
\hline

但在我的 pdf 文件中,第一列和第二列没有对齐。我尝试将所有内容对齐到顶部,使用 \\[1ex] 插入空格,但似乎不起作用!

未对齐文本的示例

事实上,问题似乎来自我用来枚举字母的计数器:

\newcounter{hypothese}
\renewcommand\thehypothese{\Alph{hypothese}}
\newcommand{\newhypothese}[1]{\refstepcounter{hypothese}\label{#1} \ref{#1}}

\footnotesize


\begin{tabular}{p{0.1\textwidth} p{0.8\textwidth} }

Hypothèse   &   Description\\
\hline
\hspace{1pc}&\

\multicolumn{2}{p{\textwidth}}{\textbf{Multimodalité}} \\
A & Bla bla Bla blaBla blaBla blaBla blaBla blaBla blaBla blaBla blaBla blaBla bla Bla bla Bla bla\\
B &Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
C& Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla  \\
D& Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
% Upon here, everything looks right... below here, first column are not aligned right.
\newhypothese{hypo:cla_ver} &Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:com_acc_recoup} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:reg_negoc} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:reg_croise} & LBla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:gest_reg_part} & Bla bla Bla bla Bla bla \\
\newhypothese{hypo:gest_verba} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:trace_graph_verba} & Bla bla Bla bla Bla bla \

但我不知道如何解决它

答案1

您可以从该套件中获益tabularx,这样您就不必摆弄发行\label和打印之间交互的细微之处\thehypothese

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{tabularx,booktabs}

\newcounter{hypothese}
\renewcommand\thehypothese{\Alph{hypothese}}
\newcommand{\newhypothese}[1]{%
  \refstepcounter{hypothese}\label{#1}\thehypothese}

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{lX}
Hypothèse   &   Description\\
\midrule
\multicolumn{2}{l}{\textbf{Multimodalité}} \\
\newhypothese{hypo:cla_ver} &New hypothese: Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:com_acc_recoup} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:reg_negoc} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:reg_croise} & LBla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:gest_reg_part} & Bla bla Bla bla Bla bla \\
\newhypothese{hypo:gest_verba} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:trace_graph_verba} & Bla bla Bla bla Bla bla \\
\end{tabularx}

\end{document}

在此处输入图片描述

答案2

问题似乎出在这条命令没有以任何打印材料开头。特别是,\label使用内部命令\@bsphack和,\@espack当命令处于普通文本(即水平模式)时,它们成功地吞噬了前后正确数量的空格,但在段落之间(即垂直模式)不一定能做正确的事情。(见source2e第 52-53 页讨论这些命令的可能修改。)在许多情况下,包括您的情况,您可以通过强制水平模式来解决此问题\leavevmode

示例输出

\documentclass{article}

\begin{document}
\newcounter{hypothese}
\renewcommand\thehypothese{\Alph{hypothese}}
\newcommand{\newhypothese}[1]{\leavevmode\refstepcounter{hypothese}\label{#1}\ref{#1}}

\begin{tabular}{p{0.1\textwidth} p{0.8\textwidth} }
Hypothèse   &   Description\\
\hline
\hspace{1pc}&\\
\multicolumn{2}{p{\textwidth}}{\textbf{Multimodalité}} \\
A &Ordinary label: Bla bla Bla blaBla blaBla blaBla blaBla blaBla blaBla blaBla blaBla blaBla bla Bla bla Bla bla\\
B &Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:cla_ver} &New hypothese: Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:com_acc_recoup} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:reg_negoc} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:reg_croise} & LBla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:gest_reg_part} & Bla bla Bla bla Bla bla \\
\newhypothese{hypo:gest_verba} & Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla Bla bla \\
\newhypothese{hypo:trace_graph_verba} & Bla bla Bla bla Bla bla \\
\end{tabular}
\end{document}

答案3

我找到了解决方案。只需替换

\newcommand{\newhypothese}[1]{\refstepcounter{hypothese}\label{#1} \ref{#1}}

经过

\newcommand{\newhypothese}[1]{\refstepcounter{hypothese}\thehypothese\label{#1}}

看起来很完美……我不知道为什么。无论如何,谢谢你

相关内容