Это сводит меня с ума.
Я хочу центрировать lstlisting в ЛАТЕКСЕ.
После 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.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}