我尝试将其转换mybook.adoc为mybook.pdfusing pandoc,并收到以下错误。
$ pandoc -s mybook.adoc -t asciidoc -o mybook.pdf
pandoc: cannot produce pdf output with asciidoc writer
Run Code Online (Sandbox Code Playgroud)
我还有其他工具可以代替或配合使用pandoc吗?如何将asciidoc转换为pdf?
小智 10
如果您使用的是 VS Code,请Ctrl + SHFT + P输入AsciiDoc: Export document as pdf
先决条件:仅需要Ruby(1.9.3或更高版本)
为AsciiDoc- Asciidoctor PDF 安装本机PDF转换器:
gem install asciidoctor-pdf --pre
Run Code Online (Sandbox Code Playgroud)
运行:
asciidoctor-pdf mybook.adoc
Run Code Online (Sandbox Code Playgroud)
您应该在同一目录中获得文件mybook.pdf。
如果您安装了 Docker,则可以使用AsciiDoctor Docker Image。然后您可以交互地或以批处理模式使用图像,如下所述:
先决条件
安装 Docker 镜像:
$ docker pull asciidoctor/docker-asciidoctor
Run Code Online (Sandbox Code Playgroud)通过执行以下命令创建 pdf:
$ cd [directory to where my book.adoc is located]
$ docker run --rm -v $(pwd):/documents/ asciidoctor/docker-asciidoctor asciidoctor-pdf mybook.adoc
Run Code Online (Sandbox Code Playgroud)
docker run 启动一个 Docker 容器--rm cleanup - 在命令执行后删除 Docker 容器-v 将卷挂载到映像$(pwd)获取当前目录的路径,例如[directory to where my book.adoc is located]上面的值documents 正在运行的容器中已安装卷的名称asciidoctor/docker-asciidoctor 用于创建 Docker 容器的 Docker 镜像的名称asciidoctor-pdf 实际触发pdf生成的命令mybook.adoc 要从中生成 pdf 的 AsciiDoc 源文件的名称另请参阅docker run文档
我现在意识到从 asciidoc 到 pdf 的理想途径是首先将 asciidoc 转换为 docbook。这采用了 asciidoc 和 docbook->pdf 转换器的预期范围,每个转换器都在其单独的关注领域中使用。
此外,pandoc我并没有发现,当包含数学公式时,更容易用于dblatexdocbook->pdf 转换。因此我的转换管道如下:
asciidoctor -> asciidoctor -> docbook -> dblatex -> pdf
示例生成文件:
make: my.adoc
asciidoc -b docbook my.adoc
dblatex my.xml
Run Code Online (Sandbox Code Playgroud)
此讨论页面表明 asciidoc 主要设计用于编译为 docbook。