多列文本无法正确显示

多列文本无法正确显示

我有一些用 Latex 创建的表格,但格式有些问题。在多列行中,我有一些文本行,但它以居中格式显示文本,并且文本溢出到页面右侧。

该表的代码如下:

\begin{table}[H]
    \begin{center}
        \begin{tabular}{ | l | l | }
            \hline
            \multicolumn{2}{|l|}{UC16. Eliminar taxonomía} \\
            \hline
            \textbf{Objetivo} & Eliminar taxonomía y guardar cambio en la base de datos \\
            \hline
            \textbf{Actor} & Usuario super-editor, administrador \\
            \hline
            \multicolumn{2}{|l|}{Precondiciones: Estar logueado con rol super-editor o administrador} \\
            \hline
            \multicolumn{2}{|l|}{\shortstack{
                    Procedimiento:\\
                    1. Usuario: visita xxxxxxx\\
                    2. Sistema: procesa la petición solicitada. \\
                    3. Usuario: accede a la administración del sitio -> taxonomías. \\
                    4. Usuario: clica en el botón eliminar de la taxonomía deseada dentro de un listado.
                    6. Sistema: cambia el campo eliminado de la taxonomía a True en la base de datos.
                    7. Sistema: notifica al usuario el estado de la acción (ok/error).
                }   
            }  \\
            \hline
            \multicolumn{2}{|l|}{\shortstack{Extensiones: -}} \\
            \hline
        \end{tabular}
    \end{center}
\end{table}

结果如下(灰色部分是页面的限制):

在此处输入图片描述

答案1

我不会使用\shortstack:正如您所见,它不能保证统一的行距。

这是一个更复杂的设置,从另一方面来说可以避免表格溢出边距。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\usepackage{tabularx}

\begin{document}

\begin{table}
\centering

\begin{tabular}{ | l | l | }
\hline
\multicolumn{2}{|l|}{UC16. Eliminar taxonomía} \\
\hline
\textbf{Objetivo} & Eliminar taxonomía y guardar cambio en la base de datos \\
\hline
\textbf{Actor} & Usuario super-editor, administrador \\
\hline
\multicolumn{2}{|l|}{Precondiciones: Estar logueado con rol super-editor o administrador} \\
\hline
\multicolumn{2}{|l|}{%
  \begin{tabularx}{\dimexpr\textwidth-2\tabcolsep-2\arrayrulewidth}{
    @{} r @{ } >{\raggedright\arraybackslash}X @{}
  }
  \multicolumn{2}{@{}l@{}}{Procedimiento:} \\
  1. & Usuario: visita xxxxxxx\\
  2. & Sistema: procesa la petición solicitada. \\
  3. & Usuario: accede a la administración del sitio $\to$ taxonomías. \\
  4. & Usuario: clica en el botón eliminar de la taxonomía deseada dentro de un listado. \\
  6. & Sistema: cambia el campo eliminado de la taxonomía a True en la base de datos. \\
  7. & Sistema: notifica al usuario el estado de la acción (ok/error). \\
  \end{tabularx}%
}   
\\
\hline
\multicolumn{2}{|l|}{%
  \begin{tabularx}{\dimexpr\textwidth-2\tabcolsep-2\arrayrulewidth}{
    @{} r @{ } >{\raggedright\arraybackslash}X @{}
  }
  \multicolumn{2}{@{}l@{}}{Extensiones: -- }
  \end{tabularx}%
} \\
\hline
\end{tabular}

\end{table}

\end{document}

在大单元格中我使用的tabularx宽度使得表格与文本块一样宽。

在此处输入图片描述

没有垂直规则的不同实现:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\usepackage{tabularx,booktabs}

\begin{document}

\begin{table}
\centering

