尝试在表格内包含垂直填充时出现神秘错误

尝试在表格内包含垂直填充时出现神秘错误

我正在尝试制作一个首页(用于考试),并且必须遵循官方规范。我正在使用表格环境,但需要在表格中填写一些较大的垂直空白。我尝试使用 \vspace*{\fill} 来做到这一点,但这会产生一些非常奇怪的错误,我不明白发生了什么!错误消息:

这是一个有效的例子:

\documentclass[norsk,a4paper,12pt,twoside,pdftex]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tabularx}% we use array in place of tabularx because
%tabularx do not treat \multicolumn well enough.  Then we do have to
%measure length ourself.  We keep the package because we use  one of
%its commands
\usepackage{array}  
\usepackage{makecell}%used for \macecell command, allowing for
                     %linebreaks within tabular
\usepackage{fancyhdr}
\usepackage{geometry}% Bruker kommandoene \newgeometry og \restoregeometry  
\usepackage{mathptmx}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand\arraystretch{2.0}% (1.0 is for standard spacing)

\frenchspacing

\begin{document}

\newgeometry{left=1.5cm,right=1.1cm,top=1.5cm}
\begin{minipage}[c]{0.35\linewidth}
  %\includegraphics[scale=0.8,clip]{hbv}\hfill 
\end{minipage}\hfill 
\begin{minipage}[c]{0.60\linewidth}
\hfill\textsc{BOKMÅL}\\ \vfill 
{\Large\textbf{EKSAMENSFORSIDE} \\[0.5cm]   
Skriftlig eksamen med tilsyn }
\end{minipage}\thispagestyle{empty}  \\[4ex]
\setcounter{page}{0}
\noindent
\begin{tabular}{|>{\raggedright\arraybackslash\Large}p{7.2truecm}|>{\raggedright\arraybackslash\Large}p{4.7truecm}|
>{\raggedright\arraybackslash\Large}p{6.1truecm}|}\firsthline
\textbf{Emnekode:} \textsf{\normalsize  G1MAT201} &
\multicolumn{2}{l|}{\Large\textbf{Emnenavn:} \textsf{\normalsize Tall, tallteori,
    funksjoner og fagdidaktisk forskning} 
} \\    \hline
\multicolumn{3}{|l|}{\Large\textbf{Tillatte hjelpemidler
    (jfr. emnebeskrivelse):} \textsf{\normalsize  Tegne- og skrivesaker}    }
\\    \hline    
\multicolumn{3}{|l|}{\Large\textbf{Opplysninger om vedlegg:}
  \textsf{\normalsize   to sider sist i oppgavesettet   } }      \\      \hline   
\multicolumn{3}{|l|}{\Large\textbf{Merknader:}
  \makecell[tl]{{}\sffamily\normalsize  \\ Begynn hver
    oppgave på nytt ark.   \\
     Vekt (sum \textbf{100}) gitt ved hver deloppgave. \\   
     Alle svar skal begrunnes.     \\
     Alle mellomregninger skal vises. } }    \\                     \hline
\multicolumn{3}{c}{\begin{minipage}{\vspace*{\fill{}}}\end{minipage}}      \\      \hline  
\multicolumn{3}{|l|}{ 
 \makecell[{{>{\raggedright\arraybackslash\sffamily\normalsize}{p{6.0truecm}}
>{\raggedright\arraybackslash\sffamily\normalsize}{p{6.0truecm}}
>{\raggedright\arraybackslash\sffamily\normalsize}{p{6.0truecm}}}}]{%
Kryss av for type eksamenspapir                \\
Ruter   X      &   Linjer    &   Blanke   }  }            \\      \lasthline
\end{tabular}    \\[4ex]
{\centering \small \textbf{\textsc{kandidaten må selv kontrollere at
      oppgavesettet er fullstendig}}\\}
\newpage\restoregeometry   
\end{document} 

有任何想法吗?

答案1

你有

\begin{minipage}{\vspace*{\fill{}}}

该参数\fill{}应该\fill在参数中,\vspace {}在长度表达式中是不合法的),但参数是宽度小页面应该有一个长度,就像3cm它不能有水平或垂直空间命令一样。

这是错误的原因,但我不确定我能否猜出其意图,所以无法提供修复。

答案2

顺便说一下,这是我的最终解决方案,是最小示例的更正版本。现在它产生了我想要的结果:

\documentclass[norsk,a4paper,12pt,twoside,pdftex]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{array}  
\usepackage{makecell}%used for \macecell command, allowing for
                     %linebreaks within tabular
\usepackage{fancyhdr}
\usepackage{geometry}% Bruker kommandoene \newgeometry og \restoregeometry  
\usepackage{mathptmx}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand\arraystretch{2.0}% (1.0 is for standard spacing)

\frenchspacing

\begin{document}

\newgeometry{left=1.5cm,right=1.1cm,top=1.5cm}
\begin{minipage}[c]{0.35\linewidth}
  %\includegraphics[scale=0.8,clip]{hbv}\hfill 
\end{minipage}\hfill 
\begin{minipage}[c]{0.60\linewidth}
\hfill\textsc{BOKMÅL}      \vfill 
{\Large\textbf{EKSAMENSFORSIDE} \\[0.5cm]   
Skriftlig eksamen med tilsyn }
\end{minipage}\thispagestyle{empty}  \\[4ex]
\setcounter{page}{0}
\noindent
\begin{tabular}{|>{\raggedright\arraybackslash\Large}p{7.2truecm}|>{\raggedright\arraybackslash\Large}p{4.7truecm}|
>{\raggedright\arraybackslash\Large}p{6.1truecm}|}\firsthline
\textbf{Emnekode:} \textsf{\normalsize  G1MAT201} &
\multicolumn{2}{l|}{\Large\textbf{Emnenavn:} \textsf{\normalsize Tall, tallteori,
    funksjoner og fagdidaktisk forskning} 
} \\    \hline
\multicolumn{3}{|l|}{\Large\textbf{Tillatte hjelpemidler
    (jfr. emnebeskrivelse):} \textsf{\normalsize  Tegne- og skrivesaker}    }
\\    \hline    
\multicolumn{3}{|l|}{\Large\textbf{Opplysninger om vedlegg:}
  \textsf{\normalsize   to sider sist i oppgavesettet   } }      \\      \hline   
\multicolumn{3}{|l|}{\Large\textbf{Merknader:}
  \makecell[tl]{{}\sffamily\normalsize  \\ Begynn hver
    oppgave på nytt ark.   \\
     Vekt (sum \textbf{100}) gitt ved hver deloppgave. \\   
     Alle svar skal begrunnes.     \\
     Alle mellomregninger skal vises. } }    \\                     \hline
\multicolumn{3}{c}{}
\\[10cm]      \hline  
\multicolumn{3}{|l|}{\sffamily\normalsize Kryss av for tpe
  eksamenspapir}    \\  
\multicolumn{3}{|l|}{Ruter  \textbf{\Large X} \hfill  Linjer  \hfill  Blanke }
\\     \lasthline   
\end{tabular}    \\[4ex]
{\centering \small \textbf{\textsc{kandidaten må selv kontrollere at
      oppgavesettet er fullstendig}}\\}
\newpage\restoregeometry   
\end{document} 

相关内容