Jér*_*ôme 5 latex tabular lstlisting
使用LaTeX,我需要在表格中显示一些代码片段.这是我正在尝试做的一个例子:
\begin{document}
Par exemple :
\begin{center}
\begin{tabular}{lp{5cm}l}
\hline
Méthode & Description & Exemple d'utilisation\\
\hline
\texttt{isLetter()}& Indique si le caractère est une lettre de l'alphabet. &
\begin{lstlisting}[numbersep=0pt]
QChar MyChar('x');
bool IsLetter = MyChar.isLetter();
\end{lstlisting} \\
\hline
\texttt{toUpper()}& Retourne le même caractère mais en majuscules. & toto \\
\hline
\end{tabular}
\end{center}
\end{document}
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:
http://img693.imageshack.us/img693/1709/latexcodetable.png.
如您所见,代码左侧有一个边距.我想这个边距是编号,但我不需要编号,并希望摆脱它.我试过改变一些选项(numbersep,xleftmargin),但没有一个按我的意愿工作.
UPDATE
以下是演示该问题的完整文档:
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern,textcomp}
\usepackage[frenchb]{babel}
\usepackage{listings}
\begin{document}
\begin{enumerate}
\item Par exemple :
\begin{center}
\begin{tabular}{lp{5cm}l}
\hline
Méthode & Description & Exemple d'utilisation\\
\hline
\texttt{isLetter()}& Indique si le caractère est une lettre de l'alphabet. &
\begin{lstlisting}[numbersep=0pt]
QChar MyChar('x');
bool IsLetter = MyChar.isLetter();
// IsLetter vaut vrai
QChar MyChar2('&');
IsLetter = MyChar2.isLetter();
// IsLetter vaut faux
\end{lstlisting}\\
\hline
\texttt{toUpper()}& Retourne le même caractère mais en majuscules. & toto \\
\end{tabular}
\end{center}
\end{enumerate}
\end{document}
Run Code Online (Sandbox Code Playgroud)
我可以推断出问题是因为表位于枚举项中.
有办法解决这个问题吗?
问题是由表环境引起的.默认情况下,乳胶在行前插入一个小空间.通过@{}在第一列规范之前使用代码可以避免这种情况.
\begin{tabular}{@{}lp{5cm}l}
...
\end{tabular}
Run Code Online (Sandbox Code Playgroud)
欲了解更多有关信息,@{}请参阅此链接.
您的完整代码示例将是
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern,textcomp}
\usepackage[frenchb]{babel}
\usepackage{listings}
\begin{document}
\begin{enumerate}
\item Par exemple :
\begin{center}
\begin{tabular}{@{}lp{5cm}l}
\hline
Méthode & Description & Exemple d'utilisation\\
\hline
\texttt{isLetter()}& Indique si le caractère est une lettre de l'alphabet. &
\begin{lstlisting}[numbersep=0pt]
QChar MyChar('x');
bool IsLetter = MyChar.isLetter();
// IsLetter vaut vrai
QChar MyChar2('&');
IsLetter = MyChar2.isLetter();
// IsLetter vaut faux
\end{lstlisting}\\
\hline
\texttt{toUpper()}& Retourne le même caractère mais en majuscules. & toto \\
\end{tabular}
\end{center}
\end{enumerate}
\end{document}
Run Code Online (Sandbox Code Playgroud)
是的,保证金的确来自枚举。但幸运的是,清单软件包的软件包文档中指出:
resetmargins = true | false(默认值:false)
如果为true,则会重置(即不使用)来自枚举或逐项列出列表环境的缩进。
因此,以下内容应有所帮助:
\begin{lstlisting}[numbersep=0pt,resetmargins=true]
Run Code Online (Sandbox Code Playgroud)
问候
克里斯托夫