我想通过 exam 包制作一份数学试卷,但在第一页的左边要有学生的信息。我们可以通过旋转线来处理这个问题。但是,我必须打印的是表格。顺便说一句,如果我在 minipage 环境中使用表格环境,会出现一些错误。这是我应该通过 office 实现的。
这是没有考试包的代码。
\documentclass{article}
\usepackage{lipsum,tikz}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node [xshift=2cm,yshift=-1.5cm] at (current page.north west) (topleft){};
\node [xshift=2cm,yshift=1.5cm] at (current page.south west) (bottomleft){};
\draw [->] (topleft.south) -- (bottomleft.north);
\end{tikzpicture}
\begin{table}[htbp]
\centering
\caption{mytable}
\begin{tabular}{|c|}
\hline
name\\
\hline
\\
\hline
id\\
\hline
\\
\hline
subject\\
\hline
\\
\hline
\end{tabular}
\end{table}
\lipsum[1-7]
\end{document}
答案1
我会使用标准exam
方法,将其挂接到\lhead
:左标题将包含\databox
,其职责是排版具有零宽度和高度的数据框,但使用参数将其放置在左边距。然后\databox
重新定义自身以不执行任何操作。
\documentclass{exam}
\usepackage{lipsum}
\newcommand{\databox}{%
\smash{\makebox[0pt][r]{%
\begin{tabular}[t]{|c|}
\multicolumn{1}{c}{} \\[2in] % lower the box
\hline
name\\
\hline
\\[2\normalbaselineskip]
\hline
id\\
\hline
\\[1.5\normalbaselineskip]
\hline
subject\\
\hline
\\[3\normalbaselineskip]
\hline
\end{tabular}\quad
}}%
\gdef\databox{}%
}
\lhead{\databox}
\begin{document}
\lipsum[1-9]
\end{document}
答案2
我建议您设置两个minipage
环境,左边是窄环境,右边是宽环境。只要小页面的内容适合整个页面,它们就会垂直居中。在下面的示例中,小页面的宽度比设置为 3:17;显然,您可以自由选择其他比例。
然后,在左侧minipage
使用单列tabularx
环境。由于看起来不需要设置\caption
,所以我认为使用环境没有任何意义table
。
\documentclass{article}
\usepackage{lipsum,tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\noindent
\begin{minipage}{0.15\textwidth}
\renewcommand\arraystretch{4} % or some other suitable factor
\begin{tabularx}{\textwidth}{|@{}C@{}|}
\hline
Name\\ \hline
{}\\ \hline
id\\ \hline
{}\\ \hline
subject\\ \hline
{}\\ \hline
\end{tabularx}
\end{minipage}
\quad
\begin{minipage}{\dimexpr0.85\textwidth-1em\relax}
\lipsum[1-3]
\end{minipage}
\end{document}