如何创建梯形多色曲线?

如何创建梯形多色曲线?

我想创建一个 XeLaTeX 布局, multicol其中的列(本例中为两列,没有图形,只有文本)在相交处倾斜。线条仍然应该是彼此下方的普通线条,但每条线的起点/终点应该每条线滑动一点,使其看起来像这样:

xxxxxxxxxx  xxxx
xxxxxxxxxx  xxxx
xxxxxxxxx  xxxxx
xxxxxxxxx  xxxxx
SECTION   xxxxxx
xxxxxxxx  xxxxxx
xxxxxxx  xxxxxxx
xxxxxxx  xxxxxxx
xxxxxx  xxxxxxxx
xxxxxx  xxxxxxxx
xxxxx  xxxxxxxxx
xxxxx  xxxxxxxxx
xxxx  SUBSECTION
xxxx  xxxxxxxxxx

因此,不是整根柱子都倾斜,而一根柱子变窄,而另一根柱子变宽。

我见过使用的示例\parshape,但我发现这些示例都是基于计算行数并或多或少手动定义形状。我还需要 LaTeX 保留功能multicol(分页符、文本流等),并在较长的章节的每一页上自动执行这些操作。

我该如何创建这样的布局?如果multicol这种布局不容易混合,有什么替代方案吗?

答案1

在此处输入图片描述

这有太多限制,我不知道从哪里开始。主要限制是您需要用\endgrafnot来分隔段落\par(并且需要在本地重新定义节标题以不使用\par它们)。

\documentclass{article}
\usepackage{shapepar}
\iffalse
xxxxxxxxxx  xxxx
xxxxxxxxxx  xxxx
xxxxxxxxx  xxxxx
xxxxxxxxx  xxxxx
SECTION   xxxxxx
xxxxxxxx  xxxxxx
xxxxxxx  xxxxxxx
xxxxxxx  xxxxxxx
xxxxxx  xxxxxxxx
xxxxxx  xxxxxxxx
xxxxx  xxxxxxxxx
xxxxx  xxxxxxxxx
xxxx  SUBSECTION
xxxx  xxxxxxxxxx
\fi
\count0=0
\def\a{\advance\count0 1 \the\count0. One two three four. }
\def\b{\a\a\a\endgraf\a\a\a Red blue green yellow. }
\def\c{\b\b}
\def\z{\c\c}

\begin{document}
\makeatletter
\let\@@SH@restack\SH@restack
\def\SH@restack{\def\nobreak{\penalty\z@}\@@SH@restack}
\setbox8\hbox{\Shapepar
{{6}
{0}b{0}\\
{0}t{0}{12}\\
{1}t{0}{12}\\
{2}t{0}{11}\\
{3}t{0}{11}\\
{4}t{0}{9}\\
{5}t{0}{10}\\
{6}t{0}{9}\\
{7}t{0}{9}\\
{8}t{0}{8}\\
{9}t{0}{6}\\
{10}t{0}{6}\\
{11}t{0}{4}\\
{12}t{0}{4}\\
{12}e{0}\\
{13}b{14}\\
{13}t{14}{4}\\
{14}t{14}{4}\\
{15}t{13}{5}\\
{16}t{13}{5}\\
{17}t{12}{6}\\
{18}t{12}{6}\\
{19}t{11}{7}\\
{20}t{11}{7}\\
{21}t{10}{8}\\
{22}t{8}{10}\\
{23}t{8}{10}\\
{24}t{6}{12}\\
{25}t{6}{12}\\
{25}e{6}}
\z
\par}



{
\setbox0\hbox{\unhbox8 \global\setbox1\lastbox}
\dimen0\ht1
\advance\dimen0\dp1
\divide\dimen0 by 2
\splittopskip\baselineskip
\setbox0\vsplit1 to \dimen0
\setbox0=\vbox{\break\unvbox0}
\setbox2=\vsplit0 to 0pt
\box0
\nobreak
\vskip-\dimen0
\box1
}






\end{document}

请注意,这是一个更新的答案,在第一个版本中,我弄乱了shapepar线条规格,导致右边缘摇晃。

答案2

您说出名字,我们就有;)。

ftp://ftp.gust.org.pl/pub/GUST/bulletin/08/07bj.ps.gz

缺点:文章是波兰语的。但是那里有(简单的)TeX 代码,它或多或少可以满足您的要求(以及更多功能)。

相关内容