我用它来tblr
制作表格,但每当我切换表格以适合一列时,标题就会消失,而对于第二个表格来说,它太宽了,所以我用
\newcommand{\spheading}[2][7em]{% \spheading[<width>]{<stuff>}
\raisebox{-.5\normalbaselineskip}[6pt][1pt]{\rotatebox{90}{\parbox{#1}{\raggedright #2}}}}
从 Stack 上的另一篇文章中了解如何垂直对齐文本,但由于某种原因,当我使用该命令时,行的长度正在缩小。任何想法都将不胜感激。
\documentclass[default,iicol]{sn-jnl}
\usepackage{graphicx}%
\usepackage{multirow}%
\usepackage{amsmath,amssymb,amsfonts}%
\usepackage{amsthm}%
\usepackage{mathrsfs}%
\usepackage{xcolor}%
\usepackage{tabularray}
\UseTblrLibrary{varwidth}
\usepackage{caption}
\usepackage{cleveref}
\usepackage{float}
\begin{document}
\newcommand{\spheading}[2][7em]{% \spheading[<width>]{<stuff>}
\raisebox{-.5\normalbaselineskip}[6pt][1pt]{\rotatebox{90}{\parbox{#1}{\raggedright #2}}}}
\begin{table*}[h!]
\centering
\begin{tblr}
{
colspec = {|m{0.09\textwidth}| % <-- use 'm', not 'p',
m{0.13\textwidth}|
m{0.04\textwidth}|
m{0.06\textwidth}|
m{0.07\textwidth}|
m{0.05\textwidth}|
m{0.05\textwidth}|
m{0.08\textwidth}|
m{0.06\textwidth}|
m{0.06\textwidth}|
},
hline{1,2} = {1pt,solid},
hline{3,4-7,9-12} = {dashed},
hline{4,8,13} = {solid},
row{1} = {gray!30},
% cell{4-8,10-16,20-24,28-32,36-40}{2}={c=2}{h,0.6\paperwidth},
measure=vbox,
row{1-Z} = {font=\small},
cell{1}{1-3} = {font=\small\bfseries},
% cell{1,9,17,25,33}{1-2} = {font=\small\bfseries},
}
&\spheading{Profession} & \spheading{Student} & \spheading{Company \& employee} & \spheading{Faculty \& staff} &
\spheading{Researcher} & \spheading{Self-employed \& freelancers} & \spheading{Innovative enterprise manager} & \spheading{Chi-square test} &
\spheading{Sign. \\ (\%)} \\
\end{tblr}
\caption{yyyyyyyyyyy}
\label{tabVIII}
\end{table*}
\begin{table}[t!]
\centering
\begin{tblr}
{
colspec = {|m{0.09\textwidth}| % <-- use 'm', not 'p',
m{0.15\textwidth}|
m{0.03\textwidth}|
m{0.07\textwidth}|
},
hline{1,2} = {1pt,solid},
hline{3,5-7,9-13,15-18} = {dashed},
hline{4,8,14,19} = {solid},
row{1} = {gray!30},
measure=vbox,
row{1-Z} = {font=\small},
cell{1}{1-3} = {font=\small\bfseries},
}
Item & Classification & No. & Perc. (\%)\\
\end{tblr}
\caption{xxxxxxx.}
\label{tabI}
\end{table}
\Cref{tabI} outlines
\Cref{tabVIII} outlines
\end{document}
这是问题的更新,因此我使用了下面提供的代码并尝试在 Overleaf 上进行测试,我注意到当我删除时row{1} = {cmd=\rothead,},
,标题会消失,但当我保留它时,标题会再次出现。
请查看 Overleaf 以查看问题。我很感激任何帮助,因为我几天来一直在尝试解决这个问题。
答案1
- 我无法重现您的问题。在测试中我使用了最新的 MiKTeX。
- 但是,至少第一个表格,正如您定义的列宽一样,非常宽,因此您很难将其放入一列中。
- 带有旋转文本的列标题代码有点笨拙,我建议按照我在下面的 MWWE 中所做的那样使用
rotating
和打包。makecell
- 目前尚不清楚表格内容是什么,因此我无法判断是否真的需要单独定义每列的宽度。在下面的 MWE 中,我假设它们可以具有相同的宽度。
\documentclass[default,iicol]{sn-jnl}
\usepackage{lipsum}
%\usepackage{graphicx} % not used in MWE
%\usepackage{multirow} %
%\usepackage{amssymb} %
%\usepackage{amsthm} %
%\usepackage{mathrsfs} %
\usepackage{rotating}
\usepackage{makecell}
\usepackage{xcolor}%
\usepackage{tabularray}
\UseTblrLibrary{amsmath, varwidth}
\usepackage{caption}
\usepackage{cleveref}
%\usepackage{float} % not recommended
\begin{document}
\lipsum[66]
\begin{table}[ht]%{sidewaystable}
\renewcommand\theadfont{}
\settowidth\rotheadsize{Faculty \& staff} % from makecell
\begin{tblr}{hline{1,2} = {1pt,solid},
hline{3,4-7,9-12} = {dashed},
hline{4,8,13} = {solid},
vlines,
colspec = {Q[c,m]
*{9}{X[c,m]}},
row{1} = {cmd=\rothead, bg=gray!30, rowsep=0pt},
measure=vbox,
row{1-Z} = {font=\small},
cell{1}{1-3} = {font=\small\bfseries},
colsep = 1pt,
% cell{4-8,10-16,20-24,28-32,36-40}{2}={c=2}{h,0.6\paperwidth},
% cell{1,9,17,25,33}{1-2} = {font=\small\bfseries},
}
& Profession
& Student
& Company \& employee
& Faculty \& staff
& Researcher
& Self-employed \& freelancers
& Innovative enterprise manager
& Chi-square test
& Sign. (\%) \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 7 & 8 & 9 \\
\end{tblr}
\caption{yyyyyyyyyyy}
\label{tabVIII}
\end{table}
\Cref{tabVIII} outlines \dots
\lipsum[1-6]
\end{document}