У меня есть документ, который выдает что-то вроде этого:
Раздел, выделенный зеленым цветом, может менять свой размер в зависимости от количества элементов в списке.
Я хочу, чтобы разделы «Доставка по адресу» и «Дополнительная информация» всегда находились внизу страницы, независимо от размера зеленого раздела.
Я предполагаю, что мне нужно сделать это с помощью нижних колонтитулов? Я читал о нижних колонтитулах, но не уверен, как сделать нижний колонтитул мини-страницей, как эта:
\begin{minipage}[t]{.3\textwidth}
{\bf SHIP TO:}\\
\textit{[email protected]}
\end{minipage}
\hfill
\begin{minipage}[t]{0.4\textwidth}
{\bf ADDITIONAL INFORMATION:}\\
\textit{We accept payment by cash or cheque. Payment Is due upon receipt, and must be paid in full within {\bf 30 days}.}
\end{minipage}
ВЕСЬ ТЕКСТОВЫЙ ФАЙЛ:
\documentclass[letterpaper,currency=pound]{dapper-purchase_order}
\defaultfontfeatures{ Path = ./Fonts/ }
%\usepackage{fontawesome}
\definecolor{Mblue}{RGB}{231,255,229}
%
%%%%%%%%%%%%%%%%%% HEADING SECTION %%%%%%%%%%%%%%%%%%
\newcommand{\purchaseOrderNo}{31401} % Invoice Number
\newcommand{\Date}{01/01/2018} % Date
\newcommand{\clientName}{CUSTOMER NAME LTD} % Client Name
%----------------------------------------------------
%
\begin{document}
\newfontface\mainLightItalic{OpenSans-LightItalic}
\makeheader{\purchaseOrderNo}
\addvspace{8ex}
{\Large DATE: \textit{\Date}}
\addvspace{2ex}
{\Large FOR: \textit{\clientName}}
\addvspace{4ex}
\hspace{-.9\marginparwidth}%
\colorbox{Mblue}{\begin{minipage}{\paperwidth}%
\vspace{.3in}
\begin{hoursItemization}
%
%%%%%%%%%%%%%%%%%% TABLE OF EXPENSES %%%%%%%%%%%%%%%%%%
%
% Put your expenses here in this order: \lineitem{QTY}{PRICE}{ITEM}
%
\lineitem{1}{3075}{550 Litre indirect Storage Vessel with Unvented Kit}
%
\lineitem{2}{214}{3 kW Aquarius Towel Rail Heating Element with Chrome Finish}
%
\lineitem{1}{225}{9 kW Stainless Steel Immersion Heater}
%------------------------------------------------------
%
%%%%%%%%%%%%%%%%%%% SUMMARY SECTION %%%%%%%%%%%%%%%%%%%
%
\beginsummary
%
\summaryline{SUBTOTAL}{\InvoiceTotal}
%
\summaryline{V.A.T. @ 20\%}{\vat}
%
\summaryline{TOTAL}{\total}
%------------------------------------------------------
%
\end{hoursItemization}
\vspace{.3in}
\end{minipage}}
\addvspace{10ex}
\begin{minipage}[t]{.3\textwidth}
{\bf SHIP TO:}\\
\textit{[email protected]}
\end{minipage}
\hfill
\begin{minipage}[t]{0.4\textwidth}
{\bf ADDITIONAL INFORMATION:}\\
\textit{We accept payment by cash or cheque. Payment Is due upon receipt, and must be paid in full within {\bf 30 days}.}
\end{minipage}
\end{document}
(Файл класса длинный, поэтому я не буду его публиковать, так как не считаю это необходимым для решения этой проблемы).
решение1
Есть много вариантов, самый простой из которых, вероятно \vfill
, , который будет перемещать все на дно. Поскольку у меня нет вашего класса документа, я проиллюстрирую два варианта на общем примере. Другие варианты включают пакет tikzpagenode
, который делает абсолютное позиционирование, которое идет с TiкZ-легче.
\documentclass{article}
\usepackage{eso-pic} % only needed for the second option
\pagestyle{empty}
\begin{document}
First option: \verb|\vfill|
\vfill
Bottom--line: \verb|\vfill| works
\clearpage
Another option: use \texttt{eso-pic}
\AddToShipoutPicture{%
\AtTextUpperLeft{%
\put(0,-500){\begin{minipage}{\textwidth}
Bottom--line: also works. you may want to adjust the
$y$ value \texttt{500} to your needs. This option is particularly useful if
you want to write many pages with the same bottom--line.
\end{minipage}}%
}%
}
\end{document}
решение2
Простой способ достижения желаемого поведения без использования нижних колонтитулов — это добавление vspace в сочетании с коэффициентом прочности.
Добавляем \vspace*{\stretch{2}}
перед вашими двумя мини-страницамиКорабльиДополнительная информация., сдвигает их в низ страницы. Команда отрегулирует вертикальное пространство в соответствии с контентом, добавленным выше.
решение3
Единственная проблема, которую я увидел в вашем футере, заключается в том, что он не принимает абзацы. В вашем случае это легко решить, \\[<length>]
потому что у вас там фиксированный контент. Я использовал пакет fancyhdr
в своем MWE, однако мне пришлось удалить ваши личные вещи, поскольку у нас нет к ним доступа. Смотрите ниже:
\documentclass[a4paper, 10pt]{article}
%% geometry package was used to build a page that was similar to yours
\usepackage[left=15mm,right=15mm]{geometry}
%% lipsum to create filler text
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
%% set the footer
\cfoot{
% \begin{tabular}{p{\linewidth}}
\begin{minipage}[t]{.3\textwidth}
{\bf SHIP TO:}\\[1mm] %% <- changed here
\textit{[email protected]}
\end{minipage}
\hfill
\begin{minipage}[t]{0.4\textwidth}
{\bf ADDITIONAL INFORMATION:}\\[1mm] %% <- changed here
\textit{We accept payment by cash or cheque. Payment Is due upon receipt, and must be paid in full within {\bf 30 days}.}
\end{minipage}
}
%% remove the top line, which is default in fancyhdr
\renewcommand{\headrulewidth}{0pt}
\begin{document}
\lipsum[1-20]
\end{document}
решение4
Это также использует fancyhdr
, но позволяет указать центральный номер страницы ниже. (Просто для развлечения, без tikz, табличных или мини-страниц).
Примечание: \bf
устаревшая команда. Используйте {\bfseries ...}
или\textbf{...}
\documentclass[a4paper]{article}
\usepackage{lipsum,parskip}
\usepackage[margin=2cm,bmargin=6cm,footskip=4cm]{geometry}
\usepackage{fancyhdr}
\renewcommand{\headrulewidth}{0pt}%
\lfoot{\leavevmode
\vbox to 20ex{\hsize.6\linewidth{\bfseries SHIP TO:}\\[1ex]\itshape
[email protected]}%
\vbox to 20ex{\hsize.4\linewidth {\bfseries
ADDITIONAL INFORMATION:}\\[1ex]\normalfont\itshape
We accept payment by cash or cheque. Payment is due upon receipt,
and must be paid in full within {\bfseries 30 days}.}}
\pagestyle{fancy}
\begin{document}
\lipsum[1-50]
\end{document}