Markdown 如何创建不分页的 pdf 文件?

问题详细描述

我们平时可能会使用 markdown 进行写作或记笔记,并使用各种各样线上或线下的 markdown 编辑/渲染器

但是我遇见了一个问题,老师要求交作业,我想生成 pdf 上交

发现我的笔记软件和 Chrome 的打印功能,都强制分页,这看起来很不舒服

尤其是比较致命的一点是排版难看,比如:

  • 有的页最后只剩一个 2 级标题,段落在下一段
  • 有的插图被分成两半

调整页尺寸也看运气,可能页面调大了,这个地方看着舒服了,另一个地方又难看了

我们平时上网或者用笔记软件都是一个滚动条,从头滑到尾,严格尺寸的分页情况几乎不存在了


讨论

用 Word? 那太麻烦了,虽然能排版得好看,但是需要花很多时间,主要是我还有一堆公式和图片,手工操作太多。

\LaTeX 渲染? 我目前还不太熟练用 \LaTeX 写东西,平时的小作业用 \LaTeX 还是有点麻烦

把 markdown 原文件交给老师?

  • 我不知道老师用不用 markdown,我观察来看,很多老师用的都是 Office 软件和 pdf 阅读器
  • 我现在没还搞图床,插图都是本地的,不好上交,所以最好是在我这里先渲染好
  • 有些公式代码需要看 markdown 渲染器是否内置了宏包

经过上述思考,重新描述我的问题:

我目前用 markdown 写作业最顺手,但是不知道怎么渲染一个良好的 pdf 交给老师

試試用Pandoc - About pandoc轉換,簡單用法:

pandoc in.md -o out.docx
2 个赞

pdf 都要分页吧。我一般是生成网页,这样不会被截断。

1 个赞

试了一下,整体效果不错,但是有一些公式代码转换失败了(猜测是 word 能支持的公式代码比较有限)

1 个赞

你说的是 html 文件吗?(我竟然把这个给忘了,我去试试 html 的效果)

还是生成公共在线文档?

思路打开:你都会用pandoc了,.md想转.tex、.html不都可以试试

2 个赞

就是单 html 文件,图像之类也能嵌入,本地就能浏览

2 个赞

地方不多的話可以手動改,講究一點可以裝個TeX環境,Pandoc轉LaxTex再編譯成PDF。

1 个赞

这次作业先糊弄过去了,下次再好好研究一下怎么弄最舒适。


还有一点,就是 markdown 的渲染器有的支持 css 主题,能让文章变得很好看,感觉 html 文件可以

你可以把页面长度定义的非常大,但是没有不分页的pdf,pdf是面向打印的,你应该考虑输出成网页格式

3 个赞

现在就是分页的pdf能够集成单一文件的内容,html能够连冠但样式好看总是得分成多个文件,单文件html又支持有限。鱼和熊掌以及鸭舌,不可得兼

1 个赞

我是先把Obsidian里编辑的md复制一份出来,用支持正则的查找替换插件,把图片(截图)链接替换成能在浏览器里渲染的格式:

然后在firefox里打开本地md文件,并使用以下两个浏览器扩展,渲染→预览同时编辑→打印成PDF:

2 个赞

html 可以用 SingleFile 保存为单一文件
html 打印成 pdf 也可以简单地通过 css 设置避免标题和段落被分在两页、图片被分在两页的问题:

h1, h2, h3 {break-after: avoid}
img {break-after: avoid}
2 个赞

受教了。

这个需要有软件自定义页面尺寸才行

1 个赞

Markdown 文件可以轻松的导出为 HTML 文件,但无论如何,通过打印来保存 PDF 的方式,都会强制分页

这导致网页的排版效果会丢失,阅读体验不如原网页,有没有办法将 PDF 输出为 1 个页面呢?

PDF Mage,是我目前能找到效果最好的一款拓展。

但拓展 PDF Mage 也并不是完美无缺的。

通过 PDF Mage 保存的 PDF 文件,有时也会出现字体变换、颜色变换、细节丢失等情况。

不过,就拓展来说,PDF Mage 已经是这方面的“天花板”了。

能真正意义上,能将网页 1:1 另存为 PDF 的。

当属 Windows 下的 Opera 浏览器,还有 macOS 下 的 Safari 浏览器。

Opera 浏览器自带就有“另存为 PDF”的功能。

效果可以说一模一样,而且保存速度极快,即使网页内容再多,文件再大,也都能正常保存。

2 个赞