我正在Github上写一系列Markdown文档,努力使编辑过程可分叉并合并。我打算首先渲染为PDF格式。我只需要这些印刷功能:
我使用pandoc
作为我的Markdown解析器,最初直接尝试LaTeX / PDF输出。然而I asked a question on that已经放弃了 - LaTeX使用起来很慢且难以使用(imo),并且似乎不鼓励对其他格式(特别是HTML)有用的内联预格式样式的类属性。
所以,我现在使用Pandoc转换为HTML,然后使用wkhtmltopdf
将HTML转换为PDF。这让我获得了90%的我正在寻找的排版功能,而且只需要很少的努力,所以我认为这是一个很好的方法。但是,在段落之前的标题和无序列表之前的段落中,我希望保持下一个或孤立控制,但这似乎不受支持。我尝试过这些CSS功能:
li {
/* Try to avoid breaking inside a bullet, doesn't work for me */
break-inside: avoid-page;
}
ul {
/* Try to avoid breaking before a bullet list, doesn't work for me */
page-break-after: avoid;
}
p {
/* Not supported by Webkit: https://developer.mozilla.org/en-US/docs/Web/CSS/orphans */
orphans: 2;
}
从我的代码中可以看出,orphans
听起来很理想,但它对PDF输出没有任何影响,Mozilla引用说Webkit(由Wkhtmltopdf内部使用)并不支持它
我能做些什么来实现这个目标?我觉得我非常接近,但令人沮丧的是,这是一个似乎没有任何明显解决方案的微不足道的问题。虽然我已经付出了一些努力来学习Pandoc和Wkhtmltopdf,但我愿意放弃其中一个或两个支持其他F / OSS工具,如果它们可以表现得更好。
我不想消失太多无意义的兔子洞,但我看到Pandoc可以渲染到ODT。我的主文档保存在ODT中(使用OpenOffice),其格式为完美,包括我想要的所有保持下一个。也许我可以有一个ODT文档来指定样式,然后将它与Markdown文档一起转换。这值得尝试吗?
Pandoc的HTML输出正确地区分了所有标记,所以我想知道是否可以添加新的HTML到PDF转换器。 Dompdf听起来不错,所以我也会给它一个。
我会在某些时候使用像Lyx这样的编辑器尝试原始的LaTeX - 我无法想象LaTeX没有与下一个保持一致,并且围绕它的GUI将软化锋利的边缘!这并不理想,因为LaTeX不像Markdown那样可读,但我认为它仍然可以以相同的方式合并。
答案 0 :(得分:1)
使用this article我试图将Markdown转换为ODT;然而,它仍然不完美。
使用这种方法,我可以包含一个包含预定义样式的“参考文档”。因此,孤立控制和保持与下一步现在已经触手可及 - 我只需重新定义参考文档中的样式,并将其正确添加到输出中。
<ul>
创建一种样式。因此,这种方法向前迈出了一步,又退了几步!
我已切换到DOMPDF,我的大多数分页控件似乎都在工作! :=)
我发现了一些小bug,但他们有CSS解决方法。我会继续研究这个文件,但我怀疑我最终会采用这个解决方案。