大家早上好(UTC+2),
我需要为工作写几份文件。所有文件都采用相同的布局。他们给了我一个 MS Word 模板,但我想用 Latex 来写,因为我想练习一下。
他们的页脚布局很奇怪,一点也不美观,但我能做什么呢?必须这样。这是页脚的屏幕截图。
我设法在 latex 中创建了一个多行页脚(见下面的代码),其中包含所有必要的信息,但它必须是那个确切的页脚。我只是不知道如何在页脚中放置这样的表格。
\documentclass[a4paper,12pt]{article}
\usepackage[left=2cm, right=2cm]{geometry}
\usepackage{graphicx}
\usepackage[mongolian,english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage{fancyhdr}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{blindtext}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{color}
\graphicspath{ {./images/} }
\setlength{\headheight}{40pt}
\pagestyle{fancy}
\fancyhf{} % clear all fields
\fancyfoot[L]{Document-Version: \\ XXXXXXX-YY \\ \ \\ CREATED: XX.YY.ZZZZ \\}
\fancyfoot[R]{----- \\ VN \\ \ \\ Page \thepage}
\fancyfoot[C]{VN}
\begin{document}
....
\end{document}
我发现这链接,但它并没有真正帮助我太多。至少我无法弄清楚如何操纵代码,以便它看起来像屏幕截图中那样。我对乳胶还很陌生,但我已经花了几个小时尝试了。所以如果有人有想法或提示想和我分享,请随时告诉我。非常感谢
答案1
如果您不需要fancyhdr
任何标题,您也可以不要使用fancyhdr
,而是重新定义\@oddfoot
自己。
以下代码实现了这一点,并使用了tabularx
全宽表格。前两个单元格被放大,其他单元格被缩小,以便能够容纳较长的“文档版本”和可能的日期。您可以调整这些放大率,只需确保之前使用的数字总数与\hsize
列数相匹配(因此此处为 6)。没有数字算作 1。
\documentclass[a4paper,12pt]{article}
\usepackage[left=2cm, right=2cm]{geometry}
\usepackage{tabularx}
\usepackage{lastpage}
\month=11 % November has the longest name (dealing with edge cases for size)
\newcommand*\clineReveal
{%
\noalign{\vskip\arrayrulewidth}%
}
\makeatletter
\def\@oddfoot
{%
\footnotesize
\begin{tabularx}{\linewidth}
{
|*2{>{\hsize=1.3\hsize\linewidth=\hsize}X|}
*4{>{\hsize=.85\hsize\linewidth=\hsize}X|}
}
\hline
Document-Version & Date & \ldots & \ldots & \ldots & Page \thepage \\
\cline{1-5}\clineReveal
xxxxx-zz & \today & V.N. & V.N. & V.N. & of \pageref{LastPage}\\
\hline
\end{tabularx}%
}
\let\@evenfoot\@oddfoot
\makeatother
\usepackage{duckuments}% for dummy content
\begin{document}
\duckument
\end{document}
解释:
\@oddfoot
是标准类用于排版页脚(以及文档\@evenfoot
中的twoside
)的宏。
tabularx
是一个类似表格的环境,它将表格设置为指定的宽度。X
类型列是宽度灵活的列(它会变得足够大,使表格跨越请求的宽度,如果X
指定了多个列,则空间会均匀分割)。
序言>{...}
中的tabularx
是要插入到该列每个单元格开头的代码。\hsize=1.3\hsize
将列放大 30%。\linewidth=\hsize
还设置\linewidth
为指定的大小。总之,>{\hsize=<num>\hsize\linewidth=\hsize}X
这是不均匀分割tabularx
文档中可用空间的推荐方法。
我添加了,\clineReveal
因为默认情况下 a\cline
不占用垂直空间(这与普通的 不一致\hline
),所以添加了 a所占用的\clineReveal
垂直空间。\hline
我使用该lastpage
包来获取在第二次运行中定义并可以打印的总页数\pageref{LastPage}
。