Or you use the "append to PDF" functionality by going to a list view of each related section and printing that individually, appending to the same PDF.
My first thought would be a looping script that gathers up the data from each portal in turn as variables so that the contents of each portal becomes a multi-line variable, then move to a print layout where the between-portal topic headers etc match what is on the other layout but instead of the portals are the merge variables which are printed before the script completes. Something along those lines, anyhow.
The List() function may help here without the "loopiness".
-- sent from myPhone --
The Virtual List technique may also be of some use.