2

was asked to renew our medical-result-printing-system.

pdflatex seems to be best tool to do this. A kind of table would be fine to put the data in a structured way. Unfortunately some data Fields can contain a considerable amount of text. How can i put Text in a table like manner and allow LaTeX to insert page breaks.

I already tried tabbing which collides with colorbox (i need to highlight some lines) and does no linebreak.

With longables i got quite far (see minimal code) but then i need to break long texts in chunks (sentences) which i put in different "cells" (rows) to allow pagebreaks. Well data does not necessarily contain paragraphs and putting each sentence in its own "paragraph" is quite ugly...

Thank You for any hints

\documentclass[a4paper,ngerman]{article}
\oddsidemargin0cm
\textwidth17cm
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{eurosym,graphicx}
\DeclareUnicodeCharacter{20AC}{\euro}
\newcommand{\grad}{\ensuremath{^\circ\!}}
\DeclareUnicodeCharacter{B0}{\grad}
\DeclareUnicodeCharacter{B5}{\ensuremath{\upmu}}%{\ensuremath{\mu}}
% \usepackage{lmodern}
\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the 
\usepackage{color}
\definecolor{gray10}{gray}{.90}
\usepackage{colortbl}
\usepackage{array}
\usepackage{longtable}
\begin{document}
\noindent
\blindtext\\[2cm]
\blindtext\\
\noindent
\begin{longtable}{@{\hspace*{5mm}}>{}p{6.0cm}rcrllc}
 &  & & Resultat & Einheit & Referenzbereich &\endhead
\rowcolor{gray10}Creatinin & CS & + &3.48 & g/L & 0.20 - 3.00& (\_\_\_\_\_)*\\
Beginn der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 11:30 (EL)}\\
Ende der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 14:38 (KJ)}\\
Klinische Angaben: &&& \multicolumn{4}{p{8cm}}{ z:H. Frau Möbius}\\[1ex]
\rowcolor{gray10}\textcolor{red}{Creatinin} & CS & + &3.48 & g/L & 0.20 - 3.00& (\_\_\_\_\_)*\\
Beginn der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 11:30 (EL)}\\
Ende der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 14:38 (KJ)}\\
Klinische Angaben: &&& \multicolumn{4}{p{8cm}}{ z:H. Frau Möbius}\\[1ex]
Bewertung: &\multicolumn{5}{l}{}\\
\rowcolor{gray10}\textcolor{red}{Creatinin} & CS & + &3.48 & g/L & 0.20 - 3.00& (\_\_\_\_\_)*\\
Beginn der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 11:30 (EL)}\\
Ende der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 14:38 (KJ)}\\
Klinische Angaben: &&& \multicolumn{4}{p{8cm}}{ z:H. Frau Möbius}\\[1ex]
Bewertung: &\multicolumn{5}{l}{}\\
\multicolumn{7}{@{\hspace{1cm}}p{16cm}}{ \blindtext}\\[2ex]
Bewertung: &\multicolumn{6}{p{10cm}}{ Dies hier ist ein Blindtext zum Testen von Text-
ausgaben. Wer diesen Text liest, ist selbst schuld.
Der Text gibt lediglich den Grauwert der Schrift
an. Ist das wirklich so?
Ist es gleichgültig ob ich
schreibe: »Dies ist ein Blindtext« oder »Huardest
gefburn«?. Kjift – mitnichten! Ein Blindtext bietet
mir wichtige Informationen.}\\
&\multicolumn{6}{p{10cm}}{ 
An ihm messe ich
die
Lesbarkeit einer Schrift, ihre Anmutung, wie
harmonisch die Figuren zueinander stehen und
prüfe, wie breit oder schmal sie läuft. Ein Blind-
text sollte möglichst viele verschiedene Buch-
staben enthalten und in der Originalsprache
gesetzt sein.}\\
&\multicolumn{6}{p{10cm}}{ 
Er muß keinen Sinn ergeben, soll-
te aber lesbar sein. Fremdsprachige Texte wie
»Lorem ipsum« dienen nicht dem eigentlichen
Zweck, da sie eine falsche Anmutung vermit-
teln.}\\[2ex]
\rowcolor{gray10}\textcolor{red}{Creatinin} & CS & + &3.48 & g/L & 0.20 - 3.00& (\_\_\_\_\_)*\\
\end{longtable}
\end{document}
  • longtable can not break a page mid cell. – David Carlisle Mar 21 '16 at 12:41
