3

在 LaTeX 中,我使用listings包在表格中显示一些代码片段。但似乎在使用这个包时,单元格的垂直对齐方式正在发生变化。

这是一些代码:

\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}

这就是我得到的(注意第一列的居中垂直对齐):

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

如果我避免使用listings表内的包,则垂直对齐方式不同(居中):

\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

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

4

1 回答 1

2

通过选项告诉 latex 将其对齐在其文本行基线的顶部boxpos

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

其他盒子也会出现这个问题

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

如果省略 position 参数t,它将使两个框相对于彼此居中对齐。

于 2010-07-02T06:47:23.287 回答