我在這個網站上的特定任務中得到了很多幫助,現在我意識到我使用了錯誤的東西來達到我的目的。
我需要一個決定(組件或一組組件),它提供很少的列、可分頁、valign/halign、最小高度以及組件之間沒有段落間距。這裡如何製作一個高度最小且在盒子內部垂直對齊的盒子?對於標題,我有一個很好的答案。但它不適用於longtable
,因此不支援分頁。
也許我需要使用的不是表格,而是一些盒子的組合來實現這個目的?
我採用模板,從資料庫中取得文字並按照使用者想要的順序放入。
所以我不知道佈局中有多少文字。現在我有一個使用的工作版本longtables
。我提供的最小高度\parbox
(如果數據短且佈局高)。但後來我遇到了 valign 問題 - 如何在 parbox 中對錶進行 valign?如果佈局中的文字較大 - 佈局肯定會被拉伸並分成頁面。
我現在使用這樣的構造(teplate 中的每一行 - 一個帶有 longtable 的 parbox),它不提供分頁功能,也不提供 valigned:
我得到了這樣的結果PDF(文字沒有對齊,而且它有很大的段落空間,所以不是從頂部開始):
我使用的程式碼如下:
\documentclass{book}
\usepackage{fancybox,fancyhdr}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{graphicx}
\usepackage{fixltx2e}
\usepackage[normalem]{ulem}
\usepackage[left=72pt,right=72pt,
headheight=72pt,
top=\dimexpr72pt+\headsep\relax,
textheight =592pt
]{geometry}
\usepackage{array}
\usepackage{longtable}
\usepackage[export]{adjustbox}
\newcolumntype{R}[2]{>{\raggedleft \arraybackslash \hspace{0pt}}{#2}{#1}}
\newcolumntype{L}[2]{>{\raggedright\arraybackslash}{#2}{#1}}
\newcolumntype{C}[2]{>{\center\arraybackslash}{#2}{#1}}
\fancyhf{} \fancyhead[C]{\raisebox{\dimexpr\headheight-\height}[\headheight][0pt] {\begin{tabular}{L{\textwidth}{p}}Non-disclosure agreement (NDA)\end{tabular}}}\begin{document}
\pagestyle{fancy}
\noindent\sbox{0}{\parbox{\textwidth}{\noindent\begin{longtable}{C{\textwidth}{m}}Text\end{longtable}}}
\ifdim\dimexpr\ht0+\dp0<517pt
\dp0\dimexpr517pt-\ht0\fi
\makebox{\usebox{0}}\\ \noindent\sbox{0}{\parbox{\textwidth}{\noindent\begin{longtable}{L{\textwidth}{p}}Text\end{longtable}}}
\ifdim\dimexpr\ht0+\dp0<27pt
\dp0\dimexpr27pt-\ht0\fi
\makebox{\usebox{0}}
\end{document}