Tạo một bảng ô đã hợp nhất với nhiều dòng

Aug 15 2020

Tôi muốn tạo "thẻ mô tả" như thế này trong latex với các bảng. Nhưng tôi chưa tìm ra cách tốt để tạo ra chúng.

Ý tưởng cơ bản là tạo một tiêu đề cột có thể thay đổi (nhiều hơn 2, trong trường hợp cần thiết) với một hộp văn bản lớn bên dưới, hỗ trợ lý tưởng cho hình ảnh.

Cách tốt để làm điều này là gì?

Trả lời

3 leandriis Aug 15 2020 at 16:55

Có lẽ những điều sau đây có thể giúp bạn bắt đầu. Tất nhiên có thể điều chỉnh các chi tiết như khoảng cách và căn chỉnh để phù hợp với nhu cầu của bạn.

\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum} % for dummy text
\begin{document}
\noindent
\begin{tabular}{*{2}{|p{\dimexpr 0.5\textwidth-2\tabcolsep}}|}
\hline
\bfseries text & \bfseries other text\\
\hline
\multicolumn{2}{|p{\dimexpr \textwidth-2\tabcolsep}|}{\lipsum[1]}\\
\hline
\end{tabular}

\noindent
\begin{tabular}{*{2}{|p{\dimexpr 0.5\textwidth-2\tabcolsep}}|}
\hline
\bfseries text & \bfseries other text\\
\hline
\multicolumn{2}{|p{\dimexpr \textwidth-2\tabcolsep}|}{\includegraphics[width=2cm]{example-image}

\lipsum[1]}
\\
\hline
\end{tabular}

\noindent
\begin{tabular}{*{4}{|p{\dimexpr 0.25\textwidth-2\tabcolsep}}|}
\hline
\bfseries text & \bfseries other text &\bfseries text & \bfseries other text\\
\hline
\multicolumn{4}{|p{\dimexpr \textwidth-2\tabcolsep}|}{\lipsum[1]}\\
\hline
\end{tabular}
\end{document}
4 Zarko Aug 15 2020 at 16:49


\documentclass{article}
\usepackage{makecell,tabularx}
\setcellgapes{3pt}
\makegapedcells
\setlength\parindent{0pt}

\usepackage{lipsum}

\begin{document}
\begin{tabularx}{\linewidth}{|X|X|}
    \hline
text text   &   text text text  \\
    \hline
\multicolumn{2}{|>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth}X|}
            {\lipsum[1]}        \\
    \hline
\end{tabularx}
\end{document}
3 Mico Aug 15 2020 at 16:56

Đây là một giải pháp tạo một macro được gọi là \mergedtabcó ba đối số.

\documentclass{article}
\usepackage{lipsum}
\usepackage{tabularx}
\newcolumntype{Y}{>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth\relax}X}

\newcommand{\mergedtab}[3]{%
   \par\bigskip\noindent
   \begingroup
   \setlength\extrarowheight{2pt}
   \frenchspacing
   \begin{tabularx}{\textwidth}{|X|X|}
   \hline
   #1 & #2 \\
   \hline
   \multicolumn{2}{|Y|}{#3} \\
   \hline
   \end{tabularx}\endgroup\par\bigskip}
  
\begin{document}
\mergedtab{Donaudampf\dots}{/naval/rivers/donau/\dots}{\lipsum[2]}
\end{document}