这让我发疯了。
我想把一个名单集中在LaTeX中。
在尝试了3个小时后,这里有一些代码:
\lstset{ %
caption=Descriptive Caption Text,
label=lst:descr_capti_text,
basicstyle=\ttfamily\footnotesize\bfseries,
frame=tb,
linewidth=0.6\textwidth
}
\centering\begin{tabular}{c}
\begin{lstlisting}
printf("this should be centered!");
\end{lstlisting}
\end{tabular}
这是将lstlisting放在中心,而不是它的标题,这是右边的。如果我取出表格,那么标题会居中,但代码会向左移动! :(
谢谢。
答案 0 :(得分:24)
您应该考虑使用 xleftmargin 和 xrightmargin (参见texdoc listings
,第4.10章),而不是使用线宽。以下代码在没有任何中心或小型环境的情况下工作:
\lstset{
caption=Descriptive Caption Text,
basicstyle=\footnotesize, frame=tb,
xleftmargin=.2\textwidth, xrightmargin=.2\textwidth
}
\begin{lstlisting}
printf("this should be centered!");
\end{lstlisting}
答案 1 :(得分:7)
您的标题实际上是在列表中心。您只是将列表顶部和底部的行仅0.6\textwidth
长。这使得看起来好像标题偏离中心。此外,您的\centering
不会使列表居中(如果您不缩短下方和上方的行,则可见。)
这应该有效:
\begin{center}
\lstset{%
caption=Descriptive Caption Text,
basicstyle=\ttfamily\footnotesize\bfseries,
frame=tb
}
\begin{lstlisting}
printf("this should be centered!");
\end{lstlisting}
\end{center}
您没有解释为什么您希望分隔线的长度为0.6\textwidth
。如果
你真的想把你的商品的宽度设置为那个值,你的
方法没有做你想要的。使用类似小工具的东西来设置宽度
整个上市。
begin{minipage}{0.6\textwidth}
\begin{center}
\lstset{%
caption=Descriptive Caption Text,
basicstyle=\ttfamily\footnotesize\bfseries,
frame=tb,
}
\begin{lstlisting}
printf("this should be centered!");
\end{lstlisting}
\end{center}
\end{minipage}
答案 2 :(得分:4)
实际上,对我有用的是反过来的:将小型产品放在中心环境中。