\begin{tabular}{ @{} p{\textwidth} @{} }
\toprule
UC16. Eliminar taxonomía \\
\midrule
\begin{tabularx}{\textwidth}{@{}lX@{}}
\textbf{Objetivo} & Eliminar taxonomía y guardar cambio en la base de datos \\
\textbf{Actor} & Usuario super-editor, administrador \\
\end{tabularx} \\
\midrule
Precondiciones: Estar logueado con rol super-editor o administrador \\
\midrule
Procedimiento: \\
\begin{tabularx}{\textwidth}{ @{} r @{ } >{\raggedright\arraybackslash}X @{} }
  1. & Usuario: visita xxxxxxx\\
  2. & Sistema: procesa la petición solicitada. \\
  3. & Usuario: accede a la administración del sitio $\to$ taxonomías. \\
  4. & Usuario: clica en el botón eliminar de la taxonomía deseada dentro de un listado. \\
  6. & Sistema: cambia el campo eliminado de la taxonomía a True en la base de datos. \\
  7. & Sistema: notifica al usuario el estado de la acción (ok/error). \\
\end{tabularx} \\
\midrule
Extensiones: -- \\
\bottomrule
\end{tabular}

\end{table}

\end{document}

在此处输入图片描述

答案2

您忘记了第 5 项和第 6 项的换行符\shortstack,以及使堆栈左对齐的可选参数(我猜您不希望项目居中)。我用 为单元格添加了一些垂直填充makecell

无关:不要center在表格中使用该环境,因为它会增加不必要的垂直间距。请改用 \centering`。

        \documentclass{article}
        \usepackage[showframe]{geometry} 
        \usepackage{makecell, float}

        \begin{document}

        \begin{table}[H]
        \centering\setcellgapes{4pt}\makegapedcells
            \begin{tabular}{ | l | l | }
                \hline
                \multicolumn{2}{|l|}{UC16. Eliminar taxonomía} \\
                \hline
                \textbf{Objetivo} & Eliminar taxonomía y guardar cambio en la base de datos \\
                \hline
                \textbf{Actor} & Usuario super-editor, administrador \\
                \hline
                \multicolumn{2}{|l|}{Precondiciones: Estar logueado con rol super-editor o administrador} \\
                \hline
                \multicolumn{2}{|l|}{\shortstack[l]{
                        Procedimiento:\\
                        1. Usuario: visita Sidbrint\\
                        2. Sistema: procesa la petición solicitada. \\
                        3. Usuario: accede a la administración del sitio -> taxonomías. \\
                        4. Usuario: clica en el botón eliminar de la taxonomía deseada dentro de un listado. \\
                        6. Sistema: cambia el campo eliminado de la taxonomía a True en la base de datos.\\
                        7. Sistema: notifica al usuario el estado de la acción (ok/error).
                    }
                } \\
                \hline
                \multicolumn{2}{|l|}{\shortstack{Extensiones: -}} \\
                \hline
            \end{tabular}
     \end{table}

        \end{document} 

在此处输入图片描述

编辑

如果希望所有表格具有相同的宽度,则可以加载 tabularx并使用X列类型:

\begin{table}[H]
 \centering\setcellgapes{4pt}\makegapedcells
 \begin{tabularx}{\linewidth}{ | l |X| }
 \hline
 \multicolumn{2}{|l|}{UC16. Eliminar taxonomía} \\
 \hline
 \textbf{Objetivo} & Eliminar taxonomía y guardar cambio en la base de datos \\
 \hline
 \textbf{Actor} & Usuario super-editor, administrador \\
 \hline
 \multicolumn{2}{|l|}{Precondiciones: Estar logueado con rol super-editor o administrador} \\
 \hline
 \multicolumn{2}{|l|}{\shortstack[l]{
 Procedimiento:\\
 1. Usuario: visita Sidbrint\\
 2. Sistema: procesa la petición solicitada. \\
 3. Usuario: accede a la administración del sitio -> taxonomías. \\
 4. Usuario: clica en el botón eliminar de la taxonomía deseada dentro de un listado. \\
 6. Sistema: cambia el campo eliminado de la taxonomía a True en la base de datos.\\
 7. Sistema: notifica al usuario el estado de la acción (ok/error).
 }
 } \\
 \hline
 \multicolumn{2}{|l|}{\shortstack{Extensiones: -}} \\
 \hline
 \end{tabularx}
 \end{table}

在此处输入图片描述

相关内容