使用 scrlttr2 在第一页和后续页面上设置不同的文本宽度

使用 scrlttr2 在第一页和后续页面上设置不同的文本宽度

\textwidth第一页和所有其他页面的价值观有可能不同吗?

在第一页上,我想将文本的宽度设置为 12 厘米,在接下来的页面上设置为 16 厘米。

\documentclass[ngerman,12pt]{scrlttr2}
\usepackage{babel,blindtext}

\setlength{\textwidth}{12cm}

\setkomavar{fromname}{Just me}
\setkomavar{fromaddress}{Just some place}

\begin{document}
\begin{letter}{Some one \\ Some Place}
\opening{fsdfsdafs}

\blindtext[5]

\closing{Best wishes}
\end{letter}
\end{document}

答案1

基本技术如下:

在此处输入图片描述

\documentclass[ngerman,12pt]{scrlttr2}
\usepackage{babel,blindtext}

\setlength{\textwidth}{16cm}

\setkomavar{fromname}{Just me}
\setkomavar{fromaddress}{Just some place}

\def\pshape#1{%
\parshape #1 \pshapexiicm{#1} 0pt 16cm }

\def\pshapexiicm#1{%
 \ifnum#1>1 0pt 12cm \expandafter
  \pshapexiicm\expandafter{\the\numexpr#1-1\expandafter\relax\expandafter}\fi}

\begin{document}



\begin{letter}{Some one \\ Some Place}
\opening{fsdfsdafs}

\pshape{26}
aaa\blindtext[5]

\closing{Best wishes}
\end{letter}
\end{document}

为了使其更加通用,您需要捕获段落中断并使用\parshape减少的短行数重新启动新段落,具体取决于您刚刚编写的行数。(可以从wrapfig包中窃取代码:-)

然而,如果页面上有拉伸parskip或其他复杂内容,那么计算出到底需要多少条短线可能会很困难。

相关内容