我正在考虑用 LaTeX 设计一本相册,但担心会遇到意想不到的问题,所以想提供一些细节,看看如何实现这些问题。我对这本书的想法:
- 方形页面,例如 8.5 x 8.5,带有出血区域
- 一些不同的布局
- 与页面宽度相同的横向图像,下方带有文字
- 一页长的肖像图片,外面有文字
- 双页横向图像,横跨页面长度,填充左侧页面和右侧页面的一部分,文本位于右侧页面
- 同上,但双页横向图像在右侧对齐,而不是左侧对齐
- 每张图片大约有一段文字,但不会溢出到下一页
我已经读过了这里使用浮点数的一些顾虑。我该如何处理这样的 LaTeX 项目,例如我应该从哪个类开始,以及如何将 LaTeX 融入这些布局?或者,LaTeX 真的不是这项工作的合适工具,我最好去做类似的事情抄写员?我更喜欢 LaTeX。
答案1
我不确定 TeX 是否是适合此目的的工具。如果您要打印这本书,那么您购买的网站上可能会有专门用于创建照片书的“应用程序”。我还没有尝试过,但我认为它们只是用来做您想要的那种设置。
不过,如果你想用 LaTeX 来实现,我认为你可以使用 tikz 和一些后台机制。我不知道细节,但我相信有人会给你指明正确的方向。
与此同时,我或多或少做了你想要的事情,但是使用图层语境。我使用比例为 2:3(或 3:2)的照片。它们\dontleavehmode
只是为了除了图层之外没有“空白页”。在第一个版本中,我将文本放在图层中,但睡了一觉后,我想我更喜欢将文本放在普通页面上。也许不太灵活,但可能更简单。
下面是代码和(两张)输出图像。该文件是用 编译的context
。希望它能有所帮助。祝你好运!
\definepapersize[photobook][
width=8.5in,
height=8.5in,
]
\setuppapersize[photobook]
\setupalign[flushleft,verytolerant]
\setupbodyfont[ebgaramond]
\setuppagenumbering[
alternative=doublesided,
state=stop,
]
\setuplayout[
backspace=0.5in,
topspace=0.5in,
margin=0in,
width=fit,
height=fit,
header=0in,
footer=0in,
alternative=middle,
]
\definelayout[photopage][
backspace=6in,
width=2in,
]
\definelayer[portrait][
width=\paperwidth,
height=\paperheight,
doublesided=yes,
]
\definelayer[landscape][
width=\paperwidth,
height=\paperheight,
doublesided=yes,
]
\definelayer[doublebackground][
width=\paperwidth,
height=\paperheight,
doublesided=yes,
]
\setupbackgrounds[page][background={doublebackground,portrait,landscape}]
\starttexdefinition LeftPoirtrait #1
\setlayer[portrait][left][
corner={right,top},
location={left,bottom},
]{#1}
\stoptexdefinition
\starttexdefinition RightPoirtrait #1
\setlayer[portrait][right]{#1}
\stoptexdefinition
\starttexdefinition LandScape #1
\setlayer[landscape]{#1}
\stoptexdefinition
\starttexdefinition LeftDouble #1
\setlayer[doublebackground][left]{\externalfigure[#1][width=1.5\paperwidth]}
\setlayer[doublebackground][right][
x=0.5\paperwidth,
y=0in,
corner={right,top},
location={left,bottom},
]{\externalfigure[#1][width=1.5\paperwidth]}
\stoptexdefinition
\starttexdefinition RightDouble #1
\setlayer[doublebackground][left][
x=0.5\paperwidth,y=0in,
location={right,bottom},
corner={left,top},
]{\externalfigure[#1][width=1.5\paperwidth]}
\setlayer[doublebackground][right][
x=\paperwidth,
y=0in,
location={left,bottom},
corner={left,top},
]{\externalfigure[#1][width=1.5\paperwidth]}
\stoptexdefinition
\starttext
\start
\switchtobodyfont[130pt]
\leftaligned{The}
\midaligned{Photo}
\rightaligned{Book}
\stop
\page[even]
\setuplayout[photopage]
\LeftPoirtrait{\externalfigure[MX033-30.jpg][height=\paperheight]}
\samplefile{ward}
\page[yes]
\RightPoirtrait{\externalfigure[MX023-20.jpg][height=\paperheight]}
\dontleavehmode
\vfill
\samplefile{ward}
\page[even]
\LandScape{\externalfigure[autumn.jpg][width=\paperwidth]}
\dontleavehmode
\vfill
\samplefile{ward}
\page[yes]
\LandScape{\externalfigure[matematiker.jpg][width=\paperwidth]}
\dontleavehmode
\vfill
\samplefile{ward}
\page[even]
\LeftDouble{shark.jpg}
\dontleavehmode
\page[yes]
\dontleavehmode
\samplefile{knuth}
\page[even]
\RightDouble{hund.jpg}
\samplefile{knuth}
\page[even]
\setuplayout[reset]
\start
\switchtobodyfont[130pt]
\leftaligned{This is}
\rightaligned{the end}
\stop
\stoptext