我试图在多列环境中加入一节诗,以使诗歌的行间不出现间断。
我曾希望
\settowidth{\versewidth}{}
\begin{verse}[\versewidth]
会为我做到这一点。但事实并非如此。
考虑MWE:
\documentclass{book}
\usepackage{lipsum}
\usepackage{verse}
\usepackage{xcolor}
\usepackage{multicol}
\setlength{\columnsep}{1cm}
\begin{document}
\begin{multicols}{2}
\lipsum[3]
\settowidth{\versewidth}{Behind the clouds the sun is shining}
\begin{verse}[\versewidth]
\begin{footnotesize}
\textbf{\textcolor{red}{Be still sad heart. stop repining, \\
Behind the clouds the sun is shining; \\
Yours is the common fate of all--- \\
Into each life some rain must fall.}}
\end{footnotesize}
\end{verse}
\end{multicols}
\end{document}
输出
由于我使用的footnotesize
是诗句字体,所以段落下方似乎应该有足够的空间来实现这一点,但事实并非如此。
问题:如何增加诗句环境的默认宽度,以便每行诗句在段落下都完整显示?在这种情况下,如果最长的一行略微超出列宽,我不会反对——尽管我不确定 LaTeX 是否允许这样做。
谢谢。
答案1
用于\settowidth{\versewidth}{\footnotesize \bfseries Behind the clouds the sun is shining}
测量最长线的正确长度。
非常接近。列宽为 158.27 pt。
\bfseries
不带nor 的诗句宽度\footnotesize
为 158.97pt,略大一些。
正确的诗句宽度是 156.21 pt。
\documentclass{book}
\usepackage{lipsum}
\usepackage{verse}
\usepackage{xcolor}
\usepackage{multicol}
\setlength{\columnsep}{1cm}
\begin{document}
\begin{multicols}{2}
\lipsum[3]
\settowidth{\versewidth}{\footnotesize \bfseries Behind the clouds the sun is shining} % changed <<<<<<
\begin{verse}[\versewidth]
\footnotesize \bfseries \textcolor{red}{
Be still sad heart. stop repining, \\
Behind the clouds the sun is shining; \\
Yours is the common fate of all--- \\
Into each life some rain must fall.}
\end{verse}
\end{multicols}
\end{document}