我这里遇到了一个大问题。我必须在文档中插入一个大表格。无论我如何努力让它变小,我的老板都不想改变它。他用 word 制作的,我必须把它插入到 latex 文档中。我尝试使用 ltxtable,但它会产生 116 个错误……是的,116 个……
这是我用于该表的代码:
\begin{longtable}{|X|X|X|X|X|}%
\tiny
\hline
Problèmes & Exigences de conception de l'ATL & Principes de conception de l'ATL & \multicolumn{2}{|c|}{Approche logicielle d'implantation}\\
\hline
Complexité & Masquer aux développeurs d'applications la connaissance et la complexité du choix des solutions protocolaires à invoquer.\newline Masquer aux développeurs d'applications la complexité d'utilisation des solutions protocolaires qui seront invoquées. & Abstraction Sémantique & \multirow{4}{\hsize}{Approche orientée services} & Approche basée sémantique\\
\cline{1-3} \cline{5-5}
Dépendance & Permettre une adaptation de la solution protocolaire retenue en réponse à une évolution du contexte machine/réseau, ou bien à une modification de l’expression du service requis par l’application, c’est à dire :\newline
\begin{itemize}
\item être doté d’une capacité d’autonomie dans la prise de connaissance du contexte et de ces évolutions, en plus de celle liée au choix et à la mise en \oe uvre des solutions protocolaires à invoquer;
\item être doté d’une capacité d’autonomie dans le choix et la mise en œuvre des adaptations de la solution protocolaire en cours;
\item offrir aux développeurs d’applications la possibilité de modifier les caractéristiques du service requis durant le temps d’exécution de l’application.
\end{itemize} & Abstraction Autonomie & & Approche autonomique\\
\cline{1-3} \cline{5-5}
Manque d'extensibilité & Permettre son intégration au sein de son pool de services et de solutions protocolaires, en vue de la mise à disposition du service correspondant et de l’utilisation de la solution protocolaire. & Extensibilité & & \multirow{2}{\hsize}{Approche basée composants}\\
\cline{1-3}
Manque de configurabilité & Gérer la nature composable des différents protocoles et mécanismes protocolaires, chaque protocole pouvant se voir adjoindre des mécanismes externes. & Configurabilité & & \\
\hline
\caption{Synthèse des problèmes, exigences, principes et approches de conception de l'ATL}
\label{syntheseapproches}
\end{longtable}
我使用以下命令将其插入主文档中:
\LTXtable{\textwidth}{Tables/synthese_approches}
我知道这很糟糕。有很多文本非常宽泛,不幸的是我没有太多时间。可以在那里找到使用 Word 制作的“模型”的 pdf:
http://homepages.laas.fr/gdugue/bigTable.pdf
我知道这个问题可能会让你们中的一些人感到不安,或者至少让你们感到困惑,为此我提前道歉。非常感谢你的帮助,我已经尝试解决这个问题好几天了,但没有一丝希望。
答案1
这是一个使用makecell
、enumitem
、ltablex
结合 tabularx 和 longtable 的解决方案,最后caption
是 和babel
(因为它是用法语编写的)。我不需要multirow
,因为 makecell 有自己的multirowcell
命令,语法更简单,并且可以\\
在单元格内使用。请注意, \multirowcell 使用的行数是这些行的总行数——但由于各种原因,并不完全是,因此如果您更改行数,则必须调整确切的值。
\documentclass[a4paper, 11pt, french]{article}
\usepackage[utf8]{inputenc}
\usepackage{cabin}
\usepackage{ragged2e}
\usepackage[margin = 2cm]{geometry}
\usepackage{babel}
\def\frenchtablename{Tableau}
\usepackage{enumitem}
\usepackage{array}
\usepackage{caption}
\captionsetup{font = {sf, small}, labelfont = sc}
\usepackage{ltablex}
\newcolumntype{S}{>{\hsize=.75\hsize}X}
\newcolumntype{L}{>{\hsize=2\hsize}X}
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}
\renewcommand{\tabularxcolumn}[1]{>{\small\sffamily}m{#1}}
\begin{document}
{\sffamily\small\renewcommand\arraystretch{1.33}
\begin{tabularx}{\linewidth}{|>{\centering}S|L|>{\centering}S|>{\centering\arraybackslash}S|>{\centering\arraybackslash}S|}%{|S|L|>{\centering}M|>{\centering}S|>{\centering}M|}%
\hline
\thead{Problèmes} & \thead{Exigences de conception de l'ATL} & \thead{Principes \\ de conception \\ de l'ATL} &\multicolumn{2}{|c|}{\thead{Approche logicielle \\ d'implantation}}\\
\hline
Complexité & Masquer aux développeurs d'applications la connaissance et la complexité du choix des solutions protocolaires à invoquer.\newline Masquer aux développeurs d'applications la complexité d'utilisation des solutions protocolaires qui seront invoquées. & Abstraction Sémantique & \multirowcell{22}{Approche\\ orientée\\ services} & Approche basée sémantique\\
\cline{1-3} \cline{5-5}
\multirowcell{11}{Dépendance} & Permettre une adaptation de la solution protocolaire retenue en réponse à une évolution du contexte machine/réseau, ou bien à une modification de l’expression du service requis par l’application, c’est-à-dire :%\newline
& \multirowcell{11}{Abstraction\\ Autonomie} & & \multirowcell{11}{Approche\\ autonomique} \\[-3.2ex]
& \multicolumn{1}{m{0.348\linewidth}|}{%
\begin{itemize}[wide, label =$ \bullet $,leftmargin =1em, nosep]
\item être doté d’une capacité d’autonomie dans la prise de connaissance du contexte et de ces évolutions, en plus de celle liée au choix et à la mise en \oe uvre des solutions protocolaires à invoquer;
\item être doté d’une capacité d’autonomie dans le choix et la mise en œuvre des adaptations de la solution protocolaire en cours;
\item offrir aux développeurs d’applications la possibilité de modifier les caractéristiques du service requis durant le temps d’exécution de l’application.\vskip-2ex
\end{itemize}} & & &
\\
\cline{1-3} \cline{5-5}
\makecell{Manque\\ d'extensibilité} & Permettre son intégration au sein de son pool de services et de solutions protocolaires, en vue de la mise à disposition du service correspondant et de l’utilisation de la solution protocolaire. & Extensibilité & & \multirowcell{5}{Approche\\ basée\\ composants}\\
\cline{1-3}
Manque de configurabilité & Gérer la nature composable des différents protocoles et mécanismes protocolaires, chaque protocole pouvant se voir adjoindre des mécanismes externes. & Configurabilité & & \\
\hline
\caption{Synthèse des problèmes, exigences, principes et approches de conception de l'ATL}
\label{syntheseapproches}
\end{tabularx}}
\end{document}