3

I have used a table in my document. this is a part of the code :

\documentclass[a4paper]{article}
 \usepackage{tabu}
\usepackage{longtable}
\usepackage[table]{xcolor}
\usepackage{ltablex} 
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{pdflscape}
\usepackage{graphicx}

\usepackage{array, tabularx, multirow}%
\newcolumntype{Y}{>{\hsize=.34\hsize\arraybackslash}X}
 \newcolumntype{Z}{>{\hsize=.66\hsize\arraybackslash}X}

\begin{document}


 \begin{center}
\captionof{table}{Tableau récapitulatif des fonctionnalités de l’application}
\footnotesize  % Switch from 12pt to 11pt; otherwise, table won't fit
\setlength\LTleft{-0pt}            % default: \fill
\setlength\LTright{-0pt}  
\begin{tabularx}{1\textwidth}{|Y|Y|Z|Z|}
\hline
\multicolumn{2}{|l|}{\bfseries Fonction} & \bfseries Description & \bfseries   Degré  \\
 \hline
  \multirow{8}{\hsize}[1.2ex]{\centering 
 ETL d’intégration des données
 } & Collecter les fichiers & Les fichiers générés par les serveurs doivent être collectés pour pouvoir les modéliser et exploiter les données qu’ils contiennent. & \multirow{8}{\hsize}[1.2ex] {\centering Primordial}
 \\
 \cline{2-3}
                                                               & Modéliser les fichiers. & En ayant des formes différentes de fichiers de statistique on doit avoir une phase de modélisation pour dégager les données utiles et rendre tous les fichiers de même format. &                                                                                       \\
 \cline{2-3}
                                                              & Insérer dans   la base des données. & Après la modélisation des fichiers on aura des fichiers contenant des données qui sont prêts à être injectés dans la base des données.   &                                                                                        \\
\cline{2-3}
                                                              & Archiver les fichiers  & Après l’insertion des fichiers dans la base des données, on doit les archiver dans un dossier d’archive qui constitue une solution de back-up.  &                                                                                        \\  \cline{2-3}
                                                              &Faire un  clean-up &Le dossier de collecte des fichiers archivés a une capacité bien déterminée, une fonction de nettoyage a pour rôle de supprimer les fichiers les plus anciennes si la capacité commence à arriver à la capacité maximale.  & \\   \cline{2-3}
                                                              & Planifier la  tâche d’intégration &Les fonctions citées ci-haut doivent être planifiées et répétées automatiquement chaque jour et chaque génération d’un nouveau fichier de statistique. & \\ 
\hline
\multicolumn{2}{|l|}{  Ajouter des utilisateurs et leurs comptes.
 } &   Le module de gestion des utilisateurs n’est accédée que par un  administrateur déjà enregistré et ayant un compte avec un droit d’accès.
L’administrateur est le seul qui a le droit d’ajouter les utilisateurs et leurs comptes associés.
 &Primordial \\
 \hline
 \multicolumn{2}{|l|}{Modifier les utilisateurs et leurs comptes. } &
 Il faut laisser toujours la possibilité à l’administrateur de modifier les  données des utilisateurs et les mettant à jour. & importante \\ 
 \hline
  \multicolumn{2}{|l|}{Activer/Désactiver les comptes des utilisateurs}&
   Un pouvoir de blocage ou de déblocage des utilisateurs est accordé à  l’administrateur. Tout utilisateur bloqué ne peut pas utiliser l’application. Il ne peut l’utiliser de nouveau que si son compte est réactivé par  l’administrateur.
  &Importante \\ 
  \hline
   \multicolumn{2}{|l|}{Supprimer des utilisateurs.}&
   L’administrateur peut décider quel utilisateur et quel compte à supprimer  de la base des données.

 &Primordiale \\
 \hline
 \multicolumn{2}{|l|}{Lister les utilisateurs.}&L’administrateur a la possibilité de lister tous les utilisateurs existant dans la base des données.
Toute action de gestion sur les utilisateurs est possible à travers la liste des utilisateurs.
  & Primordiale \\ 
 \hline
\multicolumn{2}{|l|}{Lister les comptes.}&L’administrateur a la possibilité de lister tous les comptes associés aux utilisateurs existant dans la base des données.
 Les actions de changement de droits d’accès, de modification du compte ou de suppression sont possibles depuis la liste des comptes.

 &Primordiale \\
 \hline 
 \multicolumn{2}{|l|}{Recherche un utilisateur}&L’administrateur peut faire une recherche sur la liste des utilisateurs pour faciliter l’obtention d’un  utilisateur bien particulier. & Optionnel \\
 \hline 
\multicolumn{2}{|l|}{Ajouter un serveur.}&Un administrateur peut ajouter un  serveur à la base de données &Primordial
  \\ 
 \hline
