我正在尝试使用 Latex 创建试卷。下面列出了首页预期页眉的示例副本。注意:图像位于“首页页眉”上方。您能否建议,我如何在页眉中添加表格,并在左侧添加图像,如下所示。有没有推荐的软件包?
答案1
将表保存在一个框中并\usebox
在标题中调用它。
在此示例中,我使用了tabularx
包,因为这样您就可以强制表格适合页面的宽度。我还使用了包multirow
来允许图像跨越表格的多个行。强制高度有点困难。因此,我尝试了几个重置值\arraystretch
和包含图像的高度,以使外观看起来非常合适。
另外,我不确定您希望如何放置标题。我已将密钥传递includehead
给geometry
包以将标题嵌入文本主体中。不必这样做,否则您必须调整位置。或者您可以制作top=0.5in
或类似的东西以获得更好的标题和边距外观。
\documentclass{article}
\usepackage[margin=1in,headheight=5\baselineskip,headsep=1\baselineskip,includehead]{geometry}
\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{multirow}
%% set up and width for the tabularx environment to expand and fit to.
\newlength{\headerwidth}
\setlength{\headerwidth}{\textwidth}
\newsavebox{\myheader}
\begin{lrbox}{\myheader}%
\begin{minipage}[b]{\headerwidth}
\renewcommand{\arraystretch}{1.29}%
\begin{tabularx}{\headerwidth}{|@{}c@{}|c|X|c|}\hline
\multirow{3}{*}{\includegraphics[height=0.65in]{example-image-a}}
& \multicolumn{2}{c|}{ TEXT ONE VALUE } & Text Four \\\cline{2-3}
& \multirow{2}{*}{1234} & \centering\textbf{Text two} & \\\cline{3-3}
& & \centering\textbf{Text Three} & \\\hline
\end{tabularx}
\par
\bfseries
Time: 45 Min \hspace*{\fill}
Date: \hspace*{\fill}
Marks:45
\end{minipage}
\end{lrbox}
%% Setting up the header
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\lhead{}
\chead{\usebox{\myheader}}
\rhead{}
\lfoot{}
\cfoot{}
\rfoot{}
\usepackage{lipsum}
\begin{document}
\lipsum[1-3]
\end{document}
附录
multirow
我对这个包没有按照我希望的方式排列东西感到有点沮丧。所以这里有一个避免使用这个multirow
包的例子。相反,我用它\raisebox
来调整图像和数字的位置1234
。
我想让图片居中。由于图片的基线位于图形底部,我过去常常\raisebox
将图片的高度提高一半。为了防止这影响图片的高度当前的行,我使用可选参数来\raisebox
确保它没有高度或深度。
此外,为了帮助保存为了使行的外观统一,我创建了一些支柱。由于没有更好的名字,我称之为水平的“支柱”(请有人告诉我们这种占据水平空间的隐形盒子的正确术语)。
\documentclass{article}
\usepackage[margin=1in,top=0.5in,headheight=5\baselineskip,headsep=1\baselineskip,includehead]{geometry}
\usepackage{tabularx}
\usepackage{graphicx}
%% some invisible "struts" to help define the structures and row heights.
\newcommand{\aevstrut}{\rule{0pt}{2.9ex}}
\newcommand{\aehstrut}{\rule{0.45em}{0pt}}
\newcommand{\textfour}{%
\begin{tabular}{|c|c|c|c|}
\aevstrut\aehstrut &
\aehstrut &
\aehstrut &
\aehstrut \\\hline
\end{tabular}}
%% set up and width for the tabularx environment to expand and fit to.
\newlength{\headerwidth}
\setlength{\headerwidth}{\textwidth}
\newsavebox{\myheader}
\begin{lrbox}{\myheader}%
\begin{minipage}[b]{\headerwidth}
\renewcommand{\arraystretch}{1.29}%
\begin{tabularx}{\headerwidth}{|@{}c@{}|c|X|c|}\hline
& \multicolumn{2}{c|}{ TEXT ONE VALUE } & {\aevstrut}Text Four \\\cline{2-3}
\raisebox{\dimexpr0.73ex-0.5\totalheight\relax}[0pt][0pt]
{\includegraphics[height=\dimexpr0.65in+1.5ex\relax]{example-image-a}}%
& & \centering\textbf{TEXT TWO} & {\aevstrut}\textfour \\\cline{3-3}
& \raisebox{2.5ex}[0pt][0pt]{1234} & \centering\textbf{TEXT THREE} & {\aevstrut} \\\hline
\end{tabularx}
\vspace{-0.5ex}\par
\bfseries
Time: 45 Min \hspace*{\fill}
Date: \hspace*{\fill}
Marks:45
\end{minipage}
\end{lrbox}
%% Setting up the header
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\lhead{}
\chead{\usebox{\myheader}}
\rhead{}
\lfoot{}
\cfoot{}
\rfoot{}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\end{document}