Como transformar uma minipágina no rodapé de um documento

Como transformar uma minipágina no rodapé de um documento

Eu tenho um documento que produz uma saída parecida com esta:

insira a descrição da imagem aqui

A seção em verde pode mudar de tamanho, dependendo de quantos itens estão na lista.

Quero que as seções "Enviar para:" e "Informações adicionais" estejam sempre na parte inferior da página, não importa o tamanho da seção verde.

Presumo que preciso fazer isso usando rodapés. Tenho lido sobre rodapés, mas não tenho certeza de como fazer com que o rodapé seja uma minipágina como esta:

\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}

O ARQUIVO TEX COMPLETO:

\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}

(O arquivo da classe é longo - então não vou postar porque não acho necessário resolver o problema).

Responder1

Existem muitas opções, sendo a provavelmente a mais simples \vfill, que irá empurrar as coisas para o fundo. Como não possuo sua classe de documento, ilustro duas opções em um exemplo genérico. Outras opções incluem o tikzpagenodepacote, que torna o posicionamento absoluto que vem com o TikZ mais fácil.

\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}

Responder2

Uma maneira simples de obter o comportamento que você deseja, sem usar rodapés, é adicionando um vspace combinado com um fator de extensão.

Adicionando \vspace*{\stretch{2}}antes de suas duas minipáginas comEnviar paraeInformação adicional., empurra-os para a parte inferior da página. O comando irá ajustar o espaço vertical de acordo com o conteúdo adicionado acima.

Responder3

O único problema que vi no seu rodapé é que ele não aceita parágrafos. No seu caso, isso é fácil de resolver \\[<length>]porque você fixou o conteúdo lá. Usei o fancyhdrpacote no meu MWE, porém tive que remover suas coisas privadas pois não temos acesso a ele. Veja abaixo:

\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}

insira a descrição da imagem aqui

Responder4

eu

Isso também usa fancyhdr, mas permite um número central de página abaixo. (Só por diversão, sem tikz, tabulares nem minipáginas).

Nota: \bfé um comando obsoleto. Usar {\bfseries ...}ou\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}

informação relacionada