是否可以排版成带角度的边距?

是否可以排版成带角度的边距?

我正在使用 排版一本书memoirXeLaTeX但在某些页面上,作为一种强调,我想制作一个有角度的边距,如下所示:

在此处输入图片描述

即使我必须为每一行或其他内容单独定义页面限制,这是否可以使用和来XeLaTeX实现Memoir

抱歉,我想包含 MWE,但我真的不知道从哪里开始。

答案1

如果你足够耐心:

在此处输入图片描述

代码:

\documentclass{memoir}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{lipsum}

\setmainlanguage{latin}
\nonzeroparskip

\begin{document}

\parshape
  12 
  6cm \dimexpr\textwidth-6cm\relax
  5.75cm \dimexpr\textwidth-5.75cm\relax
  5.5cm \dimexpr\textwidth-5.5cm\relax
  5.25cm \dimexpr\textwidth-5.25cm\relax
  5cm \dimexpr\textwidth-5cm\relax
  4.75cm \dimexpr\textwidth-4.75cm\relax
  4.5cm \dimexpr\textwidth-4.5cm\relax
  4.25cm \dimexpr\textwidth-4.25cm\relax
  4cm \dimexpr\textwidth-4cm\relax
  3.75cm \dimexpr\textwidth-3.75cm\relax
  3.5cm \dimexpr\textwidth-3.5cm\relax
  3.25cm \dimexpr\textwidth-3.25cm\relax
\lipsum[2]
\parshape
  8 
  3cm \dimexpr\textwidth-3cm\relax
  2.75cm \dimexpr\textwidth-2.75cm\relax
  2.5cm \dimexpr\textwidth-2.5cm\relax
  2.25cm \dimexpr\textwidth-2.25cm\relax
  2cm \dimexpr\textwidth-2cm\relax
  1.75cm \dimexpr\textwidth-1.75cm\relax
  1.5cm \dimexpr\textwidth-1.5cm\relax
  1.25cm \dimexpr\textwidth-1.25cm\relax
\lipsum[4]

\end{document}

答案2

这不是对我问题的回答,而是对 Gonzalo Medina 说“如果你足够耐心”的回应

我没有耐心,但是我有python。

from __future__ import division

margin = -.25
step = .07

def paragraph(lines,margin,step,name):
    print "\\newcommand{\paragraph%s}{" %(name)
    print " \parshape"
    print " ",lines
    for lines in range(0,lines):
        print " %sin\dimexpr\\textwidth-%sin\\relax" %(margin, margin)
        margin = margin+step
    print "}"
    print ""
    return margin + (.75*step)

margin = paragraph(1,margin,step,"click")
margin = paragraph(5,margin,step,"one")
margin = paragraph(7,margin,step,"two")
margin = paragraph(4,margin,step,"three")
margin = paragraph(3,margin,step,"four")
margin = paragraph(3,margin,step,"five")

该脚本计算直角边距,从“ margin”开始,然后按“ step”步进每一行。

此脚本生成 parshape 代码作为命令,以自动计算段落和内容。它输出:

\newcommand{\paragraphclick}{
    \parshape
    1
    -0.25in\dimexpr\textwidth--0.25in\relax
}

\newcommand{\paragraphone}{
    \parshape
    5
    -0.1275in\dimexpr\textwidth--0.1275in\relax
    -0.0575in\dimexpr\textwidth--0.0575in\relax
    0.0125in\dimexpr\textwidth-0.0125in\relax
    0.0825in\dimexpr\textwidth-0.0825in\relax
    0.1525in\dimexpr\textwidth-0.1525in\relax
}

\newcommand{\paragraphtwo}{
    \parshape
    7
    0.275in\dimexpr\textwidth-0.275in\relax
    0.345in\dimexpr\textwidth-0.345in\relax
    0.415in\dimexpr\textwidth-0.415in\relax
    0.485in\dimexpr\textwidth-0.485in\relax
    0.555in\dimexpr\textwidth-0.555in\relax
    0.625in\dimexpr\textwidth-0.625in\relax
    0.695in\dimexpr\textwidth-0.695in\relax
}

\newcommand{\paragraphthree}{
    \parshape
    4
    0.8175in\dimexpr\textwidth-0.8175in\relax
    0.8875in\dimexpr\textwidth-0.8875in\relax
    0.9575in\dimexpr\textwidth-0.9575in\relax
    1.0275in\dimexpr\textwidth-1.0275in\relax
}

\newcommand{\paragraphfour}{
    \parshape
    3
    1.15in\dimexpr\textwidth-1.15in\relax
    1.22in\dimexpr\textwidth-1.22in\relax
    1.29in\dimexpr\textwidth-1.29in\relax
}

\newcommand{\paragraphfive}{
    \parshape
    3
    1.4125in\dimexpr\textwidth-1.4125in\relax
    1.4825in\dimexpr\textwidth-1.4825in\relax
    1.5525in\dimexpr\textwidth-1.5525in\relax
}

然后,您可以用相应的命令标记每个段落:\paragraphone \paragraphtwo \paragraphthree或者您设置python脚本来命名它们。

希望我已经将其写入Lua以供使用LuaLaTeX,但是哦,好吧。

我可能只需要大约一个小时就可以将其制作成一个基本LuaLaTeX包装......

相关内容