2010-07-02 137 views
3

在LaTeX中,我使用listings包来在表格中显示一些代码片段。但是,似乎在使用这个软件包时,单元的垂直对齐正在改变。LaTeX:包含列表的表格中的垂直对齐

下面是一些代码:

\documentclass[a4paper,11pt]{article} 
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern,textcomp} 
\usepackage[frenchb]{babel} 
\usepackage{listings} 

\begin{document} 
\begin{tabular}{ll} 
\hline Méthode & Exemple d'utilisation\\ 
\hline isLetter()& 
\begin{lstlisting} 
QChar MyChar('x'); 
bool IsLetter = MyChar.isLetter(); 
// IsLetter vaut vrai 
// bla bla bla 
\end{lstlisting}\\ 
\hline 
\end{tabular} 
\end{document} 

,这里是我所得到的(注意第一列的中心垂直alignement):

http://img820.imageshack.us/img820/8509/image4l.png

如果我避免使用表内的listings包,垂直alignement是不同的(中心的):

\begin{tabular}{lp{5cm}} 
\hline Méthode & Exemple d'utilisation\\ 
\hline isLetter()& 
QChar MyChar('x'); 
bool IsLetter = MyChar.isLetter(); 
// IsLetter vaut vrai 
// bla bla bla 
\\ 
\hline 
\end{tabular} 

http://img691.imageshack.us/img691/8585/image5gy.png

我想将一些代码放在表内,但是保持单元格的垂直对齐位置在顶部。

回答

2

通过选项boxpos告诉胶乳将其排列在其文本行基线的顶部。

\begin{lstlisting}[boxpos=t] 
QChar MyChar('x'); 
bool IsLetter = MyChar.isLetter(); 
// IsLetter vaut vrai 
// bla bla bla 
\end{lstlisting} 

如果你离开了位置参数t的问题也与其他框

\parbox[t]{3cm}{Hello\\World\\Peace} 
\parbox[t]{3cm}{Goodbye} 

发生,它会对准彼此相对居中的两个复选框。

+0

谢谢,它的效果很好(虽然它仍然很模糊,为什么在第一集团中设置一个选项会影响其他)! – 2010-07-02 12:20:33