4

longtable can only break between rows not within a cell see for example

Longtable: page breaks within row possible?

However you can often set the table as a list rather than a table especially the common case of two-column tables where all the long text is in one column)

Here it seems you have a mixture of tabular and and list paragraph material so a mixed markup scheme may work, here I use your tabular setting for the first part but nest a description list which can break over the page.

enter image description here

\documentclass[a4paper,ngerman]{article}
\oddsidemargin0cm
\textwidth17cm
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{eurosym,graphicx}
\DeclareUnicodeCharacter{20AC}{\euro}
\newcommand{\grad}{\ensuremath{^\circ\!}}
\DeclareUnicodeCharacter{B0}{\grad}
\DeclareUnicodeCharacter{B5}{\ensuremath{\upmu}}%{\ensuremath{\mu}}
% \usepackage{lmodern}
\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the 
\usepackage{color}
\definecolor{gray10}{gray}{.90}
\usepackage{colortbl}
\usepackage{array}
\usepackage{longtable}
\begin{document}
\noindent
\blindtext\\[2cm]
\blindtext

\begin{longtable}{@{\hspace*{5mm}}>{}p{6.0cm}rcrllc}
 &  & & Resultat & Einheit & Referenzbereich &\endhead
\rowcolor{gray10}Creatinin & CS & + &3.48 & g/L & 0.20 - 3.00& (\_\_\_\_\_)*\\
Beginn der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 11:30 (EL)}\\
Ende der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 14:38 (KJ)}\\
Klinische Angaben: &&& \multicolumn{4}{p{8cm}}{ z:H. Frau Möbius}\\[1ex]
\rowcolor{gray10}\textcolor{red}{Creatinin} & CS & + &3.48 & g/L & 0.20 - 3.00& (\_\_\_\_\_)*\\
Beginn der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 11:30 (EL)}\\
Ende der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 14:38 (KJ)}\\
Klinische Angaben: &&& \multicolumn{4}{p{8cm}}{ z:H. Frau Möbius}\\[1ex]
Bewertung: &\multicolumn{5}{l}{}\\
\rowcolor{gray10}\textcolor{red}{Creatinin} & CS & + &3.48 & g/L & 0.20 - 3.00& (\_\_\_\_\_)*\\
Beginn der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 11:30 (EL)}\\
Ende der Analyse: & & & \multicolumn{4}{p{8cm}}{ 8.3.15 14:38 (KJ)}\\
Klinische Angaben: &&& \multicolumn{4}{p{8cm}}{ z:H. Frau Möbius}\\
\noalign{
\baselineskip\normalbaselineskip
\begin{description}
\item[Bewertung:]
\blindtext
 \item[Bewertung:]
  Dies hier ist ein Blindtext zum Testen von Text-
ausgaben. Wer diesen Text liest, ist selbst schuld.
Der Text gibt lediglich den Grauwert der Schrift
an. Ist das wirklich so?
Ist es gleichgültig ob ich
schreibe: »Dies ist ein Blindtext« oder »Huardest
gefburn«?. Kjift – mitnichten! Ein Blindtext bietet
mir wichtige Informationen.


An ihm messe ich
die
Lesbarkeit einer Schrift, ihre Anmutung, wie
harmonisch die Figuren zueinander stehen und
prüfe, wie breit oder schmal sie läuft. Ein Blind-
text sollte möglichst viele verschiedene Buch-
staben enthalten und in der Originalsprache

Er muß keinen Sinn ergeben, soll-
te aber lesbar sein. Fremdsprachige Texte wie
»Lorem ipsum« dienen nicht dem eigentlichen
Zweck, da sie eine falsche Anmutung vermit-
teln.
\end{description}
}
\rowcolor{gray10}\textcolor{red}{Creatinin} & CS & + &3.48 & g/L & 0.20 - 3.00& (\_\_\_\_\_)*\\
\end{longtable}
\end{document}
  • Thank You! In this case I can use fixed columns with fixed widths. I think too that description will fit this problem the best. Now I have to experiment how to align the text with the appropriate column of the table. Is there a better way than to fiddle with \leftskip and \rightskip? – Harald Kollmann Mar 23 '16 at 10:10
  • @HaraldKollmann to fiddle with list indentation I would use the enumitem package which gives lots of control to change latex's list settings. – David Carlisle Mar 23 '16 at 11:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.