我正在使用 排版一本书memoir
,XeLaTeX
但在某些页面上,作为一种强调,我想制作一个有角度的边距,如下所示:
即使我必须为每一行或其他内容单独定义页面限制,这是否可以使用和来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
包装......