我在发票模板的单行标题表中垂直对齐内容时遇到问题。目前它看起来像这样: 我必须做什么才能
- 将顶部 fbox 与右侧单元格的顶部对齐?
将底部 fbox 与右侧单元格的底部对齐?
\documentclass[10pt,a4paper]{article} \usepackage[MeX]{polski} \usepackage[utf8]{inputenc} \setlength{\marginparwidth}{0pt} \setlength{\parindent}{0pt} \usepackage[ top = 1.50cm, bottom = 1.50cm, left = 1.50cm, right = 1.50cm]{geometry} \usepackage{tabularx} \pagestyle{empty} \renewcommand{\familydefault}{\sfdefault} \newcommand{\datasprzedazy}{3.03.2006} \newcommand{\terminplatnosci}{17.03.2006} \newcommand{\nrfaktury}{3/2006} \newcommand{\netto}{1000.00} \newcommand{\vat}{220.00} \newcommand{\brutto}{1220.00} \newcommand{\slownie}{jeden tysiąc dwieście dwadzieścia złotych} \begin{document} \renewcommand\arraystretch{1.3} \renewcommand\tabcolsep{0pt} \begin{tabularx}{\linewidth}{ X X } \begin{minipage}[t]{0.47\textwidth} \fbox { \parbox[t]{\textwidth} { \begin{minipage}[t]{0.5\textwidth} \begin{tabular}[t]{l l } Company Name & Logo\\ Address & \\ Street & \\ Tax ID &\\ Other Info \end{tabular}\par\medskip \end{minipage} } } \end{minipage} & \begin{minipage}[t]{0.47\textwidth} \framebox[\textwidth]{\textbf{Faktura VAT nr \nrfaktury}} \par \begin{tabular}{lr} Data sprzedaży: & \datasprzedazy \\ Data wystawienia: & \datasprzedazy \end{tabular} \framebox[\textwidth]{\textbf{ORYGINAŁ}} \par \end{minipage} \end{tabularx} \end{document}
答案1
一些低级 TeX 编程使这项工作变得更容易:我们将左侧框(假设其垂直尺寸最大)设置为\hrule
顶部和底部;第一个框没有高度,最后一个框只是为了对称。更重要的是将最后一个框设置为\hrule
右侧框,这样可以避免 TeX 考虑最后一个内框的深度。
右侧框设置在 中\vtop to \dp0
,因此其垂直尺寸与左侧框相同。然后我们对这两个框进行排版。
\documentclass[10pt,a4paper]{article}
\usepackage[MeX]{polski}
\usepackage[utf8]{inputenc}
\setlength{\parindent}{0pt}
\usepackage[
top = 1.50cm,
bottom = 1.50cm,
left = 1.50cm,
right = 1.50cm,
]{geometry}
\usepackage{tabularx}
\pagestyle{empty}
\renewcommand{\familydefault}{\sfdefault}
\newcommand{\datasprzedazy}{3.03.2006}
\newcommand{\terminplatnosci}{17.03.2006}
\newcommand{\nrfaktury}{3/2006}
\newcommand{\netto}{1000.00}
\newcommand{\vat}{220.00}
\newcommand{\brutto}{1220.00}
\newcommand{\slownie}{jeden tysiąc dwieście dwadzieścia złotych}
\begin{document}
\renewcommand\arraystretch{1.3}
\renewcommand\tabcolsep{0pt}
\setbox0=\vtop{
\hrule height 0pt
\hbox{\fbox{%
\begin{minipage}[t]{0.47\textwidth}
\begin{tabular}[t]{ l l }
Company Name & Logo\\
Address & \\
Street & \\
Tax ID &\\
Other Info
\end{tabular}
\end{minipage}%
}}% end the \fbox and the \hbox
\hrule height 0pt
}% end the \vtop
\setbox2=\vtop to \dp0{
\hrule height 0pt
\hbox{\framebox[0.47\textwidth]{\textbf{Faktura VAT nr \nrfaktury}}}
\vfill
\hbox{\begin{tabular}{lr}
Data sprzedaży: & \datasprzedazy \\
Data wystawienia: & \datasprzedazy
\end{tabular}}
\vfill
\hbox{\framebox[0.47\textwidth]{\textbf{ORYGINAŁ}}}
\hrule height 0pt
}
\leavevmode\box0\hfill\box2\par
\end{document}
答案2
当然不是一个强大的解决方案,但如果您的发票模板始终具有您列出的尺寸(无文本换行,额外条目等),那么您可以将右列设置为
\begin{minipage}[t]{0.47\textwidth}
\vspace{-14.5pt}
\framebox[\textwidth]{\textbf{Faktura VAT nr \nrfaktury}} \par
\begin{tabular}{lr}
Data sprzedaży: & \datasprzedazy \\
Data wystawienia: & \datasprzedazy
\end{tabular}
\vspace{27pt}
\framebox[\textwidth]{\textbf{ORYGINAŁ}} \par
\end{minipage}
我会稍微玩一下,看看是否能想出一种方法来自动为您完成此操作。