Латекс: центральный текст в листинге - PullRequest
2 голосов
/ 27 апреля 2010

Как мне центрировать текст в листинге в латексе?

Или другим способом, не используя листинг. (Нужна коробка с моноширинным шрифтом)

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Ответ, данный на tex.stackexchange :

\documentclass{article}
\usepackage{listings}
\renewcommand{\figurename}{Listing}
                    % replace figurename with the text that should preceed the caption
\begin{document}

\begin{figure}[thp] % the figure provides the caption
\centering          % which should be centered
\caption{Ausgabe des C-Programms}
\begin{tabular}{c}  % the tabular makes the listing as small as possible and centers it
\begin{lstlisting}[label={gtt_c_ausgabe}]
printf("Your code goes here.\n");
\end{lstlisting}
\end{tabular}
\end{figure}

\end{document}

... что заставляет меня задуматься:

Использование рамки вокруг кода, например, используя \lstset{frame=single,frameround=tttt}, поместите рамку вправо. Как этого можно избежать?

Что делает бит renewcommand?

0 голосов
/ 27 апреля 2010

У меня нет ответа для пакета листинга на моей голове, но вы можете попробовать следующее:

\framebox[.9\linewidth]{\parbox{.85\linewidth}{\tt Hello World\\Second line}}

Это создает поле с 90% ширины линии и текстом шириной 85% от ширины линии.

Если вы хотите, чтобы он был отцентрирован, просто поставьте \centering перед командой \tt:

\framebox[.9\linewidth]{\parbox{.85\linewidth}{\centering \tt Hello World\\Second line}}

Если вы предпочитаете поле без рамки, просто замените \framebox на \makebox (и оставьте аргументы неизменными).

...