LaTeX:包含列表的表格中的垂直对齐

发布于 2024-09-07 18:34:16 字数 1251 浏览 5 评论 0原文

在 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

我想要的是将一些代码放入表格内保持单元格的垂直对齐到顶部。

In LaTeX, I'm using the listings package to display some code snippet inside a table. But it seems that when using this package, the vertical alignement of the cells is changing.

Here is some code :

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

and here is what I get (notice the centered vertical alignement of the first column) :

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

If I avoid using the listings package inside the table, the vertical alignement is different (centered) :

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

What I would like is to put some code inside the table but keep the vertical alignement to top for the cells.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一杯敬自由 2024-09-14 18:34:16

通过选项 boxpos 告诉 Latex 将其对齐到文本行基线的顶部。

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

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

Tell latex to align it at the top of the baseline of its textline by the option boxpos.

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

The problem also happens with other boxes

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

If you leave out the position parameter t, it will align both boxes centered relative to each other.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文