Recibí mucha ayuda en este sitio en mis tareas particulares y ahora me doy cuenta de que estoy usando algo incorrecto para mi propósito.
Necesito una decisión (componente o un conjunto de componentes) que proporcione pocas columnas, páginas separables, valign/halign, altura mínima y sin espacio entre párrafos entre componentes. aquí¿Cómo hacer una caja con la altura mínima y alineación vertical dentro de la caja?Tengo una buena respuesta para el encabezado. Pero no funciona con longtable
, por lo que no admite saltos de página.
¿Quizás necesite usar no una tabla, sino alguna combinación de cajas para este propósito?
Ejemplo, el usuario crea una plantilla como esta:
Tomo la plantilla, tomo el texto de la base de datos y lo coloco en el mismo orden que desea el usuario.
Entonces no sé cuánto texto habrá en el diseño. Ahora tengo una versión funcional que usa longtables
. Altura mínima que proporciono \parbox
(si los datos son cortos y el diseño es alto). Pero luego tengo un problema con valign: ¿cómo vaalign la tabla en parbox? Si el texto en el diseño es más grande, el diseño debe estirarse con seguridad y dividirse en páginas.
Utilizo este tipo de construcción ahora (cada fila en el teplate - un parbox con tabla larga), no proporciona saltos de página y no está validado:
Y obtuve el PDF resultante (el texto no está validado y tiene un gran espacio de párrafo, por lo que no comienza desde arriba):
El código que uso es el siguiente:
\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}