下列的这个问题:我想要创建一个具有以下规格的表的环境:
左列是垂直居中旋转的文本,上面写着 Övning。右列包含文本段落,因此我希望每个段落都有一个空行(就像我使用 一样\usepackage[parfill]{parskip}
),并且\\
只给我一个换行符。
上一个问题解决了段落问题,但破坏了左列的居中。此外,如果我使用换行符
这是我现在的环境:
\usepackage{array}
\usepackage{rotating}
\newcolumntype{P}[1]{>{%
\parskip=0.5\baselineskip%
\advance\parskip by 0pt plus 2pt
\setlength{\parfillskip}{30pt plus 1fil}}p{#1}}
\newenvironment{exercise}[1]
{
\begin{tabular}{m{0.05\textwidth}|P{0.85\textwidth}} # using m in the second column gives back the vertical centering
\rotatebox{90}{\textbf{Övning}} & \textbf{#1}
}
{\end{tabular}
\bigskip
}
我可以像这样使用它:
\begin{exercise}{5.7}
Övningen finns under Warmup-1 $\rightarrow$ makes10.
Du är given två heltal, \texttt{a} och \texttt{b} som parametrar. Skriv en funktion som returnerar \texttt{True} om ett av talen är 10 eller om summan av dem är 10.
\texttt{makes10(9, 10)} $\rightarrow$ \texttt{True}
\texttt{makes10(9, 9)} $\rightarrow$ \texttt{False}
\texttt{makes10(1, 9)} $\rightarrow$ \texttt{True}
\end{exercise}
结果如下:
但是,如果我引入换行符,如下所示:
\texttt{makes10(9, 10)} $\rightarrow$ \texttt{True} \\
\texttt{makes10(9, 9)} $\rightarrow$ \texttt{False} \\
\texttt{makes10(1, 9)} $\rightarrow$ \texttt{True} \
然后它打破了我的桌子:
因此,我希望能够像往常一样在右列中使用行/段落分隔符,并且我希望垂直列中的文本居中。
我正在将 xelatex 与 polyglossia 一起使用(这导致了上一个问题)。
答案1
\\
结束当前行。使用\newline
代替 可以\\
按预期工作。
对于垂直居中,m
也可以使用您自己的定义的列:
\newcolumntype{M}[1]{>{%
\parskip=0.5\baselineskip%
\advance\parskip by 0pt plus 2pt
\setlength{\parfillskip}{30pt plus 1fil}}m{#1}}