如何在四开渲染中将一页分成两列

问题描述 投票:0回答:1

正如标题所说,我试图将四开文档的一页分成两列,该文档正在使用typst渲染为pdf。

我已经尝试过这两个选项

选项 1:pandoc 列


:::: {.columns}

::: {.column width="60%"}
blablablablablabla
:::

:::{.column width="40%"}
blablablabla
:::

::::

选项 2:原始打字员

# Here's the title
```{typst}
#set page(columns: 2) ```




blablablablablabla

```{typst}
#colbreak() ```

blablablabla

在这两种情况下,生成的打字代码都是

= Here's the title
<heres-the-title>
blablablablablabla

blablablabla

因此,没有列。

r pandoc quarto typst
1个回答
0
投票

您可以通过添加

typst-template.typ
show: columns.with(2)
文件中执行此操作。您可以添加一些其他配置选项。请参阅示例模板此处(第 177-179 行)和此处(第 142-144 行)。

使用此解决方案,您无法明确指定每列中显示的文本 - 它只是填充第一列,然后继续进入下一列(类似于 MS Word 中的工作方式)。

我使用了here引用的quarto创建扩展格式命令,它为打字机设置了

_extensions
目录。这创建了两个
.typ
文件:
typst-show.typ
typst-template.typ

这是

typst-template.typ

#let report(
  title: "title",
  body,
) = {
// adjust page defaults here 
set page(
  "us-letter",
  margin: (
  left: 1in, 
  right: 1in, 
  top: 1in, 
  bottom: 1in
  ))
    
  // Start two column mode and configure paragraph properties.
  show: columns.with(2)
  
  // Display the paper's contents.
  body
  
}

这是

typst-show.typ

#show: body => report(
$if(title)$
  title: [$title$],
$endif$

$if(by-author)$
  authors: (
$for(by-author)$
$if(it.name.literal)$
    ( name: [$it.name.literal$]),
$endif$
$endfor$),
$endif$

$if(date)$
  date: [$date$],
$endif$
  body,
)
© www.soinside.com 2019 - 2024. All rights reserved.