完全渲染表格

完全渲染表格

我正在尝试用乳胶创建我的课堂例程,但它只呈现部分内容:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{table}[]
    \begin{tabular}{lllllllllll}
            & 9.00-9.45 & 9.50-10.35 & 10.40-11.25 & 11.30-12.15 & 12.20-1.05 & 1.05-1.30 & 1.30-2.15 & 2.30-3.05 & 3.10-3.55 & 4.00-4.45 \\
        Sun &           & 717        & 717         &             &            & *         &           &           &           &           \\
        Mon & 715       & 715        & 711         & 711         & 712        & *         & 712       & 719       & 719       &           \\
        Tue &           &            &             &             &            & *         &           & 716       & 716       &           \\
        Wed &           & 711        & 713         & 714         & 714        & *         & 717       & 717       & 719       & 719       \\
        Thu &           &            &             &             &            & *         & Thesis    & Thesis    & Thesis    & Thesis    
    \end{tabular}
\end{table}
\end{document}

我尝试了 documentclass 中的不同点,甚至 6 点,但它不适合 pdf。

我甚至尝试过adjustbox,但由于某些未知原因,texwork 无法识别它,甚至无法安装它。那么,有没有什么办法可以完全渲染它?

当前渲染:

在此处输入图片描述

答案1

以下是符合其边界的四个 MWE。

我用了scrartclKOMA 脚本以获得更合理的边距。您可以通过加载几何学。此外,请考虑在表格中留出更多垂直空间(空气)。加载大批打包并在前言中添加以下两个命令:

\setlength{\extrarowheight}{1pt}
\renewcommand{\arraystretch}{1.1}

效果见例3。

示例 1:我把字体缩小了。scrartcl标准是 11 pt。另外,我\thead为十个标题定义了一个宏。文本设置在窄p列中,并在右边距对齐。此外,我将所有列(第一列和第六列除外)都对齐到右侧。

最后,我加载了书签,并在标题后设置一个\midrule,并移除表格左右两侧的边距,参见@{}表格定义中的。

示例 2:这里,我使用了 tabular* 而不是 tabular。我将其设置\tabcolsep为 0,然后tabular*计算列之间的间距。此外,我减小了标题单元格的宽度,直到所有单元格都有换行符。

示例 3:这可能是最简单的解决方案,我建议你:加载优秀的表格包并让 LaTeX 进行所有计算。我\tabcolsep稍微缩小了一点,删除了侧边距并减小了字体大小,就像其他示例一样。请注意,第一列是普通的l-column。此后,我有 10 个右对齐的R-column:

示例 4:受 Bernhard 启发,但略有不同。由于工作方式\rowcolor\columncolor工作,我通过设置为 0 来移除侧边距\tabcolsep,并使用非常窄的列(定义为新列类型N)在列之间添加空间。T-column 使用dcolumn 手册

示例 1 – 使用表格

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{graphicx, booktabs}

