1

I am currently trying to create one pagers (profiles describing a unit) and my plan was to use a table to do that. It works quite well except for the alignment of the text inside the table. I am using p{...} since I'd like a top-left alignment but this leads to the following output:

enter image description here

Alignment to the bottom (b{...}) works fine and the issues only seems to occur with a rotation present in the left column. I already tried various things like different means of rotation (e.g. \begin{sideways}), experimenting with the column width and so on.

\documentclass[twoside, english, draft]{article}    

\usepackage{rotating}       
\usepackage{array}              
\newdimen\NetTableWidth
\usepackage{booktabs}
\usepackage{longtable}

\begin{document}

\noindent
\NetTableWidth=\dimexpr
\linewidth
- 8\tabcolsep
- 5\arrayrulewidth
\relax


\begin{center}
\begin{longtable}{
    p{.05\NetTableWidth}
    p{.45\NetTableWidth}
    p{.45\NetTableWidth}
}
\toprule
& \textbf{Parameter a} & \textbf{Parameter b} \\
\midrule
\rotatebox{90}{\textbf{Factor a}} 
& 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
& 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
lum ut, placerat ac, adipiscing vitae, felis. 
\\ 
\addlinespace[1em]
\rotatebox{90}{\textbf{Factor b}} 
& 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
lum ut, placerat ac, adipiscing vitae, felis.
& 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
\\ 
\bottomrule 
\end{longtable}
\end{center}

\end{document}
4
  • 1
    Welcome to TeX.SE! Try \rotatebox[origin=center]{90}{\textbf{Factor a}} and likewise \rotatebox[origin=center]{90}{\textbf{Factor b}}. Commented Sep 12, 2018 at 15:20
  • 1
    unrelated but don't put longtable in a center environment (it doesn't centre it) Commented Sep 12, 2018 at 15:22
  • 1
    perhaps just because you made a smaller example but the calculation of \NetTableWidth assumes a table of 4 columns and 5 rules, but the one here has 3 columns and no rules. Commented Sep 12, 2018 at 15:24
  • Thank's a lot! I found the calculation and the associated table on stackexchange and forgot to change the calculation after working on the table since the calculation was not explained further... Commented Sep 12, 2018 at 16:07

2 Answers 2

0

Use the key [origin=r]. You can fine-tune the alignment with a \raisebox – I give an example with the second row:

\documentclass[twoside, english, draft]{article}

\usepackage{rotating}
\usepackage{array}
\newdimen\NetTableWidth
\usepackage{booktabs}
\usepackage{longtable}

\begin{document}

\noindent
\NetTableWidth=\dimexpr
\linewidth
- 8\tabcolsep
- 5\arrayrulewidth
\relax

\begin{longtable}{
    p{.05\NetTableWidth}
    p{.45\NetTableWidth}
    p{.45\NetTableWidth}
}
\toprule
& \textbf{Parameter a} & \textbf{Parameter b} \\
\midrule
\rotatebox[origin=r]{90}{\textbf{Factor a}}
&
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
&
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
lum ut, placerat ac, adipiscing vitae, felis.
\\
\addlinespace[1em]
\raisebox{0.43ex}{\rotatebox[origin=r]{90}{\textbf{Factor b}}}
&
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
lum ut, placerat ac, adipiscing vitae, felis.
&
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
\\
\bottomrule
\end{longtable}

\end{document} 

enter image description here

1
  • I tried both [origin=center] and [origin=r]. Both provide good results with the latter one being the aesthetically more pleasing solution :) Commented Sep 12, 2018 at 16:02
0

Bernard gave a great answer, but here is another way to do it

You can use \multirow{1}{=}{\centering \adjustbox{valign=c, rotate=90}{<cell contents>}}. Here, the = means that the multirow width will be determined by the table preamble.

enter image description here

\documentclass[twoside, english, draft]{article}    

\usepackage{rotating}       
\usepackage{array}              
\newdimen\NetTableWidth
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{adjustbox}
\usepackage{multirow}


\begin{document}

\noindent
\NetTableWidth=\dimexpr
\linewidth
- 8\tabcolsep
- 5\arrayrulewidth
\relax


\begin{center}
\begin{longtable}{
    p{.05\NetTableWidth}
    p{.45\NetTableWidth}
    p{.45\NetTableWidth}
}
    \toprule
    & \textbf{Parameter a} & \textbf{Parameter b}
    \\
    \midrule

    \multirow{1}{=}{\centering \adjustbox{valign=c, rotate=90}{\textbf{Factor a}}}
    & 
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
    lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
    & 
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
    lum ut, placerat ac, adipiscing vitae, felis. 
    \\ 

    \addlinespace[1em]
    \multirow{1}{=}{\centering \adjustbox{valign=c, rotate=90}{\textbf{Factor b}}}
    & 
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
    lum ut, placerat ac, adipiscing vitae, felis.
    & 
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibu-
    lum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
    Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
    \\ 
    \bottomrule 
\end{longtable}
\end{center}

\end{document}
1
  • Thanks for the input! I thought about using multirow since all of the examples of vertical cell content I could come by were spreading over multiple rows. I was however afraid of the added complexity and many possibilities to screw up the adaption to my use case :) (LateX Beginner with quite limited knowledge) Commented Sep 12, 2018 at 16:22

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.