\multicolumn{2}{|l|}{Lister les serveurs} & L’administrateur a la main de lister  tous les serveurs existant dans la base des données.
Les opérations agissant sur les serveurs sont possibles depuis cette liste.
& Important \\
\hline
 \multicolumn{2}{|l|}{ Modifier les données d’un serveur}&Il faut laisser la possibilité à l’administrateur de changer ou de mettre à jour les données relatives à un serveur. & Important \\
  \hline
   \multicolumn{2}{|l|}{Supprimer un serveur} & L’administrateur a la main de supprimer un serveur de la base des données.  & Important \\ 
 \hline
 \multicolumn{2}{|l|}{Rechercher un serveur}& Une fonction de recherche va permettre à l’administrateur d’obtenir rapidement les données relatives à un serveur spécifique. & optionnel \\
  \hline
   \multicolumn{2}{|l|}{Visualiser les tableaux de bords globaux} & Les  tableaux de bords globaux doivent afficher les données qui existent dans la base des données dans un graphe linéaire. Ceci est permis pour les administrateurs ainsi que les superviseurs.

 & Primordial \\
 \hline
  \multicolumn{2}{|l|}{Visualiser des tableaux de bords spécifiques.} & Les utilisateurs peuvent sélectionner des compteurs spécifiques à afficher dans un graphe linéaire pour voir le comportement de chaque interface des serveurs à part avec plus de détails. & Primordial \\ 
  \hline
  \multicolumn{2}{|l|}{Calculer les KPIs  de chaque serveur.}&Chaque tableau de bord doit avoir un référentiel qui indique l’état du serveur par rapport à l’état normal. Et ceci par le calcul et l’affichage du l’indicateur clé de performance & Important \\ 
\hline  



\end{tabularx}
\end{center}
\end{document}

I had the table like this : enter image description here I't's adjusted automatically according to the length of the sentense in the first column.

as you can see, the second column is too small , I want to make it bigger so that it will be adjusted. could someone help me please ?

6
  • See the documentation for tabularx. You can't use \multicolumn over X columns when you fiddle with their sizes, basically. So the \multicolumn over YY is going to cause trouble.
    – cfr
    Jun 10 '16 at 23:49
  • Please make your code compilable by finishing it.
    – cfr
    Jun 10 '16 at 23:52
  • Thanks for your fast reply. I have edited the post..I added all the code , it's compilable
    – pietà
    Jun 11 '16 at 0:03
  • Please test it. It is not compilable. I get a compilation error immediately.
    – cfr
    Jun 11 '16 at 0:21
  • And, as I say, see section 4.3 of tabularx's documentation.
    – cfr
    Jun 11 '16 at 0:27
2

This still complains about bad boxes. To address that, make sure that you use babel to load the correct hyphenation patterns and, perhaps, use microtype.

If you use X-type columns of different widths:

  1. the total width divided by \hsize must equal the number of X columns (e.g. 4 in this case - not 2);
  2. no \multicolumn should span any X-type column.

I would also recommend reading booktabs for guidelines on producing publication-quality tables. In particular, drop the vertical rules and use better spaced rules of appropriate heights. I would recommend further de-cluttering by dropping some of the horizontal rules but I've left them here.

Make sure that headers and footers are repeated on each page of the table and use longtable's \caption* command for the caption.

Here's my result which could surely be further improved:

result

This only uses a single X-type column which seems ample for a simple table like this one.

\documentclass[a4paper]{article}
\usepackage{ltablex}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage{geometry}
\usepackage{array,multirow,booktabs}

