[Tex/LaTex] Vertical alignment of a \framebox

boxesminipagevertical alignment

I took a basic QSL card template from here and now I would like to try to put a postage box and address lines on the right as seen here.

There are two issues with my approach that I think are related. First, the postage box is aligned with its baseline on the text's baseline, causing the left minipage to move down:

enter image description here

The callsign, AB5CDE, should be at the top of the page, with its top on the same line as the top of the postage box. Without the postage box, the callsign is aligned properly.

Second, for some reason an empty page is inserted at the start of the document.

How can I set the vertical alignment of the \framebox such that it aligns it top at the top of the text in the left minipage?

\documentclass[10pt]{article}
\pagestyle{empty}
\usepackage{amsmath}
\usepackage{latexsym}
\usepackage[papersize={14cm,9cm}, margin=0.5cm, marginratio=1:1]{geometry}
\setlength{\parindent}{0pt}

\begin{document}

\begin{minipage}[t][\textheight][t]{9cm}
    {\Huge\texttt{AB5CDE}}
    \medskip

    John Doe\\
    Main Street 123\\
    NL-1234AB City\\
    \bigskip

    I am pleased to confirm the following QSO(s):
    \bigskip

    \begin{tabular}{l l l l l l}
        \textsc{date} & \textsc{time} & \textsc{mhz} & \textsc{mode} & \textsc{rst s} & \textsc{rst r} \\
        \hline
    \end{tabular}
\end{minipage}%
%
\begin{minipage}[t][\textheight][t]{4cm}
    \hfill\framebox(40,50){\scriptsize Postage}
\end{minipage}

\end{document}

Best Answer

It's easier to make things fit without forcing the minipage to be full height.

enter image description here

\documentclass[10pt]{article}
\pagestyle{empty}
\usepackage{amsmath}
\usepackage{latexsym}
\usepackage[papersize={14cm,9cm}, margin=0.5cm, marginratio=1:1]{geometry}
\setlength{\parindent}{0pt}

\begin{document}

\begin{minipage}[t]{9cm}
    \null
    {\Huge\texttt{AB5CDE}}
    \medskip

    John Doe\\
    Main Street 123\\
    NL-1234AB City\\
    \bigskip

    I am pleased to confirm the following QSO(s):
    \bigskip

    \begin{tabular}{l l l l l l}
        \textsc{date} & \textsc{time} & \textsc{mhz} & \textsc{mode} & \textsc{rst s} & \textsc{rst r} \\
        \hline
    \end{tabular}
\end{minipage}%
%
\begin{minipage}[t]{4cm}
    \null
    \hfill\framebox(40,50){\scriptsize Postage}%
\end{minipage}

\end{document}

If you need the height forced for other reasons, make it slightly less than \textheight (by the amount tex says the page is overfull) to allow for the baselineskip and topskip space that is added in addition to the boxes (or set those spaces to zero)