Liste centrale en Latex

cela me rend fou.

je veux centrer une liste en LaTeX.

au bout de 3 heures à tenter voici un code:

lstset{ %
    caption=Descriptive Caption Text,
    label=lst:descr_capti_text,
    basicstyle=ttfamilyfootnotesizebfseries,
    frame=tb,
    linewidth=0.6textwidth
 }
centeringbegin{tabular}{c}
begin{lstlisting}
printf("this should be centered!");
end{lstlisting}
end{tabular}

c'est mettre la lstlisting au centre mais pas sa légende, qui va à droite. Si je sors le tabulaire, alors la légende est centrée mais le code va à gauche! : (

je vous Remercie.

20
demandé sur BrunoB 2010-06-24 04:05:37

3 réponses

au lieu d'utiliser linewidth vous devriez envisager d'utiliser xleftmargin et xrightmargin(cf. texdoc listings, Chapitre 4.10). Le code suivant fonctionne sans aucun environnement de Centre ou de minipage:

\lstset{
  caption=Descriptive Caption Text, 
  basicstyle=\footnotesize, frame=tb,
  xleftmargin=.2\textwidth, xrightmargin=.2\textwidth
}
\begin{lstlisting}
    printf("this should be centered!");
\end{lstlisting}
24
répondu user1460856 2013-10-11 17:29:07

votre légende est en fait centrée sur la liste. Vous faites juste les lignes qui courent le long du haut et le bas de votre liste seulement 0.6\textwidth long. Cela donne l'impression que la légende est décentrée. Aussi, votre \centering ne Centre pas la liste (visible si vous ne raccourcissez pas les lignes ci-dessous et ci-dessus).

Cela devrait fonctionner:

\begin{center}
  \lstset{%
    caption=Descriptive Caption Text,
    basicstyle=\ttfamily\footnotesize\bfseries,
    frame=tb
  }
  \begin{lstlisting}
    printf("this should be centered!");
  \end{lstlisting}
\end{center}

Vous n'expliquez pas pourquoi vous voulez que la délimitation des lignes 0.6\textwidth long. Si que vous vouliez définir la largeur de votre inscription à cette valeur, votre l'approche ne fait pas ce que vous voulez. Utilisez quelque chose comme un minipage pour définir une largeur pour l'ensemble de la liste.

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}
7
répondu Benjamin Bannier 2010-06-24 00:51:41

en fait, ce qui a fonctionné pour moi c'est l'inverse: mettre le mini-page dans l'environnement central.

4
répondu Akim Demaille 2011-01-22 15:33:20