LaTeX之表格中強制換行
如圖所示,表格第三列中每行文字太長,需要強制換行,該如何實現呢?
這裡介紹兩種方法。
第一種,要點在於第一行的命令,和在需要換行的那一欄中使用\tabincell{c}{ }命令,並在需要換行的文字後跟上\\
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#[email protected]{}}#2\end{tabular}}
\begin{table}[!hpb]
\caption{Verilog HDL語言能力總結}
\label{verilog}
\centering
\begin{tabular}
{@{}
%\multicolumn{2}{c}{Item} \\ \cmidrule(r){1-2}
\hei{描述級別} & \hei{抽象級別} & \hei{功能描述} & \hei{物理模型} \\ \midrule
& \song{系統級} & \tabincell{c}{用語言提供的高階結構能夠實現\\所設計模組外部效能的模型} &
\tabincell{c}{晶片、電路板和物理\\劃分的子模組}\\ \cmidrule{2-4}
行為級& 演算法級 & \tabincell{c}{用語言提供的高階功能\\能夠實現演算法執行的模型} &
部件之間的物理連線,電路板\\ \cmidrule{2-4}
& RTL級 & \tabincell{c}{描述資料如何在暫存器之間流動和\\如何處理、控制這些資料流動的模型} &
晶片、巨集單元\\ \midrule
邏輯級 & 門級 & 描述邏輯閘與邏輯閘之間連線的模型 & 標準單元布圖\\ \midrule
電路級 & 開關級 & \tabincell{c}{描述器件中三極體和儲存節點\\以及他們之間連線的模型} & 電晶體布圖 \\ \bottomrule
\end{tabular}
\end{table}
第一種方法的排版效果如下圖所示:
第二種,這種方法主要是通過第6行的命令來限制每一列的寬度,這樣當文字長度超過限制寬度的時候,便會自動換行,換行後,是左對齊的。個人覺得這種方法比上面的方法稍微簡單些。
\begin{table}[hfpb]
\label{verilog}
\caption{Verilog HDL語言能力總結}
\hspace{0.5cm}
\centering
\begin{tabular} {p{40pt}p{50pt}p{170pt}p{130pt}}\toprule
\hei{描述級別} & \hei{抽象級別} & \hei{功能描述} & \hei{物理模型} \\ \midrule
& \song{系統級} & 用語言提供的高階結構能夠實現所設計模組外部效能的模型 &
晶片、電路板和物理劃分的子模組\\ \cmidrule{2-4}
行為級& 演算法級 & 用語言提供的高階功能能夠實現演算法執行的模型 &
部件之間的物理連線,電路板\\ \cmidrule{2-4}
& RTL級 & 描述資料如何在暫存器之間流動和如何處理、控制這些資料流動的模型 &
晶片、巨集單元\\ \midrule
邏輯級 & 門級 & 描述邏輯閘與邏輯閘之間連線的模型 & 標準單元布圖\\ \midrule
電路級 & 開關級 & 描述器件中三極體和儲存節點以及他們之間連線的模型 & 電晶體布圖 \\ \bottomrule
\end{tabular}
\end{table}
第二種方法的排版效果如下圖所示: