Add custom left spacing in a single LaTeX table's cell - latex

I need to add some left spacing in a table's cell. Can anyone help me?
It follows a code sample; I need to add left spacing in the cells of the first colum where the label is not bold.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{graphics}
\begin{document}
{
\begin{table}[ht]
\centering
\setlength{\tabcolsep}{2pt}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{|p{0.15\textwidth}>{\centering}p{0.15\textwidth}>{\centering}p{0.15\textwidth}>{\centering}p{0.15\textwidth}>{\centering}p{0.15\textwidth}>{\centering\arraybackslash}p{0.15\textwidth}|}
\hline
& \textbf{VRE} & \textbf{FPE} & \textbf{MPE} & \multicolumn{2}{c|}{\textbf{Full sample}} \\
& \textit{n} & \textit{n} & \textit{n} & \textit{n} & \textit{\%} \\
\hline
\textbf{Gender} &&&&& \\
Female & 12 & 10 & 18 & 40 & 52.6 \\
Male & 10 & 13 & 13 & 36 & 47.4 \\
\hline
\textbf{Educational level} &&&&& \\
High School & 8 & 5 & 6 & 19 & 25.0 \\
Bachelor's Degree & 13 & 9 & 19 & 41 & 53.9 \\
Master's Degree & 1 & 8 & 6 & 15 & 19.7 \\
PhD & 0 & 1 & 0 & 1 & 1.3 \\
\hline \hline
\textbf{Age} &&&&& \\
Mean & 23.6 & 24.6 & 24 & \multicolumn{2}{c|}{24.1} \\
Median & 23.6 & 24.6 & 24 & \multicolumn{2}{c|}{24.1} \\
\hline
\end{tabular}
\caption{Participants demographic information}
\label{tab:demographic}
\end{table}
}
Thanks in advance.

One possibility: you can place \quad (or similar spacing macros) at the start of these cells:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{graphics}
\begin{document}
{
\begin{table}[ht]
\centering
\setlength{\tabcolsep}{2pt}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{|p{0.26\textwidth}>{\centering}p{0.15\textwidth}>{\centering}p{0.15\textwidth}>{\centering}p{0.15\textwidth}>{\centering}p{0.15\textwidth}>{\centering\arraybackslash}p{0.15\textwidth}|}
\hline
& \textbf{VRE} & \textbf{FPE} & \textbf{MPE} & \multicolumn{2}{c|}{\textbf{Full sample}} \\
& \textit{n} & \textit{n} & \textit{n} & \textit{n} & \textit{\%} \\
\hline
\textbf{Gender} &&&&& \\
\quad Female & 12 & 10 & 18 & 40 & 52.6 \\
\quad Male & 10 & 13 & 13 & 36 & 47.4 \\
\hline
\textbf{Educational level} &&&&& \\
\quad High School & 8 & 5 & 6 & 19 & 25.0 \\
\quad Bachelor's Degree & 13 & 9 & 19 & 41 & 53.9 \\
\quad Master's Degree & 1 & 8 & 6 & 15 & 19.7 \\
\quad PhD & 0 & 1 & 0 & 1 & 1.3 \\
\hline \hline
\textbf{Age} &&&&& \\
\quad Mean & 23.6 & 24.6 & 24 & \multicolumn{2}{c|}{24.1} \\
\quad Median & 23.6 & 24.6 & 24 & \multicolumn{2}{c|}{24.1} \\
\hline
\end{tabular}
\caption{Participants demographic information}
\label{tab:demographic}
\end{table}
}
\end{document}
Unrelated to the problem, but your fixed width columns "waste" a lot of space. I would instead use a tabularx like this:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{titlesec}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{graphics}
\begin{document}
{
\begin{table}[ht]
\centering
\setlength{\tabcolsep}{10pt}
\renewcommand{\arraystretch}{1.5}
\begin{tabularx}{\textwidth}{ | X ccccc | }
\hline
& \textbf{VRE} & \textbf{FPE} & \textbf{MPE} & \multicolumn{2}{c|}{\textbf{Full sample}} \\
& \textit{n} & \textit{n} & \textit{n} & \textit{n} & \textit{\%} \\
\hline
\textbf{Gender} &&&&& \\
\quad Female & 12 & 10 & 18 & 40 & 52.6 \\
\quad Male & 10 & 13 & 13 & 36 & 47.4 \\
\hline
\textbf{Educational level} &&&&& \\
\quad High School & 8 & 5 & 6 & 19 & 25.0 \\
\quad Bachelor's Degree & 13 & 9 & 19 & 41 & 53.9 \\
\quad Master's Degree & 1 & 8 & 6 & 15 & 19.7 \\
\quad PhD & 0 & 1 & 0 & 1 & 1.3 \\
\hline \hline
\textbf{Age} &&&&& \\
\quad Mean & 23.6 & 24.6 & 24 & \multicolumn{2}{c|}{24.1} \\
\quad Median & 23.6 & 24.6 & 24 & \multicolumn{2}{c|}{24.1} \\
\hline
\end{tabularx}
\caption{Participants demographic information}
\label{tab:demographic}
\end{table}
}
\end{document}