\newcommand{\thead}[1]{\multicolumn{1}{p{\dimexpr((\linewidth/11)-2\tabcolsep)\relax}}{\raggedleft #1}}

\begin{document}
\begin{table}
\small\centering
\setlength{\tabcolsep}{0.3em}

\begin{tabular}{@{}lrrrrcrrrrr@{}}
   & \thead{9.00--9.45} & \thead{9.50--10.35} & \thead{10.40--11.25}
   & \thead{11.30--12.15} & \thead{12.20--1.05} & \thead{1.05--1.30}
   & \thead{1.30--2.15} & \thead{2.30--3.05} & \thead{3.10--3.55}
   & \thead{4.00-4.45} \\ \midrule
Sun &     & 717 & 717 &     &     & * &        &        &        &       \\
Mon & 715 & 715 & 711 & 711 & 712 & * &   712  &   719  &   719  &       \\
Tue &     &     &     &     &     & * &        &   716  &   716  &       \\
Wed &     & 711 & 713 & 714 & 714 & * &   717  &   717  &   719  &   719  \\
Thu &     &     &     &     &     & * & Thesis & Thesis & Thesis & Thesis \\  
    \end{tabular}
\end{table}
\end{document}

示例 2 – 使用表格*

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{graphicx, booktabs}

\newcommand{\thead}[1]{\multicolumn{1}{p{\dimexpr(\linewidth/13)}}{\raggedleft #1}}
\setlength{\tabcolsep}{0em}

\begin{document}

\begin{table}
\small\centering
\begin{tabular*}\linewidth{@{\extracolsep{\fill}}l*{10}{r}}
   & \thead{9.00--9.45} & \thead{9.50--10.35} & \thead{10.40--11.25}
   & \thead{11.30--12.15} & \thead{12.20--1.05} & \thead{1.05--1.30}
   & \thead{1.30--2.15} & \thead{2.30--3.05} & \thead{3.10--3.55}
   & \thead{4.00-4.45} \\ \midrule
Sun &     & 717 & 717 &     &     & * &        &        &        &       \\
Mon & 715 & 715 & 711 & 711 & 712 & * &   712  &   719  &   719  &       \\
Tue &     &     &     &     &     & * &        &   716  &   716  &       \\
Wed &     & 711 & 713 & 714 & 714 & * &   717  &   717  &   719  &   719  \\
Thu &     &     &     &     &     & * & Thesis & Thesis & Thesis & Thesis \\  
    \end{tabular*}
\end{table}

\end{document}

示例 3表格

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{graphicx, booktabs, tabulary, array}

\setlength{\extrarowheight}{1pt}
\renewcommand{\arraystretch}{1.1}

\begin{document}

\begin{table}
\small\centering
\setlength{\tabcolsep}{0.2em}
\begin{tabulary}\linewidth{@{}l*{10}{R}@{}}
    & 9.00--9.45\, & 9.50--10.35\,
    & 10.40--11.25\, & 11.30--12.15\,
    & 12.20--1.05\, & 1.05--1.30\,
    & 1.30--2.15\, & 2.30--3.05\,
    & 3.10--3.55\, & 4.00-4.45\, \\ \midrule
Sun &     & 717 & 717 &     &     & * &        &        &        &       \\
Mon & 715 & 715 & 711 & 711 & 712 & * &   712  &   719  &   719  &       \\
Tue &     &     &     &     &     & * &        &   716  &   716  &       \\
Wed &     & 711 & 713 & 714 & 714 & * &   717  &   717  &   719  &   719  \\
Thu &     &     &     &     &     & * & Thesis & Thesis & Thesis & Thesis \\  
\end{tabulary}
\end{table}

\end{document}

示例 4 – tabular、dcolumn 和彩色

在此处输入图片描述

\documentclass{article}
\usepackage{geometry}
\usepackage{array, makecell, booktabs, dcolumn}
\usepackage{graphicx}
\usepackage[svgnames, table]{xcolor}

\newcolumntype{N}{wc{1em}}
\newcolumntype{T}{D{-}{-}{5,5}}

\begin{document}
\renewcommand{\arraystretch}{1.15}
\setlength{\extrarowheight}{2pt}
\begin{table}
\centering\small
\setlength{\tabcolsep}{0em}

\begin{tabular}{@{}>{\columncolor{Gainsboro!60!Lavender}}TN*{5}{cN}@{}}
\rowcolor{Gainsboro!60!Lavender}
            && Sunday && Monday && Tueday && Wednesday && Thursday\\
9.00-9.45   &&        &&   715  &&        &&           &&         \\
9.50-10.35  &&   717  &&   715  &&        &&    711    &&         \\
10.40-11.25 &&   717  &&   711  &&        &&    713    &&         \\
11.30-12.15 &&        &&   711  &&        &&    714    &&         \\
12.20-1.05  &&        &&   712  &&        &&    714    &&         \\
1.05-1.30   &&    *   &&    *   &&    *   &&     *     &&    *    \\
1.30-2.15   &&        &&   712  &&        &&    717    && Thesis  \\
2.30-3.05   &&        &&   719  &&   716  &&    717    && Thesis  \\
3.10-3.55   &&        &&   719  &&   716  &&    719    && Thesis  \\
4.00-4.45   &&        &&        &&        &&    719    && Thesis  \\
\end{tabular}
\end{table}
\end{document}

答案2

除了使用横向表格外,我还建议采用以下解决方案之一:要么加载geometry默认的较小边距,要么使用小字体,或者交换行和列。

\documentclass{article}
\usepackage{geometry}
\usepackage{array, makecell, booktabs}
\usepackage{graphicx, rotating}
\usepackage[svgnames, table]{xcolor}
\newcommand{\rowhead}[1]{\rotatebox[origin=c]{90}{\,#1\,}}

\begin{document}
\renewcommand{\arraystretch}{1.25}
\begin{table}[]
\centering
\bgroup
\setlength{\tabcolsep}{2.2 pt}
\small
    \begin{tabular}{@{} >{\columncolor{Gainsboro!60!Lavender}}l@{\quad}*{10}{l}@{}}
\cellcolor{white} & \thead{9.00--9.45} & \thead{9.50--10.35} & {10.40--11.25} & \thead{11.30--12.15} & \thead{12.20--1.05} & \thead{1.05--1.30} & \thead{1.30--2.15} & \thead{2.30--3.05} & \thead{3.10--3.55} & \thead{4.00--4.45 }\\
\cmidrule{2-11}
        \rowhead{Sun} & & 717 & 717 & & & * & & & & \\
\addlinespace
        \rowhead{Mon} & 715 & 715 & 711 & 711 & 712 & * & 712 & 719 & 719 & \\
\addlinespace
        \rowhead{Tue} & & & & & & * & & 716 & 716 & \\
\addlinespace
        \rowhead{Wed} & & 711 & 713 & 714 & 714 & * & 717 & 717 & 719 & 719 \\
\addlinespace
        \rowhead{Thu} & & & & & & * & Thesis & Thesis & Thesis & Thesis
    \end{tabular}
\egroup
\vspace{1cm}


\newcolumntype{T}[1]{D{-}{\,\textendash\,}{#1}}
    \begin{tabular}{>{\columncolor{WhiteSmoke}\small}T{4}*{5}{l} }
\rowcolor{Gainsboro!50!Lavender} \multicolumn{1}{c}{\cellcolor{white}} & Sun & Mon & Tue &Wed & Thu \\
\addlinespace
 9.00-9.45 & & 715 \\
9.50-10.35 & 717 & 715 & & 711 \\
10.40-11.25 & 717 & 711 & & 713 \\
11.30-12.15 & & 711 & & 714 \\
12.20-1.05 & & 712 & & 714 \\
1.05-1.30 & * & * & * & * & * \\
1.30-2.15 & & 712 & & 717 & Thesis \\
2.30-3.05 & & 719 & 716 & 717 & Thesis \\
3.10-3.55 & & 719 & 716 & 719 & Thesis \\
4.00-4.45 & & & & 719 & Thesis \\
    \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述 在此处输入图片描述

答案3

在此处输入图片描述

借助以下工具将表格标题列美化为浅灰色:

\rowcolor{灰色!30}

第一列转换为浅灰色

{\columncolor{灰色!30}}l

中心柱转换为红色

{\columncolor{红色}}c

以 开头的数字7以浅蓝色突出显示

> \makeatletter \newcommand*{\minuscellcolor}{}
> \def\minuscellcolor\ignorespaces{%   % \ignorespaces not really
> needed, because \@ifnextchar gobbles spaces  
> \@ifnextchar7{\cellcolor{blue!20}}{}% } %
> \newcolumntype{L}{>{\minuscellcolor}l}
> \newcolumntype{C}{>{\minuscellcolor}c} %
> \newcolumntype{R}{>{\minuscellcolor}r} \makeatother

以更清晰的视角呈现数据(我认为)

\documentclass{article}
\usepackage{rotating} 
\usepackage{array}
\usepackage{booktabs}  
\usepackage[table]{xcolor}
\newcolumntype{R}[1]{>{\begin{turn}{90}\begin{minipage}{#1}\scriptsize}c%
<{\end{minipage}\end{turn}}%
}
\makeatletter
\newcommand*{\minuscellcolor}{}
\def\minuscellcolor\ignorespaces{%
  % \ignorespaces not really needed, because \@ifnextchar gobbles spaces
  \@ifnextchar7{\cellcolor{blue!20}}{}%
}
% \newcolumntype{L}{>{\minuscellcolor}l}
\newcolumntype{C}{>{\minuscellcolor}c}
% \newcolumntype{R}{>{\minuscellcolor}r}
\makeatother

\begin{document}  

\begin{table}  
  \footnotesize
  \setlength\tabcolsep{3pt}
  \centering
  \begin{tabular}{>{\columncolor{gray!30}}lCCCCC>{\columncolor{red}}cCCCC}  
    \toprule  \rowcolor{gray!30}
    \multicolumn{1}{R{2cm}}{} 
      & \multicolumn{1}{R{2cm}}{9.00-9.45}
      & \multicolumn{1}{R{2cm}}{9.50-10.35}
      & \multicolumn{1}{R{2cm}}{10.40-11.25}
      & \multicolumn{1}{R{2cm}}{11.30-12.15 }
      & \multicolumn{1}{R{2cm}}{12.20-1.05 }
      & \multicolumn{1}{R{2cm}}{1.05-1.30}
      & \multicolumn{1}{R{2cm}}{1.30-2.15}
      & \multicolumn{1}{R{2cm}}{2.30-3.05}
      & \multicolumn{1}{R{2cm}}{3.10-3.55}
      & \multicolumn{1}{R{2cm}}{4.00-4.45}\\
    \cmidrule(rl){1-1} \cmidrule(rl){2-2} \cmidrule(rl){3-3} \cmidrule(rl){4-4} 
    \cmidrule(rl){5-5} \cmidrule(rl){6-6} \cmidrule(rl){7-7} \cmidrule(rl){8-8} 
    \cmidrule(rl){9-9} \cmidrule(rl){10-10}   \cmidrule(rl){11-11}   
    Sun &     & 717 & 717 &     &     & * &     &    &    &   \\  
    Mon & 715 & 715 & 711 & 711 & 712 & * & 712 & 719&719 &   \\  
    Tue &     &     &     &     &     & * &     & 716&716 &   \\  
    Wed &     & 713 & 714 & 714 & 714 & * & 717 & 717&719 &719\\  
    Thu &     &     &     &     &     & * & \#\   & \#\  & \#\ & \#\  \\
    \#\ = Thesis&&&&&&&&&&\\ 
  \bottomrule
  \end{tabular}
\end{table}
\end{document}

感谢@GonzaloMedina---

https://tex.stackexchange.com/a/14742/197451

和@GuilhermeZanotelli---

https://tex.stackexchange.com/a/329740/197451

答案4

另外两个示例,均减少了页边距:

  • 使用tabularx[table]{xcolor}包装和\small字体大小

在此处输入图片描述

(红线表示文字边框)

  • 使用sidewaystable和包装tabularx[table]{xcolor}

在此处输入图片描述

(红线表示页面布局)

\documentclass{article}
\usepackage[margin=25mm]{geometry}
\usepackage[table]{xcolor}
\usepackage{rotating}
\usepackage{tabularx}

%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\begin{document}
    \begin{table}
    \small 
\renewcommand\arraystretch{1.2}
\rowcolors{1}{gray!30}{white}
    \begin{tabularx}{\linewidth}{| l | *{10}{>{\centering\arraybackslash}X|} }
    \cline{2-11}
\multicolumn{1}{c|}{}
    & 9.00 - 9.45 & 9.50 - 10.35 & 10.40 - 11.25 & 11.30 - 12.15 & 12.20 - 1.05
    & 1.05 - 1.30 & 1.30 - 2.15  & 2.30 - 3.05   & 3.10 - 3.55   & 4.00 - 4.45 \\
   \hline
Sun &           & 717        & 717         &             &            
    & *         &            &             &             &           \\
Mon & 715       & 715        & 711         & 711         & 712       
    & *         & 712        & 719         & 719         &           \\
Tue &           &            &             &             &            
    & *         &            & 716         & 716         &           \\
Wed &           & 711        & 713         & 714         & 714        
    & *         & 717        & 717         & 719         & 719       \\
Thu &           &            &             &             &           
    & *         & Thesis     & Thesis      & Thesis      & Thesis   \\
    \hline
    \end{tabularx}
\end{table}

\begin{sidewaystable} 
\renewcommand\arraystretch{1.2}
\setlength\tabcolsep{3pt}
\rowcolors{1}{gray!30}{white}
    \begin{tabularx}{\linewidth}{| l | *{10}{>{\centering\arraybackslash}X|} }
    \cline{2-11}
\multicolumn{1}{c|}{}
    & 9.00 - 9.45 & 9.50 - 10.35 & 10.40 - 11.25 & 11.30 - 12.15 & 12.20 - 1.05
    & 1.05 - 1.30 & 1.30 - 2.15  & 2.30 - 3.05   & 3.10 - 3.55   & 4.00 - 4.45 \\
    \hline
Sun &           & 717        & 717         &             &
    & *         &            &             &             &           \\
Mon & 715       & 715        & 711         & 711         & 712
    & *         & 712        & 719         & 719         &           \\
Tue &           &            &             &             &
    & *         &            & 716         & 716         &           \\
Wed &           & 711        & 713         & 714         & 714
    & *         & 717        & 717         & 719         & 719       \\
Thu &           &            &             &             &
    & *         & Thesis     & Thesis      & Thesis      & Thesis   \\
    \hline
    \end{tabularx}
\end{sidewaystable}
\end{document}

相关内容