我有三个 3:2 格式的人物,其中两个是横向模式,一个是纵向模式。我想将它们排列在同一页上,两个水平图在左边,垂直图在右边。这是我使用网格函数非常简单地获得的结果。
#set align(center + horizon)
#set page(
width: 12.625in,
height: 10.875in,
margin: (x: 1in, y: 1in)
)
#grid(
rows: (auto),
columns: (auto, auto),
gutter: 0.2in,
grid(
rows: (auto, auto),
columns: auto,
gutter: 0.2in,
image("recth.jpg"),
image("recth.jpg"),
),
image("rectv.jpg"),
)
结果并不完全令人满意,因为我希望图形的顶部和底部边缘对齐。我可以通过手动调整网格函数中两列的相对宽度来做到这一点。
#grid(
rows: (auto),
columns: (1fr, 0.913fr),
gutter: 0.2in,
grid(
rows: (auto, auto),
columns: (auto),
gutter: 0.2in,
image("recth.jpg"),
image("recth.jpg"),
),
image("rectv.jpg"),
)
我的问题是:有没有办法自动实现这个结果(通过让typst自动找到合适的相对宽度)?
非常感谢社区提供这个精彩的项目。
您可以使每个肖像尺寸相同,确保它们为装订线留出空间,然后将它们与网格单元的顶部和底部对齐。
将其输入打字机,我们得到:
#let image-grid-2(grid-height, gutter) = {
let landscape-height = (grid-height - gutter) / 2
grid(columns: 2, rows: grid-height, gutter: gutter)[
#align(top, image("landscape.png", height: landscape-height))
#align(bottom, image("landscape.png", height: landscape-height))
][
#image("portrait.png", height: 100%)
]
}
#image-grid-2(3in, 0.1in)