[Tex/LaTex] Horizontal alignment across minipage columns

horizontal alignmentminipage

I'm trying to create several columns on one page whose contect is horizontally aligned across these columns. I'm using \minipage to create multiple columns on one page and then apply the command \vspace{} to space out the contents of each column in a way that makes them horizontally aligned. Since \vspace{} spaces out items from the centre outwards, it takes a lot of manual trial-and-error work to align different types of contexts across each column.

my code

But I don't seem to be able to get this right even with the manual trial-and-error approach. The topmost table in the second column and the topmost text in the third and fourth columns should start at the same height as "1. Point 1" in the first column, which is not the case. Also the first and the second table are glued together, even though there is a \vspace{} between them. Is there a more automated way to do it to get the alignments right? Is \minipage the appropriate tool for this purpose? I would appreciate any advice you may have on this.

This the code I used to get the above output:

\documentclass{article}
\usepackage[margin=1.0in]{geometry}

\begin{document}
\begin{minipage}{0.17\textwidth}%
\textbf{Heading 1}
\begin{enumerate}
    \item Point 1 \\
    \vspace{1.3cm}
    \item Point 2 \\
    \vspace{1.3cm}
    \item Point 3
    \vspace{1.3cm}
\end{enumerate}
\end{minipage}%
\begin{minipage}{0.29\textwidth}%
\begin{tabular}{|l | c | c | c |}
    \hline
    &One&Two&Three \\ \hline
    ABCD&$\times$&& \\ \hline
    ABCD&&$\times$& \\ \hline
\end{tabular}
\vspace{12mm}
\begin{tabular}{|l | c | c | c |}
    \hline
    &One&Two&Three \\ \hline
    ABCD&$\times$&& \\ \hline
    ABCD&&$\times$& \\ \hline
\end{tabular}
\vspace{12mm}
\begin{tabular}{|l | c | c | c |}
    \hline
    &One&Two&Three \\ \hline
    ABCD&$\times$&& \\ \hline
    ABCD&&$\times$& \\ \hline
\end{tabular}
\end{minipage}%
\hfill
\begin{minipage}{0.23\textwidth}%
\begin{tabular}{p{\textwidth}}
    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.\\
    \vspace{6mm}
    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.\\
    \vspace{6mm}
    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.\\
\end{tabular}
\end{minipage}%
\hfill
\begin{minipage}{0.23\textwidth}%
\begin{tabular}{p{\textwidth}}
    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.\\
    \vspace{6mm}
    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.\\
    \vspace{6mm}
    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.\\
\end{tabular}
\end{minipage}%
\end{document}

Best Answer

something like

enter image description here

note that tex gave lots of warnings about bad boxes, which shouldn't be ignored in cases like this.

The main issue is using [t] to top-align the minipages, never using \\ to end a paragraph, and a tabular with p{\textwidth} doesn't fit unless you use @{}p{\textwidth}@{} to remove the column padding, or as here just remove the tabular altogether as a one-column table isn't doing much.

If you want the point 2, the second table and the second paragraph in each column to align, simplest thing would be to put them in a second row of minipages rather than entering all of the first column then all of the second.

\documentclass{article}
\usepackage[margin=1.0in]{geometry}
\usepackage{array}

\begin{document}
\section*{Heading 1}
\begin{minipage}[t]{0.17\textwidth}%

\begin{enumerate}\setlength\itemsep{12pt}
    \item Point 1

    \item Point 2 % never end a paragraph with \\

    \item Point 3

\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.31\textwidth}%
\begin{tabular}[t]{|l | c | c | c |}
    \firsthline
    &One&Two&Three \\ \hline
    ABCD&$\times$&& \\ \hline
    ABCD&&$\times$& \\ \hline
\end{tabular}

\vspace{12mm}
\begin{tabular}[t]{|l | c | c | c |}
    \hline
    &One&Two&Three \\ \hline
    ABCD&$\times$&& \\ \hline
    ABCD&&$\times$& \\ \hline
\end{tabular}

\vspace{12mm}
\begin{tabular}[t]{|l | c | c | c |}
    \hline
    &One&Two&Three \\ \hline
    ABCD&$\times$&& \\ \hline
    ABCD&&$\times$& \\ \hline
\end{tabular}
\end{minipage}%
\hfill
\begin{minipage}[t]{0.23\textwidth}%
\setlength\parskip{12pt}
    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.

    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.

    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.
\end{minipage}%
\hfill
\begin{minipage}[t]{0.23\textwidth}%
\setlength\parskip{12pt}

    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.

    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.

    This is an example. This line may go all along the end and wrap afterwards to the next as seen here.
\end{minipage}%
\end{document}

enter image description here