我设置了一个环境,longtables
用作书中的“提示”框和练习。左列仅显示一个旋转的单词(提示、练习或其他),而右列包含其余文本。现在的问题是右列是一个单元格,因此如果表格太大,(xe)latex 会决定将其放在新页面上。下面是我的意思的一个例子:
那么我怎样才能让它从当前页面开始并在必要时中断,然后继续下一页?
我的表格代码:
\documentclass[11pt]{book}
\usepackage{longtable}
\usepackage{array}
\usepackage{rotating}
\usepackage{lipsum}
\newcolumntype{M}[1]{>{%
\parskip=0.5\baselineskip%
\advance\parskip by 0pt plus 2pt
\setlength{\parfillskip}{30pt plus 1fil}}m{#1}}
\newenvironment{exercise}[1]
{
\begin{longtable}{m{0.05\textwidth}|M{0.85\textwidth}}
\rotatebox{90}{\textbf{Övning}} & \textbf{#1} \newline
}
{\end{longtable}
\bigskip
}
\begin{document}
\lipsum
\begin{exercise}{1}
\lipsum
\end{exercise}
\end{document}
答案1
您不能使用 longtable 这样的组合。在休斯推荐了该软件包mdframed
。在下面的例子中,您可以找到两种可能的情况mdframed
。
如果您还有其他问题,可以询问;-)
编辑:更改代码
\documentclass[11pt]{book}
\usepackage[framemethod=default]{mdframed}
\usepackage{rotating}
\usepackage{lipsum}
\makeatletter
\newrobustcmd\Titleenv[1]{%
\setbox0=\hbox{\rotatebox[origin=cc]{90}{\textbf{#1}}}
\setlength\@tempdimc{\dimexpr\ht0+\dp0\relax}
\renewcommand*\md@@frametitle{%
\llap{\smash{\raisebox{-.5\@tempdimc}{\box0}\hspace*{2em}}}}%
\appto\md@frame@leftline@single{%
\ifdimgreater{\mdfboundingboxheight}{\@tempdimc}%
{}%
{%
\llap{\color{\mdf@middlelinecolor}%
\rule[\dimexpr-.5\@tempdimc-\mdf@innerbottommargin@length\relax]%
{\mdf@middlelinewidth@length}%
{\dimexpr\@tempdimc+\mdf@innerbottommargin@length
+\mdf@innertopmargin@length\relax}%
}%
}%
}%
}
\newenvironment{exercise}{%
\mdfsetup{topline=false,rightline=false,bottomline=false,linecolor=red,
linewidth=2pt,skipbelow=\topskip,skipabove=\topskip}
\Titleenv{\"Ovning}%
\begin{mdframed}[]%
}{\end{mdframed}}
\begin{document}
\begin{exercise}
\lipsum[1]
\end{exercise}
\lipsum[1]
\begin{exercise}
Text
\end{exercise}
\lipsum[1]
\begin{exercise}
\lipsum
\end{exercise}
\end{document}
上述代码执行结果如下图所示:
答案2
也可以在默认文本宽度内设置行和垂直文本
\documentclass[11pt]{book}
\usepackage{framed}
\usepackage{rotating}
\usepackage{lipsum}
\newenvironment{exercise}[1]
{\par\begin{leftbar}\noindent\textbf{#1}\\
\makebox(0,0){\put(-30,-50){\rotatebox{90}{\textbf{Övning}}}}\ignorespaces}
{\end{leftbar}\par}
\begin{document}
\lipsum
\begin{exercise}{1}
\lipsum
\end{exercise}
\end{document}