私は特定のタスクに関してこのサイトで非常に多くの助けを得ましたが、今私は自分の目的に合わないものを使用していることに気づきました。
列数が少なく、改ページ可能で、valign/halign、高さが最小で、コンポーネント間に段落間隔がないという決定(コンポーネントまたはコンポーネントのセット)が必要です。ボックス内の高さと垂直方向の位置合わせを最小限に抑えたボックスを作成するにはどうすればよいですか?ヘッダーについては良い答えがあります。しかし、 では機能しないためlongtable
、ページ区切りはサポートされません。
この目的のためには、テーブルではなく、いくつかのボックスの組み合わせを使用する必要があるのでしょうか?
テンプレートを取得し、DB からテキストを取得して、ユーザーが望む順序で配置します。
そのため、レイアウトにどのくらいのテキストが含まれるかわかりません。現在、 を使用した作業バージョンがありますlongtables
。最小の高さは私が提供します\parbox
(データが短く、レイアウトが高い場合)。しかし、valign で問題が発生します。parbox でテーブルを valign するにはどうすればよいでしょうか? レイアウト内のテキストが大きい場合、レイアウトは確実に引き伸ばされ、ページに分割される必要があります。
私は現在、このような構造 (テンプレートの各行 - 長いテーブルを持つ 1 つの parbox) を使用していますが、ページ区切りが提供されず、整列も行われません。
そして、次のような結果の 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}