4

I am the editor of a student-paper for mathematicians and physicists, which is made entirely through LaTeX.

Right now I need to make a page with several different sections, a lot like the ad-pages of regular newspapers, but don't have the faintest idea of where to start getting this to work.

My main problem is that I want to make the horizontal seperators line up across columns, which I don't know how to do. I already use the multicols package almost throughout the newspaper, but that only takes care of vertical separators.

Is there perhaps a way to jump down to a fixed height on the page? something like

\vspace{*go down to the 1/4 mark of the page-height*}

or an even more convenient solution that works without multicols (minipage perhaps? I don't really know that much about it unfortunately)?

The below is what I'm looking for. Having something like the left would be okay, but if I had the freedom demonstrated in the right one instead, that would be ideal. If there is any way to frame the individual boxes also, I would be oh so very happy.

_____________       _____________
|     |     |       |     |     |
|_____|_____|       |_____|     |
|     |     |   /   |     |_____|
|_____|_____|       |_____|     |
|     |     |       |     |     |
|_____|_____|       |_____|_____|
2

Edit There may well be a better way of doing this but here's a solution using tikz. It turns out be easier to anchor the nodes at the south west corner.

\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}

\begin{document}

\begin{tikzpicture}[scale=\textwidth/15.2cm,
                    every node/.style={anchor=south west, rectangle,rounded corners}]
  \node at (0,0) [draw,text width=0.5\textwidth] {
     \vbox to 0.3\textheight{\lipsum[66]}
  };
  \node at (0,7.7) [draw,text width=0.5\textwidth] {
     \vbox to 0.3\textheight{\lipsum[75]}
  };
  \node at (0,15.4) [draw,text width=0.5\textwidth] {
     \vbox to 0.3\textheight{\lipsum[66]}
  };
  \node at (8,0) [draw,text width=0.5\textwidth] {
     \vbox to 0.46\textheight{\lipsum[75]}
  };
  \node at (8,11.5) [draw,text width=0.5\textwidth] {
     \vbox to 0.46\textheight{\lipsum[66]}
  };
\end{tikzpicture}

\end{document}

I think that this should be quite robust, especially if you put your content inside a minipge evironment. Here's the output:

enter image description here

Here's a more simplistic approach for the first equally spaced layout.

\documentclass{article}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{lipsum}
\begin{document}

\begin{tabularx}{\textwidth}{|X|X|}\hline
  \vbox to 0.3\textheight{\lipsum[66]}
& \vbox to 0.3\textheight{\lipsum[75]} \\ \hline
  \vbox to 0.3\textheight{\lipsum[66]}
& \vbox to 0.3\textheight{\lipsum[75]} \\ \hline
  \vbox to 0.3\textheight{\lipsum[66]}
& \vbox to 0.3\textheight{\lipsum[75]} \\ \hline
\end{tabularx}

\end{document}

This produces:

enter image description here

  • This certainly accomplishes what I want to do, but I'm afraid this might behave unpredictably with some of my content. I also think It is a bit excessive to use tikz just for jumping down to a height on the page in a collumn. Is there really no simpler way? – Delta t Jul 28 '14 at 16:44
  • @Deltat There may well be a better "standard" way of doing this but I don't know of it...if there is hopefully some one else will give it as an answer. I think that the tikz approach will be quite robust, especially if you put a minipage inside the \vbox. There should also be a better way of specifying the placement of the nodes - I thought that putting anchor=north west would allow me to place the nodes according to the position of their top left corner but this didn't work... – Andrew Jul 28 '14 at 23:09

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.