Центр Latex lstlisting
Это сводит меня с ума.
Я хочу центрировать lstlisting в 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 в центр, но не его подпись, которая идет вправо. Если я вытащил табличку, то заголовок центрируется, но код идет влево!: (
Спасибо.
Ответы
Ответ 1
Вместо использования ширины линии вы должны использовать 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}
Ответ 2
Ваша подпись фактически сосредоточена над листингом. Вы просто делаете строки, которые идут вверх и вниз по вашему списку, только 0.6\textwidth
long. Это заставляет его выглядеть так, как если бы подпись была вне центра. Кроме того, ваш \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}
Ответ 3
Собственно, то, что для меня работало, - это обратное: помещение мини-диска внутри центральной среды.