表格中的水平对齐问题,v2

表格中的水平对齐问题,v2

这是另一个关于“表格中的对齐问题“。

代码

\documentclass[
  a4paper,
  12pt,
  landscape,
  danish
]{article}


\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[
  hmargin = 1.561cm,
  vmargin = 3cm
]{geometry}
\usepackage{fancyhdr}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{microtype}


\newcommand*\mcA[1]{\multicolumn{3}{@{}c@{\mlrA}}{#1}}
\newcommand*\mcB[1]{\multicolumn{3}{@{}l@{\mlrA}}{#1}}
\newcommand*\mcC[1]{\multicolumn{3}{@{}c@{\mlrB}}{#1}}
\newcommand*\Alignment[1]{%
  \multicolumn{1}{r@{}}{\llap{\makebox[\widthof{--}][c]{#1}}}}

\def\mlrA{\hskip 2.5em}
\def\mlrB{\hskip 0.8em}
\def\mlrC{3ex}

\DisableLigatures[f]{encoding = T1}

\pagestyle{fancy}
\renewcommand*\headrulewidth{0pt}
\setlength\headheight{14.5pt}
\lhead{}
\rhead{}
\cfoot{}


\begin{document}

\begin{center}
  \textbf{\Huge Skema~2015--2016}
  \vspace{10ex}

  \renewcommand*{\arraystretch}{1.2}
  \begin{tabular}{
         S[table-format = 2] @{\mlrB}
         r @{\,--\,}
    *{5}{
         l @{\mlrA}
         l @{\mlrB}
         l @{\mlrB}
        }
         l
  }
   \toprule
    {Lektion}
    & \multicolumn{2}{@{}c@{\mlrA}}{Tidspunkt}
    & \mcA{Mandag}
    & \mcA{Tirsdag}
    & \mcA{Onsdag}
    & \mcA{Torsdag}
    & \mcA{Fredag} \\
   \midrule
     1 &  8:10 &  8:55 &     &      &          & 7.C & F/K  & fys                & 5.A & MAT  & 09 &     &     &           & 7.C & MAT & 22 \\[\mlrC]
     2 &  8:55 &  9:40 &     &      &          & 7.C & F/K  & fys                & 5.A & N/T  & 09 &     &     &           & 7.C & STU & 22 \\[\mlrC]
     3 & 10:00 & 10:45 & 8.  & IDR  & hal/gym  & 5.A & MAT  & 09                 & 7.C & STU  & 22 & 7.C & BIO & bio       & \mcC{Fagdag}   \\[\mlrC]
     4 & 10:45 & 11:30 & 8.  & IDR  & hal/gym  & 5.A & MAT  & 09                 &     &      &    & 7.C & BIO & bio       & \mcC{Fagdag}   \\[\mlrC]
     5 & 11:30 & 12:00 & 5.A & FORD & 09       & 7.C & FORD & 22                 & 5.A & FORD & 09 &     &     &           & \mcC{Fagdag}   \\[\mlrC]
     6 & 12:40 & 13:25 & 7.C & GEO  & 22       & 5.A & HIS  & 09                 & 7.C & MAT  & 22 &     &     &           & \mcC{Fagdag}   \\[\mlrC]
     7 & 13:25 & 14:10 & 7.C & GEO  & 22       & 5.A & HIS  & 09                 & 7.C & MAT  & 22 &     &     &           & \mcC{Fagdag}   \\[\mlrC]
     8 & 14:25 & 15:10 & 7.C & MAT  & 22       &     &      &                    &     &      &    & \mcB{Møde: Rød fløj}  & \multicolumn{3}{@{}c@{\mlrB}}{(Fagdag)} \\[\mlrC]
     9 & 15:10 & 16:10 & \mcA{Møde: 7.~årgang} & \mcB{(Møde, koord.: Hvid fløj)} &     &      &    & \mcB{Møde: 5.~årgang} &     &     &    \\[\mlrC]
    10 & 16:00 & 17:00 &     &      &          & \mcB{(Møde, intern: Hvid fløj)} &     &      &    &     &     &           &     &     &    \\
   \bottomrule
  \end{tabular}
\end{center}

\end{document}

输出

问题

我如何使标记的文本相对于Tirsdag上方居中?

答案1

我认为有必要重新考虑表格的概念。如果由三个“子列”组成的列被排版为单独的表格,并包含在主表中,并包含在涵盖大部分所属列的所属多行单元格中,那么居中问题可能更容易解决。

考虑到上述考虑的代码给出:

在此处输入图片描述

垂直线是故意放置的,用于显示列居中程度。它们还可以最大限度地减少主观印象,即列居中程度如何。在最终版本中,可以省略它们。

\documentclass[a4paper,12pt,landscape,
%               danish
               ]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[hmargin = 1.561cm,vmargin = 3cm]{geometry}
\usepackage{booktabs,multirow}
\usepackage{siunitx}
\usepackage{microtype}

\DisableLigatures[f]{encoding = T1}

\begin{document}
    \begin{center}
\textbf{\Huge Skema~2015--2016}
\vspace{10ex}

\renewcommand*{\arraystretch}{1.5}
\setlength{\tabcolsep}{7pt}    
\begin{tabular}{|@{\ }S[table-format = 2] 
                    |r @{\,--\,}l        
                    *{5}{|c}@{\ }|}
    \toprule
{Lektion}
    &       \multicolumn{2}{c|}{Tidspunkt}
            &       Mandag
                    &       Tirsdag
                            &       Onsdag
                                    &       Torsdag
                                            &   Fredag  \\
    \midrule
 1 &  8:10 &  8:55  &       &   \multirow{7}*{
    \begin{tabular}{rll}
    7.C &   F/K     &   fys \\
    7.C &   F/K     &   fys \\
    7.C &   MAT     &   09  \\
    7.C &   MAT     &   09  \\
    7.C &   FORD    &   09  \\
    7.C &   HIS     &   09  \\
    7.C &   HIS     &   09        
    \end{tabular}     }               &   \multirow{7}*{
            \begin{tabular}{rll}
            5.A &   MAT     &   fys \\
            5.A &   N/T     &   fys \\
            5.A &   STU     &   09  \\
                &&  \vphantom{09}   \\
            5.A &   FORD    &   09  \\
            5.A &   MAT     &   09  \\
            5.A &   MAT     &   09
            \end{tabular}     }           &       &   \multirow{2}*{
                    \begin{tabular}{rll}
                    7.C &   MAT     &   22 \\
                    7.C &   MAT     &   22
                    \end{tabular}     }                     \\%end of row
 2 &  8:55  &  9:40 &   \multirow{6}*{
    \begin{tabular}{rll}
    8.  &   IDR     &   fys \\
    8.  &   IDR     &   fys \\
    8.  &   FORD    &   09  \\
    8.  &   GEO     &   09  \\
    8.  &   GEO     &   09  \\
    8.  &   MAT     &   09  
    \end{tabular}     }     &       &       &       &           \\
 3 & 10:00  & 10:45 &       &       &       &   \multirow{2}*{
            \begin{tabular}{rll}
            7.C &   BIO     &   bio \\
            7.C &   BIO     &   bio
            \end{tabular}     }         
        &   Fagdag  \\
 4 & 10:45  & 11:30 &       &       &       &       &   Fagdag  \\ 
 5 & 11:30  & 12:00 &       &       &       &       &   Fagdag  \\ 
 6 & 12:40  & 13:25 &       &       &       &       &   Fagdag  \\ 
 7 & 13:25  & 14:10 &       &       &       &       &   Fagdag  \\ 
 8 & 14:25  & 15:10 &       &       &       &       &   Fagdag  \\ 
 9 & 15:10  & 16:10 &   Møde: 7.~årgang
                            &   (Møde, koord.: Hvid fløj)
                                    &       &   Møde: Rød fløj
                                                    &           \\
10 & 16:00  & 17:00 &      &   (Møde, koord.: Hvid fløj)
                                    &       &   Møde: 5.~årgang
                                                    &           \\
   \bottomrule
  \end{tabular}
\end{center}
    \end{document}    

在代码中,我省略了序言中所有未使用的包、所有距离的定义和multicolumns,因为它们不再需要,并添加了包multirow

行距可以通过 来设置,\arraystretch测试值1.5是一个不错的选择。同样,列距可以通过 来设置\tabcolsep。选择7pt似乎就足够了。

特定单元格的内容可能不正确。复制过程中出现错误是显而易见的 :-(。

我希望我能从另一种角度提供如何解决您的问题的观点。

相关内容