\framebox 的垂直对齐

\framebox 的垂直对齐

我从中获取了一个基本的 QSL 卡片模板这里现在我想尝试在右侧放置一个邮箱和地址行,如图所示这里

我认为我的方法存在两个相关的问题。首先,邮资箱的基线与文本基线对齐,导致左侧小页面向下移动:

enter image description here

呼号AB5CDE应位于页面顶部,其顶部与邮资箱顶部在同一行。如果没有邮资箱,呼号就会正确对齐。

其次,由于某种原因,在文档开头插入了一个空白页。

我如何设置垂直对齐方式\framebox,使其与左侧小页面中的文本顶部对齐?

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

答案1

无需强制小页面达到全高,就可以更轻松地使内容适应。

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}

如果由于其他原因需要强制高度,请使其略小于\textheight(tex 表示页面过满的数量),以允许除了框之外添加的 baselineskip 和 topskip 空间(或将这些空间设置为零)

答案2

问题在于\Huge文本位于基线上并比基线高出 15pt,而 也\framebox位于基线上并比基线高出 50pt。因此,在这种情况下,使用 的功能[t]不会minipage对齐这些差异。

因此,我使用 将\belowbaseline[-15pt]{}的顶部位置限制\framebox为基线上方 15pt,这对应于文本的高度\Huge。请注意\belowbaseline来自stackengine包。

这也解决了多余的空白页问题,因为minipage不再超出页面的垂直边距。

\documentclass[10pt]{article}
\pagestyle{empty}
\usepackage{amsmath,stackengine}
\usepackage{latexsym}
\usepackage[papersize={14cm,9cm}, margin=0.5cm, marginratio=1:1]{geometry}
\setlength{\parindent}{0pt}\fboxsep=-\fboxrule
\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\belowbaseline[-15pt]{\framebox(40,50){\scriptsize Postage}}
\end{minipage}

\end{document}

enter image description here

这里我展示了 es 里面的两个minipages \fbox,以显示两个minipage顶部的净对齐。

enter image description here

相关内容