ข้อผิดพลาดเส้นขอบตารางกับ \ toprule \ midrule \ vspace [ปิด]
ฉันมีตารางที่มีสูตรทางคณิตศาสตร์และฉันจำเป็นต้องใช้คำสั่งเพื่อเพิ่มขนาดเซลล์ อย่างไรก็ตามสิ่งนี้ขัดขวางการก่อตัวของเส้นขอบภายนอกสำหรับตาราง ฉันจะทำให้เส้นขอบไร้ที่ติบนตารางเหล่านี้ได้อย่างไร
ตารางที่ 1
\begin{table}[h!]
\centering
\rowcolors{2}{white}{gray!20}
\resizebox{\textwidth}{!}{
\begin{tabular}{|cccc|}
\toprule
\rowcolor{white}
\textbf{AAAA} & \makecell{ \textbf{BBB} \\ \textbf{BBBB}} & \makecell{\textbf{CCCC} \\ \textbf{CCCCCC}} & \textbf{DDDDD} \\
\midrule
AAAAAAAAA & 324 & 1400 or 2100 & AAAAAAA \\
BBBBBBB & 324 & 1400 or 2100 & BBBBBBB \\
\makecell{CCCCC \\ CCCCCC} & 380 & 1400 ou 2100 & \makecell{DDDDDDDDDD} \\
\midrule
\end{tabular}
}
\end{table}
ตารางที่ 2
\bgroup
\def\arraystretch{2.7}%
\begin{table}[!h]
\centering
\caption{Har}
\rowcolors{2}{white}{gray!20}
\resizebox{\textwidth}{!}{%
\begin{tabular}{|ll|}
%\toprule
\hline
\multicolumn{1}{|l}{\textbf{BBBBBBBBBB}} &
\multicolumn{1}{l|}{\textbf{AAAAAAAAAA}} \\
\toprule
AAAAAAA
& $ f_1 = \sum_{i}\sum_{j} \left\{p(i,j)\right\}^2 $ \\
AAAAAAAA
& \vspace{.5ex}\makecell[|l]{$f_2 = \sum\limits_{n=0}^{N_g - 1} n^2 \left\{ \sum\limits_{i=1}^{N_g}\sum\limits_{j=1}^{N_g}p(i,j)\right\}$, where
$n = |i-j| $.}\\
AAAAAAAA
& \makecell[l]{$f_3 = \dfrac{\sum_{i}\sum_{j}(ij)p(i,j)-\mu_{x}\mu_{y}}{\sigma_{x}\sigma_{y}} $, where $\mu_{x}$, $\mu_{y}$, $\sigma_{x}$ \\ $\sigma_{y}$.}\\
AAAAAAAA
& $f_4 = \sum_{i}\sum_{j}(i-\mu)^2 p(i,j)$\\
AAAAAAAA
& \vspace{.5ex} $f_5 = \sum_{i}\sum_{j}\dfrac{p(i,j)}{1+(i-j)^2}$\\
AAAAAAAAA
& $f_6 = \sum\limits_{i=2}^{2N_g}ip_{x+y}(i)$\\
AAAAAAAAA
& \vspace{.5ex} $f_7 = \sum\limits_{i=2}^{2N_g}(i-f_8)^2 p_{x+y}(i)$\\
AAAAAAAAA
& \vspace{.5ex} $f_8 = -\sum\limits_{i=2}^{2N_g}p_{x+y}(i)log\left\{p_{x+y}(i)\right\}$ \\
AAAAAAAAA
& $f_9 = -\sum_{i}\sum_{j}p(i,j)log\left\{p(i,j)\right\}$\\
AAAAAAAAA
& \vspace{.5ex} $f_{10} = - \sum\limits_{i=0}^{N_g-1}(i-f_{11})^2 p_{x-y}(i)$ \\
AAAAAAAAA
& \vspace{.5ex} $f_{11} = -\sum\limits_{i=0}^{N_g-1}p_{x-y}(i)log\left\{p_{x-y}(i)\right\}$\\
AAAAAAAAA
& \makecell[l]{$f_{14} = \sqrt{\text{...}}$\\
$Q(i,j)=\sum_{k}\dfrac{p(i,k)p(j,k)}{p_x(i)p_y(k)}$}\\
\midrule
\end{tabular}
}
\end{table}
\egroup
อัปเดต: เมื่อใช้ tabularx ฉันมีปัญหานี้ ฉันต้องการตารางที่กะทัดรัดกว่านี้ฉันไม่ต้องการหลายแถวในคอลัมน์สุดท้าย ฉันไม่สนใจว่าฉันจะต้องลดขนาดตัวอักษรหรือไม่ ฉันต้องการเอฟเฟกต์ที่คล้ายกับเมื่อใช้\resizebox
มีช่องว่างระหว่างคอลัมน์มากมาย ช่องว่างนี้สามารถลดลงเพื่อไม่ให้ข้อความของคอลัมน์สุดท้ายแตกในหลายบรรทัด
\usepackage[table]{xcolor}
\usepackage{boldline, cellspace, makecell, tabularx}
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\addparagraphcolumntypes{C}
\begin{table}[h!]
\centering
\caption{Características dos conjuntos de dados formados.}
\label{quadro:conjuntosdados}
\rowcolors{2}{white}{gray!20}
\begin{tabularx}{\linewidth}{|*{4}{SC}|}
\hlineB{2}
\rowcolor{white}
\textbf{Método} & \makecell{ \textbf{N. de} \\ \textbf{variáveis}} & \makecell{\textbf{N. de} \\ \textbf{amostras}} & \textbf{Descrição} \\
\hlineB{2}
Valores dos pixels s/ equalização & 324 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Valores dos pixels c/ equalização & 324 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Segmentação & 324 & 1400 ou 2100 & Estado do pixel (0 ou 1) \\
Segmentação (maior região) & 324 & 1400 ou 2100 & Estado do pixel (0 ou 1) \\
Máscara elíptica & 126 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Histograma & 64 & 1400 ou 2100 & Quant. de pixels em cada nível de cinza\\
Haralick & 56 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick reduzido & 14 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick duplo & 112 & 1400 ou 2100 & Valores dos descritores de textura \\
\makecell{Haralick e valores dos pixels \\com equalização} & 380 & 1400 ou 2100 & \makecell{Valores dos descritores de textura \\e nível de intensidade de cada pixel} \\
\hlineB{2}
\end{tabularx}
\end{table}
ฉันต้องการมีแง่มุมนี้ (เกี่ยวกับการแตกเส้นในเซลล์) อย่างไรก็ตามฉันต้องการมันด้วยเส้นขอบด้านนอก
คำตอบ
แก้ไข:คุณไม่ได้ให้ MWE (ตัวอย่างการทำงานน้อยที่สุด) ซึ่งเป็นเอกสารขนาดเล็ก แต่สมบูรณ์ซึ่งเราสามารถทดสอบชิ้นส่วนโค้ดของคุณได้ คำถามของ Alo ไม่ค่อยชัดเจนนักดังนั้นการออกแบบโต๊ะจึงเป็นไปตามรสนิยมของฉันเป็นส่วนใหญ่ ดังนั้นโปรดแก้ไขคำถามของคุณและชี้แจงสิ่งที่เป็นปัญหาในโต๊ะของคุณ
ตอนนี้ฉันได้เพิ่มคำอธิบายว่าจะจัดการกับพื้นที่แนวตั้งรอบ ๆ เนื้อหาของเซลล์อย่างไรโดยการลบปลอม\limits
ออกจากโค้ดของคุณสำหรับตารางที่สองและเพิ่ม\nolimits (which you can remove, if you liked such form of
\ sum`)
- กฎที่กำหนดไว้ใน
booktabs
แพ็คเกจไม่ได้มีไว้สำหรับใช้ในตารางที่มีเส้นแนวตั้ง คุณควรใช้กฎเหล่านั้นแทน\hline
หรือเมื่อคุณต้องการให้กฎตารางที่มีความหนาต่างกันhlineB{<factor>}
กำหนดboldline
แพ็กเกจ (ใช้ในตารางแรก) หรือXhline{<thicknes>}
กำหนดไว้ในmakecell
แพ็กเกจ (ใช้ในตารางที่สอง) - สำหรับพื้นที่แนวตั้งเพิ่มเติมรอบ ๆ เนื้อหาของเซลล์คุณสามารถใช้แพ็คเกจ
cellspace
ได้ ช่องว่างนี้กำหนดโดย
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
- หากคุณพบว่า
5pt
มากเกินไปคุณสามารถลดเป็นจำนวนที่ต้องการได้ (ใน MWE ลดลงเป็น 2pt) \resizebox
ไม่แนะนำให้ใช้ที่ตารางเนื่องจากเมื่อใช้ขนาดตัวอักษรที่ใช้ในตารางจะหายไป ที่ดีกว่าคือการใช้สภาพแวดล้อมตารางซึ่งคุณสามารถกำหนดความกว้างเช่นtabular*
หรือtabularx
ใช้ใน MWE ทั้งสองด้านล่าง
ตารางแรก:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\usepackage{boldline, cellspace, makecell, tabularx}
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\addparagraphcolumntypes{C}
\begin{document}
\begin{table}[ht]
\centering
\rowcolors{2}{white}{gray!20}
\begin{tabularx}{\linewidth}{|*{4}{SC}|}
\hlineB{2}
\textbf{AAAA}
& \makecell{\textbf{BBB} \\ \textbf{BBBB}}
& \makecell{\textbf{CCCC} \\ \textbf{CCCCCC}}
& \textbf{DDDDD} \\
\hlineB{1.5}
AAAAAAAAA & 324 & 1400 or 2100 & AAAAAAA \\
BBBBBBB & 324 & 1400 or 2100 & BBBBBBB \\
\makecell{CCCCC \\ CCCCCC}
& 380 & 1400 or 2100 & DDDDDDDDDD \\
\hlineB{2}
\end{tabularx}
\end{table}
\end{document}
ตารางที่สอง:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\usepackage{cellspace, makecell, tabularx}
\setlength\cellspacetoplimit{2pt}
\setlength\cellspacebottomlimit{2pt}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\addparagraphcolumntypes{L}
\begin{document}
\begin{table}[ht]
\centering
\rowcolors{2}{white}{gray!20}
\begin{tabularx}{\linewidth}{|Sl >{$\displaystyle}SL<{$}|}
\Xhline{1.2pt}
\textbf{BBBBBBBB}
& \textbf{AAAAAAAAAA} \\
\Xhline{0.8pt}
AAAAAAA & f_1 = \sum\nolimits_{i}\sum\nolimits_{j} \{p(i,j)\}^2 \\
AAAAAA & f_2 = \sum_{n=0}^{N_g - 1} n^2
\left\{\sum_{i=1}^{N_g}\sum\limits_{j=1}^{N_g}p(i,j)\right\},
\text{ where }
n = |i-j|. \\
AAAAAA & f_3 = \frac{\sum_{i}\sum_{j}(ij)p(i,j)-\mu_{x}\mu_{y}}{\sigma_{x}\sigma_{y}},
\text{ where }
\mu_{x}, \mu_{y}, \sigma_{x}, \sigma_{y} ? \\
AAAAAA & f_4 = \sum_{i}\sum_{j}(i-\mu)^2 p(i,j) \\
AAAAAA & f_5 = \sum\nolimits_{i}\sum\nolimits_{j}\frac{p(i,j)}{1+(i-j)^2} \\
AAAAAA & f_6 = \sum_{i=2}^{2N_g}ip_{x+y}(i) \\
AAAAAA & f_7 = \sum_{i=2}^{2N_g}(i-f_8)^2 p_{x+y}(i) \\
AAAAAA & f_8 = -\sum_{i=2}^{2N_g}p_{x+y}(i)\log\{p_{x+y}(i)\} \\
AAAAAA & f_9 = -\sum\nolimits_{i}\sum\nolimits_{j}p(i,j)\log\{p(i,j)\} \\
AAAAAA & f_{10} = - \sum_{i=0}^{N_g-1}(i-f_{11})^2 p_{x-y}(i) \\
AAAAAA & f_{11} = - \sum_{i=0}^{N_g-1}p_{x-y}(i)\log\{p_{x-y}(i)\} \\
AAAAAA & \begin{aligned} f_{14} & = \sqrt{\text{...}} \\ Q(i,j) & =\sum_{k}\frac{p(i,k)p(j,k)}{p_x(i)p_y(k)} \end{aligned} \\
\Xhline{1.2pt}
\end{tabularx}
\end{table}
\end{document}
ภาคผนวก:
- ให้ฉันสังเกตก่อนว่าเป็นการยากมากที่จะช่วยคุณเนื่องจากคุณไม่ได้ช่วยให้เราช่วยคุณ คุณยังคงให้เฉพาะส่วนรหัสไม่ว่าฉันจะขอให้คุณหลายครั้งขยายส่วนย่อยนี้เพื่อทำเอกสารขนาดเล็กให้เสร็จสมบูรณ์ เรายังไม่ทราบอะไรเกี่ยวกับเค้าโครงเอกสารและแพ็คเกจที่คุณใช้
- โปรดทำความคุ้นเคยกับ LaTeX มากขึ้นโดยเฉพาะกับการเขียนตาราง อาจมีข้อความแนะนำเกี่ยวกับ LaTeX (เช่นหนังสือ Dickimawหรือคำแนะนำสั้น ๆ เกี่ยวกับ LaTeX ) และเกี่ยวกับการเขียนตารางด้วย LaTeX ( wiki / ตาราง )
- การอ่านเอกสารประกอบแพคเกจก็ช่วยได้มากเช่นกัน
เกี่ยวกับตารางจริงของคุณ:
- เห็นได้ชัดว่าคุณไม่จำเป็นต้องให้คอลัมน์ทั้งหมดมีความกว้างเท่ากันดังนั้นคุณไม่จำเป็นต้องมีทุก
X
ประเภท - คอลัมน์
X
แบ่งข้อความอัตโนมัติในเซลล์ให้เป็นบรรทัดมากขึ้นดังนั้นจึงไม่จำเป็นต้องใช้\makecell
ภายในด้วยการทำลายข้อความด้วยตนเอง ยิ่งไปกว่านั้นการใช้งานของพวกเขาทำให้คุณมีปัญหาเนื่องจากข้อความ pf ที่คุณทำลายด้วยตนเองนั้นไม่เพียงพอส่งผลให้ข้อความล้นออกจากตาราง - ตัวเลขในคอลัมน์ที่สอง (ตามความชอบของฉัน) จะดีกว่าถ้าจัดชิดขวาและอยู่กึ่งกลางคอลัมน์ สิ่งนี้สามารถทำได้โดยใช้
S
ประเภทคอลัมน์ที่กำหนดไว้ในsiunitx
แพ็คเกจ - การใช้
siunitx
แพ็คเกจจำเป็นต้องกำหนดตัวระบุคอลัมน์ใหม่ที่กำหนดในcellspace
แพ็คเกจจากค่าเริ่มต้นS
อื่น ๆ ใน MWE ด้านล่างฉันเลือกO
สำหรับสิ่งนี้
MWE ที่แนะนำสำหรับตารางใหม่นี้คือ:
\documentclass[a4paper]{article}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\usepackage[column=O]{cellspace}
\setlength\cellspacetoplimit{2pt}
\setlength\cellspacebottomlimit{2pt}
\usepackage{makecell, tabularx}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadgape{}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash\hsize=#1\hsize}X}
\addparagraphcolumntypes{L}
\usepackage{siunitx}
\begin{document}
\begin{table}[ht]
\centering
\caption{Características dos conjuntos de dados formados.}
\label{quadro:conjuntosdados}
\renewcommand\tabularxcolumn[1]{m{#1}}
\rowcolors{2}{white}{gray!20}
\begin{tabularx}{\linewidth}{|O{L{0.8}}
S[table-format=3.0]
c
O{L{1.2}}|}
\Xhline{1.2pt}
\rowcolor{white}
\thead{Método}
& {\thead{N. de\\ variáveis}}
& \thead{N. de\\ amostras}
& \thead{Descrição} \\
\Xhline{0.8pt}
Valores dos pixels s/ equalização
& 324 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Valores dos pixels c/ equalização
& 324 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Segmentação
& 324 & 1400 ou 2100 & Estado do pixel (0 ou 1) \\
Segmentação (maior região)
& 324 & 1400 ou 2100 & Estado do pixel (0 ou 1) \\
Máscara elíptica
& 126 & 1400 ou 2100 & Nível de intensidade de cada pixel \\
Histograma
& 64 & 1400 ou 2100 & Quant. de pixels em cada nível de cinza \\
Haralick
& 56 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick reduzido
& 14 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick duplo
& 112 & 1400 ou 2100 & Valores dos descritores de textura \\
Haralick e valores dos pixels com equalização
& 380 & 1400 ou 2100 & Valores dos descritores de textura e nível de intensidade de cada pixel \\
\Xhline{1.2pt}
\end{tabularx}
\end{table}
\end{document}
นี่คือสิ่งที่คุณสามารถทำได้ด้วยการ{NiceTabular}
nicematrix
\documentclass{article}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage{nicematrix}
\begin{document}
\begin{table}[h!]
\centering
\begin{NiceTabular}{|cccc|}[code-before=\rowcolors{2}{}{gray!20}]
\toprule
\textbf{AAAA} & \Block{}{ \textbf{BBB} \\ \textbf{BBBB}} & \Block{}{\textbf{CCCC} \\ \textbf{CCCCCC}} & \textbf{DDDDD} \\
\midrule
AAAAAAAAA & 324 & 1400 or 2100 & AAAAAAA \\
BBBBBBB & 324 & 1400 or 2100 & BBBBBBB \\
\Block{}{CCCCC \\ CCCCCC} & 380 & 1400 ou 2100 & DDDDDDDDDD \\
\midrule
\end{NiceTabular}
\end{table}
\begin{table}[!ht]
\centering
\caption{Har}
\begin{NiceTabular}{|ll|}[code-before = \rowcolors{2}{}{gray!20},cell-space-top-limit=1ex,cell-space-bottom-limit=1ex]
%\toprule
\hline
\Block[l]{}{\textbf{BBBBBBBBBB}} &
\Block[l]{}{\textbf{AAAAAAAAAA}} \\
\toprule
AAAAAAA
& $ f_1 = \sum_{i}\sum_{j} \left\{p(i,j)\right\}^2 $ \\
AAAAAAAA
&\Block[l]{}{$f_2 = \sum\limits_{n=0}^{N_g - 1} n^2 \left\{ \sum\limits_{i=1}^{N_g}\sum\limits_{j=1}^{N_g}p(i,j)\right\}$, where
$n = |i-j| $.}\\
AAAAAAAA
& \Block[l]{}{$f_3 = \dfrac{\sum_{i}\sum_{j}(ij)p(i,j)-\mu_{x}\mu_{y}}{\sigma_{x}\sigma_{y}} $, \\
where $\mu_{x}$, $\mu_{y}$, $\sigma_{x}$ and $\sigma_{y}$ are...}\\
AAAAAAAA
& $f_4 = \sum_{i}\sum_{j}(i-\mu)^2 p(i,j)$\\
AAAAAAAA
& $f_5 = \sum_{i}\sum_{j}\dfrac{p(i,j)}{1+(i-j)^2}$\\
AAAAAAAAA
& $f_6 = \sum\limits_{i=2}^{2N_g}ip_{x+y}(i)$\\
AAAAAAAAA
& $f_7 = \sum\limits_{i=2}^{2N_g}(i-f_8)^2 p_{x+y}(i)$\\
AAAAAAAAA
& $f_8 = -\sum\limits_{i=2}^{2N_g}p_{x+y}(i)\log\left\{p_{x+y}(i)\right\}$ \\
AAAAAAAAA
& $f_9 = -\sum_{i}\sum_{j}p(i,j)\log\left\{p(i,j)\right\}$\\
AAAAAAAAA
& $f_{10} = - \sum\limits_{i=0}^{N_g-1}(i-f_{11})^2 p_{x-y}(i)$ \\
AAAAAAAAA
& $f_{11} = -\sum\limits_{i=0}^{N_g-1}p_{x-y}(i)\log\left\{p_{x-y}(i)\right\}$\\
AAAAAAAAA
& \Block[l]{}{$f_{14} = \sqrt{\text{...}}$\\
$Q(i,j)=\sum_{k}\dfrac{p(i,k)p(j,k)}{p_x(i)p_y(k)}$}\\
\midrule
\end{NiceTabular}
\end{table}
\end{document}
คุณต้องมีการคอมไพล์หลายรายการ (เนื่องจากnicematrix
ใช้โหนด PGF / Tikz)