array, tabularx, longtable และ tabulary ใน Scissor LaTeX
แพ็กเกจ array และ tabularx รวมถึงแพ็กเกจที่เกี่ยวข้องใช้ได้บางส่วนใน Scissor LaTeX ตาราง tabularx, tabulary, longtable และ xltabular จัดเรียงพิมพ์เหมือน tabular และเซลล์ที่ยาวจะตัดบรรทัดเมื่อตารางจะกว้างเกินบรรทัด ความกว้างคอลัมน์ (p{3cm}, X และความกว้างของตาราง) และโค้ด >{...}/<{...} ถูกละเว้น \newcolumntype ไม่เป็นที่รู้จัก และส่วนหัวของ longtable ไม่ถูกพิมพ์ซ้ำ
แพ็กเกจเหล่านี้ทำอะไร
arrayเพิ่มชนิดคอลัมน์ เช่นm{width}และb{width}โค้ดก่อนและหลังแต่ละเซลล์ด้วย>{...}และ<{...}และ\newcolumntypeสำหรับตัวอักษรคอลัมน์ของคุณเองtabularxมี\begin{tabularx}{\textwidth}{lX}ซึ่งคอลัมน์Xจะยืดออกเพื่อให้ตารางมีความกว้างตามที่กำหนดtabularyทำแบบเดียวกันด้วยคอลัมน์L,C,R,Jที่แบ่งความกว้างกันตามเนื้อหาlongtableทำให้ตารางแบ่งข้ามหน้าได้ พร้อมส่วนหัวที่พิมพ์ซ้ำ (\endhead) ส่วนxltabularรวมlongtableและtabularxเข้าด้วยกัน
สิ่งที่ใช้ได้ที่นี่
| ฟีเจอร์ | ใน Scissor LaTeX | หมายเหตุ |
|---|---|---|
tabularx, tabulary, xltabular, longtable, tabular* | ใช้ได้บางส่วน | จัดเรียงพิมพ์เหมือน tabular อาร์กิวเมนต์ความกว้างรวมถูกละเว้น |
คอลัมน์ X, L, C, R, J | ใช้ได้บางส่วน | X และ L ชิดซ้าย C อยู่กึ่งกลาง R ชิดขวา |
p{3cm}, m{3cm}, b{3cm} | ใช้ได้บางส่วน | ชิดซ้าย ความกว้างถูกละเว้น |
| ข้อความยาวในเซลล์ | ใช้ได้ | ตัดบรรทัดเมื่อตารางจะกว้างเกินบรรทัด |
>{\bfseries}l, r<{\%} | ถูกละไว้ | โค้ดก่อนและหลังเซลล์ถูกละเว้น |
\newcolumntype{C}{...} | ไม่รองรับ | ถูกข้ามพร้อมหมายเหตุในแท็บปัญหา และนิยามของมันถูกพิมพ์ออกมาเป็นข้อความ ให้เขียนชนิดคอลัมน์ออกมาเต็ม ๆ แทน |
\endhead, \endfirsthead, \endfoot, \endlastfoot | ถูกละไว้ | ตารางยาวแบ่งข้ามหน้าได้ แต่ส่วนหัวไม่ถูกพิมพ์ซ้ำ |
\tabularnewline | ใช้ได้ | เหมือน \\ |
\arraybackslash | ไม่รองรับ | ถูกข้ามพร้อมหมายเหตุในแท็บปัญหา นอกจากนั้นไม่มีผลเสีย |
ตัวอย่าง
ตาราง tabularx ที่มีคอลัมน์ยืดได้ ข้อความยาวจะตัดบรรทัดที่ขอบของเนื้อความ เหมือนในการติดตั้ง TeX:
tabularx ที่มีคอลัมน์ X
\begin{tabularx}{\textwidth}{lX}
\hline
Name & Notes \\
\hline
Erika Mustermann & Leads the project, writes the reports and checks
every one of the 44 measurements twice before they are published. \\
John Doe & Builds the test setup. \\
\hline
\end{tabularx}longtable ที่มีแถวส่วนหัว ตารางจัดเรียงพิมพ์ได้ แต่ในเอกสารยาว ส่วนหัวจะไม่ถูกพิมพ์ซ้ำในหน้าถัดไป:
longtable พร้อม \endhead
\begin{longtable}{lr}
\hline
Item & Count \\
\hline
\endhead
Pencils & 44 \\
Erasers & 12 \\
Rulers & 7 \\
\hline
\end{longtable}โค้ดใน >{...} ถูกละเว้น คอลัมน์นี้จึงไม่เป็นตัวหนาและเครื่องหมายเปอร์เซ็นต์หายไป:
>{...} และ <{...} ถูกละเว้น
\begin{tabular}{>{\bfseries}l r<{\,\%}}
Growth & 44 \\
Share & 12 \\
\end{tabular}ให้เขียนการจัดรูปแบบไว้ในเซลล์แทน ซึ่งใช้ได้ทั้งที่นี่และในการติดตั้ง TeX:
การจัดรูปแบบที่เขียนไว้ในเซลล์
\begin{tabular}{lr}
\textbf{Growth} & 44\,\% \\
\textbf{Share} & 12\,\% \\
\end{tabular}ความเข้ากันได้
- จากการติดตั้ง TeX มาที่นี่: ตารางจัดเรียงพิมพ์ได้และคงการจัดแนวไว้ แต่ไม่คงความกว้างคอลัมน์ ให้มองหาตัวอักษรคอลัมน์ที่กำหนดเองจาก
\newcolumntype - จากที่นี่ไปยังการติดตั้ง TeX: เอกสารคอมไพล์ที่นั่นได้โดยไม่ต้องแก้ไข และความกว้างจะถูกนำมาใช้ที่นั่น
คู่มือฉบับเต็มอยู่บน CTAN: ctan.org/pkg/array ctan.org/pkg/tabularx ctan.org/pkg/tabulary ctan.org/pkg/longtable และ ctan.org/pkg/xltabular สำหรับตารางโดยทั่วไป ดู ตารางใน LaTeX
ดูเพิ่มเติม ตาราง multirow booktabs และ เครื่องมือสร้างตาราง LaTeX
คำถามและคำตอบ
ทำไมคอลัมน์ p{3cm} ของฉันจึงไม่กว้าง 3 cm
ยังไม่มีการนำความกว้างคอลัมน์มาใช้ ข้อความยาวยังคงตัดบรรทัดที่ขอบของเนื้อความ ตารางจึงยังอยู่ภายในหน้า
longtable แบ่งข้ามหน้าได้หรือไม่
ได้ ตารางยาวจะต่อในหน้าถัดไป แต่แถวที่ทำเครื่องหมายด้วย \endhead จะไม่ถูกพิมพ์ซ้ำที่นั่น
ทุกตัวอย่างในหน้านี้จัดหน้าโดย Scissor LaTeX ขณะสร้างเว็บไซต์ อัปเดตล่าสุด 2026-11-07