表格内内容的放置

表格内内容的放置

请考虑以下示例:

\documentclass[
  12pt
]{article}

\usepackage[
  a3paper,
  landscape,
  hmargin = 3cm,
  vmargin = 0cm
]{geometry}
\usepackage[sc]{mathpazo}
\usepackage{
  multirow,
  ragged2e
}
\usepackage{graphicx}
\usepackage[
  locale = DE
]{siunitx}


\def\mlr{0.8}
\newcommand*\mc[2]{\multicolumn{1}{c}{#1}}
\newcommand*\mcA[2]{\multicolumn{#1}{c|}{#2}}
\newcommand*\mcB[2]{\multicolumn{#1}{p{2cm}|}{#2}}
\newcommand*\afsnit[1]{\textsl{#1}}
\newcommand*\farve{\cellcolor{black}}
\newcommand*\saenk[1]{\raisebox{-1ex}{#1}}

\pagestyle{empty}


\begin{document}

\begin{center}
\large
 \begin{tabular}{
         |>{\RaggedRight\arraybackslash}m{2.3cm}
    *{2}{|>{\centering\arraybackslash}m{1.15cm}}
    *{1}{|>{\centering\arraybackslash}m{2.3cm}}
    *{2}{|>{\centering\arraybackslash}m{1.15cm}}
   *{10}{|>{\centering\arraybackslash}m{2.3cm}}|
 }
  \hline
     \textbf{Tid}
   & \mcA{2}{\SI{75}{\minute}}
   & \SI{15}{\minute}
   & \mcA{2}{\SI{45}{\minute}}
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
   \hline
     \textbf{Sted}
   & \mcA{2}{Bog}
   & Mappe
   & \mcA{2}{Bog/comp.}
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
   \hline
     \multirow{3}{2cm}{\huge\bfseries Uge 8--9}
   & \mcB{2}{\includegraphics[width = 2.5cm]{kontext.jpg}}
   &         \includegraphics[width = 2.5cm]{tabel.jpg}
   & \mcB{2}{\includegraphics[width = 2.5cm]{rumgeometri.jpg}}
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
  \cline{2-16}
   & \mcB{2}{\afsnit{Kasser til markedet}}
   & Tabel- tr{\ae}ning
   & \mcB{2}{Under- s{\o}gelse}
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
  \cline{2-16}
   & $1$--$4$
   & $5$--$9$
   & 
   & $116$
   & $117$
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
  \hline
   Amalie
   &  
   &  
   & 
   & 
   & 
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
  \hline
 \end{tabular}
\end{center}

\end{document}

输出

图片:

上下文

表

几何学

疑问/问题

  • 我希望这三幅图像都放置在各自单元格的顶部。
  • 我希望将带有图像的单元格正下方的单元格中的文本放置在其各自单元格的顶部。
  • 我希望文本Uge 8--9在第一列的三个单元格内垂直居中。

表格根本不是我的专长,所以我真的不知道从哪里开始解决这些“问题”。

更新

使用Zarko的代码后,几乎完美;

\documentclass[
  12pt,
  danish
]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[
  a3paper,
  landscape,
  hmargin = 0.2cm,
  vmargin = 0cm
]{geometry}
\usepackage[sc]{mathpazo}
\usepackage{
  multirow,
  tabularx,
  ragged2e
}
\usepackage{mwe}
\usepackage[
  export
]{adjustbox}
\usepackage[
  table
]{xcolor}
\usepackage[
  locale = DE
]{siunitx}
\usepackage{microtype}


\def\mlr{0.37}
\newcommand*\mcA[2]{\multicolumn{#1}{c|}{#2}}
\newcommand*\mcB[2]{\multicolumn{#1}{p{2cm}|}{#2}}
\newcommand*\afsnit[1]{\textsl{#1}}
\newcommand*\navn[1]{\textsf{#1}}
\newcommand*\farveA{\cellcolor{gray}}
\newcommand*\aktivitet[3]{%
  \mcA{#1}{%
    \includegraphics[
      width = #2,
      valign = t,
      margin = 0pt 3pt 0pt 0pt
    ]{example-image-#3}%
  }%
}

\DisableLigatures[f]{encoding = T1}

\pagestyle{empty}


\begin{document}

\begin{center}
\large
\setlength\extrarowheight{3pt}
 \begin{tabular}{
        |>{\RaggedRight}p{2.3cm}
   *{2}{|>{\Centering}p{1.3cm}}
        |>{\Centering}p{2.3cm}
   *{2}{|>{\Centering}p{1.3cm}}
        |>{\Centering}p{2.4cm}
        |>{\Centering}p{1.6cm}
        |>{\Centering}p{2.8cm}
        |>{\Centering}p{2cm}
        |>{\Centering}p{3.5cm}
   *{5}{|>{\Centering}p{0.5cm}}
        |>{\Centering}p{2.4cm}|
 }
  \hline
     \textbf{Tid}
   & \mcA{2}{\SI{110}{\minute}}
   & \SI{30}{\minute}
   & \mcA{2}{\SI{80}{\minute}}
   & \SI{50}{\minute}
   & \mcA{2}{\SI{90}{\minute}}
   & \SI{30}{\minute}
   & \SI{180}{\minute}
   & \mcA{5}{\SI{30}{\minute}}
   &  \\[\mlr ex]
   \hline
     \textbf{Sted}
   & \mcA{2}{Bog}
   & Mappe
   & \mcA{2}{Bog/comp.}
   & \navn{Mat.Fessor}
   & \mcA{2}{Bog}
   & 
   & \navn{MinUddannelse}
   & \mcA{5}{Udendørs}
   & Kasse \\[\mlr ex]
   \hline
     \multirow{7}{=}{\huge\bfseries Uge 9--10}
   & \aktivitet{2}{2cm}{10x16}
   & \aktivitet{1}{2cm}{10x16}
   & \aktivitet{2}{2cm}{1x1}
   & \aktivitet{1}{1.6cm}{10x16}
   & \aktivitet{2}{2cm}{10x16}
   & \aktivitet{1}{2cm}{1x1}
   & \aktivitet{1}{2cm}{10x16}
   & \aktivitet{5}{1.8cm}{10x16}
   & \aktivitet{1}{2cm}{1x1} \\[\mlr ex]
  \cline{2-17}
   & \mcB{2}{\afsnit{Kasser til markedet}}
   & \RaggedRight Tabel\-træning
   & \mcB{2}{Undersøgelse}
   & \RaggedRight Trænings\-opgaver
   & \mcB{2}{\afsnit{Breddeopgaver}}
   & \RaggedRight Skak
   & \RaggedRight \afsnit{Vand som en ressource}
   & \mcB{5}{Lufter}
   & \RaggedRight Ekstra\-opgaver \\[\mlr ex]
  \cline{2-17}
   & $1$--$4$
   & $5$--$9$
   & 
   & $116$
   & $117$
   & 
   & $1,4,7,8$
   & $2,3,10,11,15$
   & 
   & 
   & \mcB{5}{}
   &  \\[\mlr ex]
  \hline
   Amalie
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Arthur
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Asker
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Augusta
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Benjamin
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Camilla
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Carla
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Casper
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Cecilie
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Jessica
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Kasper
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Katrine
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Lea
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Liv
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Lukas
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Maria
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Marius
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Mathilde
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Mikkel B.
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Mikkel K.
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Mikkel P.
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Mille
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Philip
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Shiyar
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Sofie
   &  
   &  
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
   Solveig
   & 
   & 
   & \farveA
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   & 
   &  \\[\mlr ex]
  \hline
 \end{tabular}
\end{center}

\end{document}

唯一的小问题是,我得到了两个

过满\hbox

警告,但我不知道如何消除它们。

答案1

你有更多问题姆韦

  • 定义和使用multicolumn单元格不匹配。
  • 估计行数跨度multirow
  • 等等(我只关注前两个问题)

在此处输入图片描述

这就是你要找的吗?

在您的姆韦

  • 用于代替\mcA图像\mcB
  • 图像宽度减小到 2 厘米(从 2.5 厘米减小到比规定\mcB宽度更宽)
  • 添加了一个包,adjustbox通过它可以将图像基线从底部更改为顶部,并在图像周围添加边距
  • 对于multirow单元格使用{=}超越列格式的选项
  • 我估计 `multirow` 跨越的行数为 9 (其中 3 行来自文本,6 行来自图像高度)
  • 添加是\extrarowheight为了更好地垂直间隔单元格的内容

\documentclass[12pt]{article}

\usepackage[a3paper,
            landscape,
            hmargin = 0.2cm,
            vmargin = 0.5cm
            ]{geometry}
\usepackage[sc]{mathpazo}
\usepackage{multirow, tabularx}
\usepackage{ragged2e}
\usepackage[demo]{graphicx}
\usepackage[export]{adjustbox}
\usepackage[locale = DE]{siunitx}

\def\mlr{0.8}
\newcommand*\mc[2]{\multicolumn{1}{c}{#1}}
\newcommand*\mcA[2]{\multicolumn{#1}{c|}{#2}}
\newcommand*\mcB[2]{\multicolumn{#1}{p{2cm}|}{#2}}
\newcommand*\afsnit[1]{\textsl{#1}}
\newcommand*\farve{\cellcolor{black}}
\newcommand*\saenk[1]{\raisebox{-1ex}{#1}}

\begin{document}
\pagestyle{empty}

\begin{center}
\large
\setlength\extrarowheight{2pt}
 \begin{tabular}{
         |>{\RaggedRight}p{2.3cm}
    *{2}{|>{\Centering}p{1.15cm}}
    *{1}{|>{\Centering}p{2.3cm}}
    *{2}{|>{\Centering}p{1.15cm}}
   *{10}{|>{\Centering}p{2.3cm}}|
 }
  \hline
     \textbf{Tid}
   & \mcA{2}{\SI{75}{\minute}}
   & \SI{15}{\minute}
   & \mcA{2}{\SI{45}{\minute}}
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
   \hline
     \textbf{Sted}
   & \mcA{2}{Bog}
   & Mappe
   & \mcA{2}{Bog/comp.}
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
   \hline
     \multirow{9}{=}{\huge\bfseries Uge 8--9}
   & \mcA{2}{\includegraphics[width = 2cm,valign=t,
                              margin=0pt 3pt 0pt 3pt
                              ]{kontext.jpg}}
   &         \includegraphics[width = 2cm,valign=t]{tabel.jpg}
   & \mcA{2}{\includegraphics[width = 2cm,valign=t]{rumgeometri.jpg}}
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
  \cline{2-16}
   & \mcB{2}{\afsnit{Kasser til markedet}}
   & Tabel- tr{\ae}ning
   & \mcB{2}{Under- s{\o}gelse}
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
  \cline{2-16}
   & $1$--$4$
   & $5$--$9$
   &
   & $116$
   & $117$
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
  \hline
   Amalie
   &
   &
   &
   &
   &
   &  5
   &  6
   &  7
   &  8
   &  9
   & 10
   & 11
   & 12
   & 13
   & 14 \\[\mlr ex]
  \hline
 \end{tabular}
\end{center}

\end{document}

编辑: 如果所有图像都具有相同的参数(宽度、对齐方式、边距),您可以定义新的命令,使在表格中插入图像的代码更短:

\newcommand\insertimage[1]{%
    \includegraphics[width=22mm,
                     valign=t,
                     margin=0pt 3pt 0pt 3pt]{#1}
                        }

用法如下:

   ...
   \hline
     \multirow{9}{=}{\huge\bfseries Uge 8--9}
   & \mcA{2}{\insertimage{kontext.jpg}}
   &         \insertimage{tabel.jpg}
   & \mcA{2}{\insertimage{rumgeometri.jpg}}
   &  5
   &  6
   ...

答案2

您发现的“故障”我无法完全重现(正如我在上面的评论中所说,它不会损害您的表格外观)。在更仔细地检查您的表格后,请向我展示一些如何改进它的可能性:

  • 从添加的包中makecell使用:
    • makecell用于设置具有两行文本的单元格的宏(它删除了行中其他单元格中的坏框和垂直中心内容)
    • makegapedcells用于在单元格内容中添加更多垂直空间的宏
  • 将列宽确定为表格宽度的分数后,表格宽度(几乎)等于文本宽度(同时仍然忽略由于计算精度导致的微小差异)
  • 因为所有图像都有相同的宽度(否则它们不适合单元格)是合理的,使用新命令插入图像,正如我在上一个答案中所建议的那样

由于重新设计您的表格花费了我相当长的时间和精力,而且这不是问题的第一个版本所关注的,所以我决定值得写一个新的答案。

姆韦下面我删除了你的所有未使用的定义和包姆韦并添加showframe展示页面布局的包(用红线表示)。

在此处输入图片描述

注意:您选择的边距(在我看来)非常不寻常。您将难以打印此表格(在页面边框上有一条线,这会给大多数打印机带来问题)。

\documentclass[12pt]{article}
\usepackage[a3paper,
            landscape,
            hmargin = 2mm,
            vmargin = 0mm
            ]{geometry}
\usepackage[sc]{mathpazo}
\usepackage{microtype}

\usepackage{ragged2e}
\usepackage{makecell, multirow}
\setcellgapes{3pt}
\newcommand\mcx[1]{%
    \multicolumn{2}%
                {>{\Centering}p{\dimexpr0.0714\linewidth-2\tabcolsep-1.06\arrayrulewidth\relax}|}%
                {#1}}

\usepackage[demo]{graphicx}
\usepackage[export]{adjustbox}
\newcommand\insertimage[1]{\includegraphics[width=20mm, valign=t]{#1}}

\usepackage[locale=DE]{siunitx}

%-------------------------------- show page layout, only for test
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.5pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\begin{document}
    \centering
\setlength\tabcolsep{4pt}
\makegapedcells
\begin{tabular}{
     |>{\RaggedRight\bfseries}%
                   p{\dimexpr0.0714\linewidth-2\tabcolsep-1.06\arrayrulewidth\relax}
*{2}{|>{\Centering}p{\dimexpr0.0357\linewidth-2\tabcolsep-1.06\arrayrulewidth\relax}}
     |>{\Centering}p{\dimexpr0.0714\linewidth-2\tabcolsep-1.06\arrayrulewidth\relax}
*{2}{|>{\Centering}p{\dimexpr0.0357\linewidth-2\tabcolsep-1.06\arrayrulewidth\relax}}|
*{10}{>{\Centering}p{\dimexpr0.0714\linewidth-2\tabcolsep-1.06\arrayrulewidth\relax}|}
                }
    \hline
Tid     & \mcx{\SI{75}{\minute}}
        & \SI{15}{\minute}
        & \mcx{\SI{45}{\minute}}
        & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16  \\  \hline
Sted    & \mcx{Bog}
        & Mappe
        & \mcx{Bog/comp.}
        & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16  \\  \hline
\multirow{9}{=}{\huge\bfseries Uge 8--9}
        & \mcx{\insertimage{kontext.jpg}}
        &      \insertimage{tabel.jpg}
        & \mcx{\insertimage{rumgeometri.jpg}}
        & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16  \\  \cline{2-16}
   & \mcx{\itshape \makecell{Kasser til\\ markedet}}
   &      \makecell{Tabel-\\ tr{\ae}ning}
   & \mcx{\makecell{Under-\\ s{\o}gelse}}
        & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16  \\  \hline
   & 1 -- 4
   & 5 -- 6
   &
   & 116
   & 117
        & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16  \\  \hline
Amalie
   &
   &
   &
   &
   &
        & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16  \\  \hline
\end{tabular}

\end{document}

相关内容