Page 1 sur 1

[résolu] longtable Alignement gauche et enumerate

MessagePosté: Samedi 02 Novembre 2013, 14:35
par GRSG
Bonjour,
J'utilise l'environnement longtable à l'intérieur d'un \item de l'environnement enumerate. Je souhaiterais que mon tableau position [l] s'aligne avec la numérotation de l'item or il s'aligne automatiquement à gauche de la page (au lieu de s'aligner sur la numérotation).
Je vous transmets un exemple de code afin que la situation soit plus claire :
Code: Tout sélectionner
\documentclass[11pt, a4paper]{article}
\usepackage{longtable}
\parindent=0pt
\begin{document}
Un peu de texte
\begin{enumerate}
\item
Question 1
\begin{enumerate}
\item
Question a
\item
Ma longue table
\begin{longtable}[l]{l}
positionnement
\end{longtable}
\end{enumerate}
\end{enumerate}
\end{document}

Je peux bien sûr corriger à la main le positionnement de la table en utilisant \hspace{} mais j'aimerais avoir une instruction automatique.
Merci pour vos réponses.
Gabriel

Re: longtable Alignement gauche et enumerate

MessagePosté: Dimanche 10 Novembre 2013, 15:54
par GRSG
Bonjour,
Je suis finalement arrivé à une solution... mais je pense qu'il y a mieux; je n'ai pas compris le rôle de LTleft de longtable. Pour ma proposition de solution voir le code ci-dessous
Code: Tout sélectionner
\documentclass[11pt, a4paper]{article}
\usepackage{longtable}
\parindent=0pt
\newlength{\postable}
\begin{document}
Un peu de texte
\begin{enumerate}
\item
Question 1
\begin{enumerate}
\item
Question a
\item
Ma longue table
\postable=\textwidth
\addtolength{\postable}{-\linewidth}
\begin{longtable}[l]{@{\hspace{\postable}}|l|}
positionnement de la longue table\\Ici
\end{longtable}
\end{enumerate}
\end{enumerate}
\end{document}

Gabriel

Re: longtable Alignement gauche et enumerate

MessagePosté: Dimanche 10 Novembre 2013, 16:46
par pg
Il est possible d'accéder à la marge gauche avec \@totalleftmargin. Du coup, en modifiant {longtable} pour qu'au début de chaque environnement \LTleft soit mis à la valeur de \@totalleftmargin (cela se fait grâce à \preto du package etoolbox), on peut obtenir automatiquement des {longtable} décalées de cette marge :

Code: Tout sélectionner
\documentclass{article}

\usepackage{longtable}

\usepackage{etoolbox}
\makeatletter
\preto{\longtable}{\setlength{\LTleft}{\@totalleftmargin}}
\makeatother

\begin{document}

Un peu de texte
\begin{enumerate}
    \item Question 1
    \begin{longtable}{|l|}
        positionnement de la longue table\\Ici
    \end{longtable}
    \begin{enumerate}
        \item Question a
        \item Ma longue table
        \begin{longtable}{|l|}
            positionnement de la longue table\\Ici
        \end{longtable}
    \end{enumerate}
\end{enumerate}

\begin{longtable}{|l|}
    positionnement de la longue table\\Ici
\end{longtable}

\end{document}

Re: longtable Alignement gauche et enumerate

MessagePosté: Lundi 11 Novembre 2013, 12:07
par GRSG
OK. Merci
Le paramètre LTleft est-il un paramètre qui permet de décaler par la gauche le tableau ou je n'ai rien compris à ce paramètre?
Gabriel

Re: longtable Alignement gauche et enumerate

MessagePosté: Lundi 11 Novembre 2013, 12:19
par pg
Oui, il contrôle la marge gauche, mais ne marche pas si on utilise le paramètre optionnel [l].