\begin{document}
{%
  \footnotesize
  \begin{tabularx}{\textwidth}{llXl}
    \caption*{Tableau récapitulatif des fonctionnalités de l’application}\\
    \toprule
    \bfseries Fonction && \bfseries Description & \bfseries   Degré  \\
    \midrule
    \endhead
    \bottomrule
    \endfoot
    \multirow{8}{.125\linewidth}[1.2ex]{%
      \centering
      ETL d’intégration des données
    } & Collecter les fichiers & Les fichiers générés par les serveurs doivent être collectés pour pouvoir les modéliser et exploiter les données qu’ils contiennent. & \multirow{8}*[1.2ex] {\centering Primordial}
    \\
    \cmidrule(lr){2-3}
    & Modéliser les fichiers. & En ayant des formes différentes de fichiers de statistique on doit avoir une phase de modélisation pour dégager les données utiles et rendre tous les fichiers de même format. &                                                                                       \\
    \cmidrule(lr){2-3}
    & Insérer dans   la base des données. & Après la modélisation des fichiers on aura des fichiers contenant des données qui sont prêts à être injectés dans la base des données.   &                                                                                        \\
    \cmidrule(lr){2-3}
    & Archiver les fichiers  & Après l’insertion des fichiers dans la base des données, on doit les archiver dans un dossier d’archive qui constitue une solution de back-up.  &                                                                                        \\  \cmidrule(lr){2-3}
    &Faire un  clean-up &Le dossier de collecte des fichiers archivés a une capacité bien déterminée, une fonction de nettoyage a pour rôle de supprimer les fichiers les plus anciennes si la capacité commence à arriver à la capacité maximale.  & \\   \cmidrule(lr){2-3}
    & Planifier la  tâche d’intégration &Les fonctions citées ci-haut doivent être planifiées et répétées automatiquement chaque jour et chaque génération d’un nouveau fichier de statistique. & \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{  Ajouter des utilisateurs et leurs comptes.
    } &   Le module de gestion des utilisateurs n’est accédée que par un  administrateur déjà enregistré et ayant un compte avec un droit d’accès.
    L’administrateur est le seul qui a le droit d’ajouter les utilisateurs et leurs comptes associés.
    &Primordial \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Modifier les utilisateurs et leurs comptes. } &
    Il faut laisser toujours la possibilité à l’administrateur de modifier les  données des utilisateurs et les mettant à jour. & importante \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Activer/Désactiver les comptes des utilisateurs}&
    Un pouvoir de blocage ou de déblocage des utilisateurs est accordé à  l’administrateur. Tout utilisateur bloqué ne peut pas utiliser l’application. Il ne peut l’utiliser de nouveau que si son compte est réactivé par  l’administrateur.
    &Importante \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Supprimer des utilisateurs.}&
    L’administrateur peut décider quel utilisateur et quel compte à supprimer  de la base des données.
    &Primordiale \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Lister les utilisateurs.}&L’administrateur a la possibilité de lister tous les utilisateurs existant dans la base des données.
    Toute action de gestion sur les utilisateurs est possible à travers la liste des utilisateurs.
    & Primordiale \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Lister les comptes.}&L’administrateur a la possibilité de lister tous les comptes associés aux utilisateurs existant dans la base des données.
    Les actions de changement de droits d’accès, de modification du compte ou de suppression sont possibles depuis la liste des comptes.
    &Primordiale \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Recherche un utilisateur}&L’administrateur peut faire une recherche sur la liste des utilisateurs pour faciliter l’obtention d’un  utilisateur bien particulier. & Optionnel \\
    \multicolumn{2}{l}{Ajouter un serveur.}&Un administrateur peut ajouter un  serveur à la base de données &Primordial
    \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Lister les serveurs} & L’administrateur a la main de lister  tous les serveurs existant dans la base des données.
    Les opérations agissant sur les serveurs sont possibles depuis cette liste.
    & Important \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{ Modifier les données d’un serveur}&Il faut laisser la possibilité à l’administrateur de changer ou de mettre à jour les données relatives à un serveur. & Important \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Supprimer un serveur} & L’administrateur a la main de supprimer un serveur de la base des données.  & Important \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Rechercher un serveur}& Une fonction de recherche va permettre à l’administrateur d’obtenir rapidement les données relatives à un serveur spécifique. & optionnel \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Visualiser les tableaux de bords globaux} & Les  tableaux de bords globaux doivent afficher les données qui existent dans la base des données dans un graphe linéaire. Ceci est permis pour les administrateurs ainsi que les superviseurs.
    & Primordial \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Visualiser des tableaux de bords spécifiques.} & Les utilisateurs peuvent sélectionner des compteurs spécifiques à afficher dans un graphe linéaire pour voir le comportement de chaque interface des serveurs à part avec plus de détails. & Primordial \\
    \cmidrule(lr){1-4}
    \multicolumn{2}{l}{Calculer les KPIs  de chaque serveur.}&Chaque tableau de bord doit avoir un référentiel qui indique l’état du serveur par rapport à l’état normal. Et ceci par le calcul et l’affichage du l’indicateur clé de performance & Important \\
\end{tabularx}
}
\end{document}
5
  • thanks a lot !! But just one thing, I want degree to be in the last column where primordiale and description in the place of degree how can I change it ?
    – pietà
    Jun 11 '16 at 10:42
  • Just change \bfseries Fonction & \bfseries Description & \bfseries Degré &\\ to \bfseries Fonction && \bfseries Description & \bfseries Degré \\ .
    – cfr
    Jun 11 '16 at 12:15
  • @pietà Please see edit. I think I confused the columns when editing before, but, as I suggest above, the fix is just a matter of moving a single & into the correct position.
    – cfr
    Jun 11 '16 at 12:21
  • is it possible to add a vertical line in front of ETL d’intégration des données ? thanks in advance
    – pietà
    Jun 13 '16 at 8:17
  • 1
    You mean |llXl? Or ll|Xl? You can but it is not at all recommended. Take a look at the booktabs manual for details. If you simply must have vertical lines, I'd recommend something like makecell rather than booktabs. That way you can use vertical lines and specify improved spacing. It is less automatic than booktabs but more flexible.
    – cfr
    Jun 13 '16 at 11:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.