สร้างตารางเซลล์ที่ผสานโดยมีหลายบรรทัด

Aug 15 2020

ฉันต้องการสร้าง "การ์ดคำอธิบาย" แบบนี้ในลาเท็กซ์พร้อมตาราง แต่ฉันยังไม่พบวิธีที่ดีในการสร้างมัน

แนวคิดพื้นฐานคือการสร้างส่วนหัวคอลัมน์ตัวแปร (มากกว่า 2 ในกรณีที่จำเป็น) โดยมีกล่องข้อความขนาดใหญ่ด้านล่างซึ่งรองรับรูปภาพได้ดี

วิธีที่ดีในการทำเช่นนี้คืออะไร?

คำตอบ

3 leandriis Aug 15 2020 at 16:55

สิ่งต่อไปนี้อาจช่วยให้คุณเริ่มต้นได้ รายละเอียดเช่นระยะห่างและการจัดตำแหน่งสามารถปรับเปลี่ยนได้ตามความต้องการของคุณ

\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

นี่คือโซลูชันที่สร้างมาโครที่เรียกว่า\mergedtabซึ่งรับอาร์กิวเมนต์สามตัว

\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}