如何建立包含長文本的交通表

如何建立包含長文本的交通表

誰能幫我改進這個運輸表,使其適合其中的句子和表格的大小?

在此輸入影像描述

應該是這樣的:

所需表格形式

這是運輸表的乳膠編碼。參考。先感謝您。

\documentclass{article}

\usepackage{array}
\usepackage{multirow}
\usepackage{multicol}

\usepackage{rotating}
\usepackage{tabularx}
\newcommand{\STAB}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}

\newcolumntype{C}{@{}c@{}}
\newcommand{\bottombox}[1]{\makebox[1em][r]{#1}\hspace*{\tabcolsep}\hspace*{1em}}%
\newcommand{\innerbox}[2]{%
    \begin{tabular}[b]{c|c}
        \rule{1em}{0pt}\rule[-1ex]{0pt}{1ex} & \makebox[1em]{#2} \\\cline{2-2}
        \multicolumn{2}{r}{{#1}\hspace*{1\tabcolsep}\hspace*{1em}\rule[-1ex]{0pt}{1ex}}
\end{tabular}}
\renewcommand{\arraystretch}{1}

\begin{document}
    \begin{table} [h]
        \centering
        \resizebox{\columnwidth}{!}
        {\begin{tabular}{|c|c|C|C|C|c|}
                \hline
                \multicolumn{2}{|c}{\multirow{2}{*}{From $ \backslash $ To}} & \multicolumn{3}{|c|}{Destinations} & \multirow{2}{*}{Supply} \\ \cline{3-5}
                \multicolumn{2}{|c|}{} & Sales Outlet H & Sales Outlet I & Sales Outlet J & \\ \hline
                \multirow{3}{*}{\STAB{\rotatebox[origin=c]{90}{Sources}}} & Warehouse A & \innerbox{}{\$(6,8,10,12)} & \innerbox{}{\$(5,7,9,11)} & \innerbox{}{\$(2,4,6,8)} & (15,20,30,35) \\ \cline{2-6}
                & Warehouse B & \innerbox{}{\$(3,5,7,9)} & \innerbox{}{\$(5,7,9,11)} & \innerbox{}{\$(1,3,5,7)} & (25,30,40,45) \\ \cline{2-6}
                & Warehouse C & \innerbox{}{\$(4,6,8,10)} & \innerbox{}{\$(3,5,7,9)} & \innerbox{}{\$(6,8,10,12)} & (30,35,45,50) \\ \hline
                \multicolumn{2}{|c|}{Demand} & (15,25,35,45) & (10,20,30,40) & (30,40,50,60) & \\ \hline
        \end{tabular}}
    \end{table}
\end{document}

答案1

我想您希望所有內盒具有相同的寬度,如圖所示。然而,這在 LaTeX 中很難(儘管並非不可能)做到。這將是兩次運行。所以我選擇了簡單的方法。我\innerboxwidth對此有一個長度。您必須將其初始化為最寬條目的寬度,正如我在解決方案中所做的那樣。

順便說一句,我將\multirowfor更改Sources為 5,因為這樣可以更好地居中。

\documentclass{article}

\usepackage{array}
\usepackage{multirow}
\usepackage{multicol}

\usepackage{rotating}
\usepackage{tabularx}
\usepackage{array}
\newcommand{\STAB}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}

\newcolumntype{C}{@{}c@{}}
\newcommand{\bottombox}[1]{\makebox[1em][r]{#1}\hspace*{\tabcolsep}\hspace*{1em}}%
\newlength{\innerboxwidth}
\settowidth{\innerboxwidth}{\$(6,8,10,12)}% widest entry
\newcommand{\innerbox}[2]{%
    \begin{tabular}[c]{c|>{\centering\arraybackslash}p{\innerboxwidth}}
        \rule{1em}{0pt} & {#2} \\\cline{2-2}
        \multicolumn{2}{r}{{#1}\hspace*{1\tabcolsep}\hspace*{1em}\rule[-1ex]{0pt}{1ex}}
\end{tabular}}
\renewcommand{\arraystretch}{1}

\begin{document}
    \begin{table} [h]
        \centering
        \resizebox{\columnwidth}{!}
        {\begin{tabular}{|c|c|C|C|C|c|}
                \hline
                \multicolumn{2}{|c}{\multirow{2}{*}{From $ \backslash $ To}} & \multicolumn{3}{|c|}{Destinations} & \multirow{2}{*}{Supply} \\ \cline{3-5}
                \multicolumn{2}{|c|}{} & Sales Outlet H & Sales Outlet I & Sales Outlet J & \\ \hline
                \multirow{5}{*}{\STAB{\rotatebox[origin=c]{90}{Sources}}} & Warehouse A & \innerbox{}{\$(6,8,10,12)} & \innerbox{}{\$(5,7,9,11)} & \innerbox{}{\$(2,4,6,8)} & (15,20,30,35) \\ \cline{2-6}
                & Warehouse B & \innerbox{}{\$(3,5,7,9)} & \innerbox{}{\$(5,7,9,11)} & \innerbox{}{\$(1,3,5,7)} & (25,30,40,45) \\ \cline{2-6}
                & Warehouse C & \innerbox{}{\$(4,6,8,10)} & \innerbox{}{\$(3,5,7,9)} & \innerbox{}{\$(6,8,10,12)} & (30,35,45,50) \\ \hline
                \multicolumn{2}{|c|}{Demand} & (15,25,35,45) & (10,20,30,40) & (30,40,50,60) & \\ \hline
        \end{tabular}}
    \end{table}
\end{document}

在此輸入影像描述

相關內容