Related

Centering the latex table in the page

I have the following table in LaTeX, and although I have used the \centering in the code, it is not centred when knitted. In addition it extends more than the text width as shown in the figure below
\begin{table}[H]
\centering
\caption[mnodels summary]{Summary results of the models \label{tab:modelssummary}}
\begin{tabular}{cccccc}
\toprule
\multicolumn{6}{c}{~ \textbf{~~Models Performance }} \\
\hline
\textbf{Model} & \textbf{Residual Mean} & \textbf{Constant Variance} & \textbf{Autocorrelation} & \textbf{Adj. R-Squared} & \textbf{AIC} \\
\hline\hline
\textbf{Model 1} & OK & OK & YES & 0.83 & 4804.8 \\
\textbf{Model 2} & OK & OK & YES & 0.84 & 4569.5 \\
\textbf{Model 3} & OK & OK & YES & 0.83 & 4763.7 \\
\textbf{Model 4} & OK & OK & YES & 0.87 & 3760.5 \\
\textbf{Model 5} & OK & OK & YES & 0.86 & 3964.5 \\
\textbf{Model 6} & No & No & YES & 0.32 & 10879.7~ \\
\textbf{Model 7} & No & No & YES & 0.80 & 5434.2 \\
\bottomrule
\end{tabular}
\end{table}
and it will look like this:
How can I resolve this?
If you accept multi lines in headings and abbreviations, you can squeeze the table and even fit within the default latex page. Then, \centering will work
and the code
\documentclass{article}
\usepackage{booktabs}
\usepackage{caption}
\captionsetup[table]{position=top,skip=6pt}
\usepackage{makecell}
\usepackage{ragged2e} % Centering
\usepackage{siunitx} % S[...]
% Makecell - settings
\renewcommand\theadfont{\normalsize\normalfont\bfseries}
\renewcommand\theadalign{tc}
% Custom column types
\newcolumntype{C}{>{\Centering\bfseries}p{1.4cm}}
\newcolumntype{P}[1]{>{\Centering}p{#1}}
\begin{document}
\begin{table}[tbh]
\centering
\setlength\tabcolsep{0pt}
\caption[mnodels summary]{Summary results of the models}\label{tab:modelssummary}
\begin{tabular}{
C #{\hspace{1em}}
*4{P{1.25cm}}
#{\hspace{0.75em}}
S[group-minimum-digits=4,table-format=4.1]
}
\toprule
& \multicolumn{5}{c}{\textbf{Models Performance}} \\
\cmidrule{2-6}
\thead{Model}
& \thead{Resid.\\Mean}
& \thead{Const.\\Var.}
& \thead{Auto\\corr.}
& \thead{Adj.\\R\textsuperscript{2}}
& {\thead{AIC}} \\ % {} required for S[] to work
\midrule\midrule
1 & OK & OK & YES & 0.83 & 4804.8 \\
2 & OK & OK & YES & 0.84 & 4569.5 \\
3 & OK & OK & YES & 0.83 & 4763.7 \\
4 & OK & OK & YES & 0.87 & 3760.5 \\
5 & OK & OK & YES & 0.86 & 3964.5 \\
6 & No & No & YES & 0.32 & 10879.7 \\
7 & No & No & YES & 0.80 & 5434.2 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

align values in latex

i have a problem in LaTeX. I want the accuracy value centered in its cell since it is not associated with the labels but I don't know how to do it.
Here the code I'm using:
\documentclass[12 pt, letterpaper, twoside, openright]{book}
\usepackage{amsmath}
\usepackage{multirow}
\usepackage{enumitem}
\usepackage{booktabs, makecell, longtable}
\usepackage{stackengine}
\usepackage{tabularx}
\usepackage{caption}
\usepackage{subcaption}
\begin{document}
\begin{table}[H]
\caption {Logistic Regression and Random Forest Performances}
\centering
\begin{tabular}{llssssssss}
\toprule
\multirow{2}{*}{Patient} &\multirow{2}{*}{Labels} &
\multicolumn{4}{c}{Logistic Regression} &
\multicolumn{4}{c}{Random Forest} \\
&& {Accuracy (\%)}&{$Prec$} & {$Rec$} & {$F1$} & {Accuracy (\%)}& {$Prec$} & {$Prec$} & {$F1$} \\
\midrule
\multirow{2}{3em}{F0110} & 0 & 55 & 0.59 & 0.62 & 0.61 & 55& 0.70 & 0.76 & 0.72 \\
& 1 & & 0.58 & 0.55 & 0.57& & 0.72 & 0.66 & 0.69 \\
\hline
\bottomrule
\end{tabular}
\label{tab:tab1}
\end{table}
\end{document}
you can use the same \multirow command as with the "FO110" cell
\documentclass[12 pt, letterpaper, twoside, openright]{book}
\usepackage{amsmath}
\usepackage{multirow}
\usepackage{enumitem}
\usepackage{booktabs, makecell, longtable}
\usepackage{stackengine}
\usepackage{tabularx}
\usepackage{caption}
\usepackage{subcaption}
\begin{document}
\begin{table}[ht]
\caption {Logistic Regression and Random Forest Performances}
\centering
\begin{tabular}{llcccccccc}
\toprule
\multirow{2}{*}{Patient} &\multirow{2}{*}{Labels} &
\multicolumn{4}{c}{Logistic Regression} &
\multicolumn{4}{c}{Random Forest} \\
&& {Accuracy (\%)}&{$Prec$} & {$Rec$} & {$F1$} & {Accuracy (\%)}& {$Prec$} & {$Prec$} & {$F1$} \\
\midrule
\multirow{2}{3em}{F0110} & 0 & \multirow{2}{1em}{55} & 0.59 & 0.62 & 0.61 & \multirow{2}{1em}{55}& 0.70 & 0.76 & 0.72 \\
& 1 & & 0.58 & 0.55 & 0.57& & 0.72 & 0.66 & 0.69 \\
\hline
\bottomrule
\end{tabular}
\label{tab:tab1}
\end{table}
\end{document}
As said in your previous post, the tabularray packages makes merging cells much easier:
\documentclass[12 pt, letterpaper, twoside, openright]{book}
\usepackage{float}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\begin{document}
\begin{table}[H]
\caption{Logistic Regression and Random Forest Performances}
\centering
\begin{tblr}{llcccccccc}
\toprule
\SetCell[r=2]{} Patient &
\SetCell[r=2]{} Labels &
\SetCell[c=4]{} Logistic Regression &&&&
\SetCell[c=4]{} Random Forest &&& \\
&& {Accuracy (\%)}&{$Prec$} & {$Rec$} & {$F1$} & {Accuracy (\%)}& {$Prec$} & {$Prec$} & {$F1$} \\
\midrule
\SetCell[r=2]{} F0110 & 0 & \SetCell[r=2]{}55 & 0.59 & 0.62 & 0.61 & \SetCell[r=2]{}55& 0.70 & 0.76 & 0.72 \\
& 1 & & 0.58 & 0.55 & 0.57& & 0.72 & 0.66 & 0.69 \\
\bottomrule
\end{tblr}
\label{tab:tab1}
\end{table}
\end{document}

How to place the figure in the overleaf in the middle?

I a trying to put a table in my report. I want to place it in the middle of the page.
but it is shifted to the right side. How can I fix it? (I am using overleaf)
I really appreciate it if anyone could help me to fix the problem.
This is the code:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{floatrow}
\floatsetup[table]{capposition=top}
\usepackage{natbib}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{tabularx}
\usepackage{caption}
\begin{table}[p]
\centering
\small
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|}
\hline
\textbf{Sub fault} & \textbf{Lat} & \textbf{Lon} & \textbf{\begin{tabular}[c]{#{}c#{}}Depth\\ (Km)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Strike\\ (Deg.)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Dip \\ (Deg.)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Length\\ (Km)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Width\\ (Km)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Rake \\ (Deg.)\end{tabular}} & \textbf{\begin{tabular}[c]{#{}c#{}}Slip (m)\\ Mw=9.0\end{tabular}} \\ \hline
\textbf{1} & 18.9848 & -65.6921 & 22.1 & 89.59 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{2} & 19.4069 & -65.6953 & 5 & 89.59 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{3} & 18.9484 & -66.5742 & 22.1 & 84.98 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{4} & 19.3688 & -66.6133 & 5 & 84.98 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{5} & 18.8738 & -67.5412 & 22.1 & 85.87 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{6} & 19.2948 & -67.5734 & 5 & 85.87 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{7} & 18.7853 & -68.4547 & 22.1 & 83.64 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{8} & 19.2048 & -68.5042 & 5 & 83.64 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{9} & 18.8870 & -63.8800 & 22.1 & 95.37 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{10} & 19.3072 & -63.8382 & 5 & 95.37 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{11} & 18.9650 & -64.8153 & 22.1 & 94.34 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{12} & 19.3859 & -64.7814 & 5 & 94.34 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{13} & 18.0566 & -61.5491 & 17.94 & 112.84 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{14} & 18.4564 & -61.3716 & 5 & 112.34 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{15} & 18.4149 & -62.4217 & 17.94 & 117.86 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{16} & 18.7985 & -62.2075 & 5 & 117.86 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{17} & 18.7844 & -63.1649 & 17.94 & 110.46 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{18} & 19.1798 & -63.0087 & 5 & 110.46 & 20 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{19} & 16.4535 & -59.9029 & 17.94 & 136.99 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{20} & 16.7494 & -59.5716 & 5 & 136.99 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{21} & 17.0903 & -60.5996 & 17.94 & 138.71 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{22} & 17.3766 & -60.2580 & 5 & 138.71 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{23} & 17.8560 & -61.1559 & 17.94 & 141.07 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\textbf{24} & 18.1286 & -60.8008 & 5 & 141.07 & 15 & 100 & 50 & 90 & 7.4 \\ \hline
\end{tabular}
\captionsetup{justification=centering}
\caption{\label{tab:table-name}source parameters for a Mw 9.0 PRT co-seismic source based on 24 sub-faults (Gica eal,2008). Corresponding surface elevation computed with Okadas (1985) method is shown in fig 3}
\end{table}
\clearpage
Your issue here is that the table is too wide to fit within the text block. As such, LaTeX pushes is against the left margin and let it overflow into the right margin. If you don't want to change anything and just centre it, you can wrap the entire tabular inside a \makebox[\linewidth]:
\begin{table}
\centering
\small
\makebox[\linewidth]{%
\begin{tabular}{| *{10}{c|} }
<your table here>
\end{tabular}%
}
\caption{<caption>}
\end{table}
For more details and options, see My table doesn't fit; what are my options?
You can try the following:
\begin{center}
\begin{tabular}{ | c | c | c | }
\hline
symbol & value & unit \\ \hline
$z Na$ & 11 & - \\ \hline
$z F$ & 9 & - \\ \hline
$Emax Na$ & 0.545 & $[MeV]$ \\ \hline
\end{tabular}
\end{center}
Refer: How to center table in latex

How do you add vertical lines to a table?

I am making a table and I am not able to make vertical lines to appear. I followed a few examples and they are still not appearing.
\begin{table}[h!]
\centering
\begin{tabular}{||c c c c||}
\hline
\multicolumn{4}{|c|}{Telescope Data} \\
\hline
Channels & \makecell{Beam Size\\ (arcsec)} & \makecell{Noise \\ (mJy/beam)} & Position of Peak Flux \\ [0.5ex]
\hline
1-10 & \makecell{\textbf{min:} 1.42 \\ \textbf{max:} 1.95} & 4.9928 & \makecell{\textbf{peak(x):} 15 \\ \textbf{peak(y):} -13.5 \\ \textbf{peak(flux, max):} 0.002846} \\ [3ex]
\hline
52-61 & \makecell{\textbf{min:} 1.423 \\ \textbf{max:} 1.95} & 0.0018912 & \makecell{\textbf{peak(x):} -0.25 \\ \textbf{peak(y):} 0 \\ \textbf{peak(flux, max):} 0.029341} \\ [3ex]
\hline
103-112 & \makecell{\textbf{min:} 1.427 \\ \textbf{max:} 1.956} & 0.000802855 & \makecell{\textbf{peak(x):} -16 \\ \textbf{peak(y):} 0 \\ \textbf{peak(flux, max):} 0.00241892} \\ [3ex]
\hline
\end{tabular}
\end{table}

How to make all cells boldface in LaTeX table?

Given the following LaTeX table, how can I make all cells have a bold style?
MWE:
\documentclass{article}
\begin{document}
\begin{table}[ht]%
\centering
\caption[Data description]{Dataset description}
\begin{tabular}{|l|l|c|c|c|c|}
\hline
&Dataset &Samples&Numerical&Categorical&Class\\ \hline
1&Horse & 300 & 7 & 16 & 2 \\ \hline
2&Ionosphere & 351 & 32 & 1 & 2 \\ \hline
3&Band & 540 & 13 & 6 & 2 \\ \hline
4&Australian+MV& 621 & 3 & 11 & 2 \\ \hline
5&Hepatitis & 155 & 2 & 17 & 2 \\ \hline
6&Credit & 690 & 3 & 12 & 2 \\ \hline
\end{tabular}
\label{tab:data}
\end{table}
\end{document}
You can set the formatting of each column in the tabular argument with >{...}, see Tabular, make a column or a row emphasized:
\begin{tabular}{|>{\bfseries}l|>{\bfseries}l|>{\bfseries}c|>{\bfseries}c|>{\bfseries}c|>{\bfseries}c|}
Use the *{num}{str} syntax to make it shorter and more readable:
\begin{tabular}{*{2}{|>{\bfseries}l} *{4}{|>{\bfseries}c} |}\hline
I.e. 'two times flush left and bold', then 'four times centred and bold'. (Note that \bf is deprecated.)
Your MWE:
\documentclass{article}
\usepackage{array} % otherwise you get "Error: Illegal character in array arg."
\begin{document}
\begin{table}[ht]%
\centering
\caption[Data description]{Dataset description}
\begin{tabular}{*{2}{|>{\bfseries}l} *{4}{|>{\bfseries}c} |}\hline
&Dataset &Samples&Numerical&Categorical&Class\\ \hline
1&Horse & 300 & 7 & 16 & 2 \\ \hline
2&Ionosphere & 351 & 32 & 1 & 2 \\ \hline
3&Band & 540 & 13 & 6 & 2 \\ \hline
4&Australian+MV& 621 & 3 & 11 & 2 \\ \hline
5&Hepatitis & 155 & 2 & 17 & 2 \\ \hline
6&Credit & 690 & 3 & 12 & 2 \\ \hline
\end{tabular}
\label{tab:data}
\end{table}
\end{document}
You can also set the formatting of a whole row (less interesting in this case) - see for instance How to change a whole row of a table.
Note: you can make a single cell normal again by using \normalfont{}.
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{table}[ht]%
% If you want all in bold face then enclose it between {\ bf }
\centering {\bf
\caption[Data description]{Dataset description}
\begin{tabular}{|l|l|c|c|c|c|}\hline
& Dataset & Samples & Numerical & Categorical & Class\\\hline
1 & Horse & 300 & 7 & 16 & 2 \\\hline
2 & Ionosphere & 351 & 32 & 1 & 2 \\\hline
3 & Band & 540 & 13 & 6 & 2 \\\hline
4 & Australian+MV& 621 & 3 & 11 & 2 \\\hline
5 & Hepatitis & 155 & 2 & 17 & 2 \\\hline
6 & Credit & 690 & 3 & 12 & 2 \\\hline
\end{tabular}
\label{tab:data}

Resources