首页 > 其他分享 >markdown转pdf,方法总结

markdown转pdf,方法总结

时间:2024-10-22 20:00:29浏览次数:5  
标签:总结 md markdown pandoc Markdown PDF pdf

 

总结使用

1. VScode插件Markdown Preview Enhanced。格式是正确的。但是无法批处理和指令处理   2. pandoc --pdf-engine=typst。无法导出粗体和斜体

 

需求

markdown格式转为pdf

 

我遇到的:

1. 我现在想把多个八股文文档(GitHub项目里的 scutan90/DeepLearning-500-questions: 深度学习500问,以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,以帮助自己及有需要的读者。 全书分为18个章节,50余万字。由于水平有限,书中不妥之处恳请广大读者批评指正。 未完待续............ 如有意合作,联系[email protected] 版权所有,违权必究 Tan 2018.06

2. 有的GitHub项目,可以导出markdown、pdf,比如OI-Wiki

 

遇到问题

1. markdown格式,涉及多种不同的设计规则。这里应该是Github专门的md格式

2. 公式有时识别不到

3. 换行、图片位置,有时做得不好

4. 中文、英文字体和粗体,有时无法处理

 

着手方向

1. Github本身是怎么处理打印这件事的。还有参考一些项目,比如OI-Wiki,看看它们怎么去处理,它们挺有打印成pdf的需求的。

2. 一些已有的GitHub项目,python库,还有Foxit这样的PDF阅读器,还有一些md的软件,比如typora。

3. 搜索VScode插件、GitHub项目,关键词如multi、multiply、batch

 

 

已有方法,网上的讨论

How Can I Convert Github-Flavored Markdown To A PDF - Super User    

 

 

  http://www.markdowntopdf.com    

 

   

vscode插件Markdown Preview Enhanced

格式都挺好的

不过只能手动处理,而且无法批处理

 

Markdown PDF vscode插件 / 工具

 

但是转pdf或html,效果不好:

 这是因为markdown转pdf 公式没有得到转换

采用VScode中Markdown PDF无法正确输出包含公式的pdf解决方案_markdown pdf 数学公式无法识别-CSDN博客 这里的方法解决,

Markdown PDF无法正确输出包含公式的pdf解决方案
安装该插件后,可以找到如下路径文件

C://Users/<username>/.vscode/extensions/yzane.markdown-pdf-XXX/template/template.html
然后在该文件末尾添加如下两行javascript代码。

 

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: {inlineMath: [['$', '$']]}, messageStyle: "none" });</script>

 

 

vscode插件Markdown All in One

Ctrl+Shift+P: Markdown: Print current document to HTML 或者右键

可以批处理

 

 

得到的是md->html,完整文件夹多级结构的一一对应。特别好!

 

但是只能转html格式

它的换行没做好,比如(1)(2)(3)缩在了同一行。

还有有些图片的换行、居中、大小不太好。

 

而且无法用指令去处理,但是其实批处理一个文件夹内的所有文件,已经挺可以了。

 

html转pdf

1. wkhtmltopdf:公式有些没识别到,还有公式格式有点难看

2. foxit:可以批处理,选择一个文件夹。有些图片的换行、居中、大小不太好

 

 

markdown-pdf项目

alanshaw/markdown-pdf: Markdown to PDF converter

 

选择node版本11.10(选择高版本可能会报错):

npm install markdown-pdf --save

 

 

它可以进行批处理

alanshaw/markdown-pdf: Markdown to PDF converter

这是官方提供的,From multiple paths to multiple paths:

var markdownpdf = require("markdown-pdf")

var mdDocs = ["home.md", "about.md", "contact.md"]
  , pdfDocs = mdDocs.map(function (d) { return "out/" + d.replace(".md", ".pdf") })

markdownpdf().from(mdDocs).to(pdfDocs, function () {
  pdfDocs.forEach(function (d) { console.log("Created", d) })
})

 

node xxx.js

 

 

但是公式没识别出来 

 

emmm,也有人提出需求:Is there a way to use MathJax? · Issue #155 · alanshaw/markdown-pdf 

 

pandoc

1. pandoc --pdf-engine=xelatex

有可能遇到问题

! Package amsmath Error: Erroneous nesting of equation structures; (amsmath) trying to recover with `aligned'.

See the amsmath package documentation for explanation. Type H <return> for immediate help. ...

l.584 \end{align*}

 

解决方案是把前后的"$$"删除

 

2. pandoc --pdf-engine=typst

遇到问题,无法粗体和斜体

使用

--ascii

--highlight

-V CJKmainfont:SourceHanSerifCN-Regular -V CJKoptions:BoldFont=SourceHanSansCN-Medium,ItalicFont=STKaiti

都不行

 

潜在解决方法:官方文档(后续我没处理了,有点麻烦)

用 pandoc 让 Markdown 从 LaTeX 输出 pdf 文档 - 黄石的时空回环

中文没有加粗 | Typst 中文社区导航

 

其它方法和软件

1. prince软件(Markdown Preview Enhanced里面有使用)

2. 

 

效果均不太理想

 

标签:总结,md,markdown,pandoc,Markdown,PDF,pdf
From: https://www.cnblogs.com/cmyg/p/18492942

相关文章

  • RocketMQ - 总结
    1.为什么要使用MQ,使用场景是什么异步:减少请求响应时间,实现非核心流程异步化(架构设计原则,能异步就不要同步)解耦:屏蔽异构平台的细节,生产者消费者可自行扩展修改系统能力只需遵循消息约束,生产者消费者不受对方影响流量削峰:消息堆积能力,消息保存在MQ中,消费端以稳定的速率拉......
  • CSP近四年总结及2024预测
    近四年算法出现频率(按频率排序,且按每年是否出现统计)动态规划dp——\(100\%(\frac{4}{4})\)贪心——\(100\%(\frac{4}{4})\)搜索——\(75\%(\frac{3}{4})\)图论——\(75\%(\frac{3}{4})\)二分——\(50\%(\frac{2}{4})\)基础数据结构——\(50\%(\frac{2}{4})\)......
  • 10月做题总结
    Cardscoring题面:共\(n\)张牌,给定一个\(k~(2\lek\le4)\)每张牌有个种类\(a_i(1\lea_i\len)\)按从小到大的顺序取牌,每张牌可以选或不选,每个时刻只允许手中只有一个种类的牌。每个时刻可以结算手中的牌的分值,假如手中有\(x\)张牌,获得的分是\(x^{\frac{k}{2}}\)......
  • 如何将MySQL巡检内容转换成PDF格式报告呢?
    一、背景:最近在运维一个历史项目,没有任何的运维工具,甲方要求每日进行数据库的运维,而且必须进行相关的巡检项的截图并输出报告。为了节省时间,我们可以把原来的巡检脚本修改成HTML格式输出后,进行PDF的转换。二、脚本内容:[root@postgresql~]#chmod+xmysqlcheckhtml.s......
  • Markdown学习
    Markdown学习标题三级标题字体helloworldhelloworldhelloworldhelloworld引用come分割线图片![截图](C:\Users\Flipped\Pictures\CameraRoll\src=http___inews.gtimg.com_newsapp_bt_0_14373560901_1000&refer=http___inews.gtimg.png)超链接点击跳转到......
  • Git 回退操作总结
    1.gitreset--hardA用法:将当前分支和工作目录回退到提交A。作用:完全丢弃提交B的所有更改,永久删除B的历史记录和工作目录更改。示例假设当前提交历史如下:A--B--C--D(master)执行命令:gitreset--hardA结果:A(master)所有的B、C、D提交都被......
  • 2024.10.22总结
    本文于github博客同步更新。今天打两场byd放三道黑是吧。第一场:A:CF1261F将区间拆分为\([x2^{i},(x+1)2^{i})\)的形式,发现两个区间中的数两两异或后形成的仍为一个区间,将A,B都拆分后区间两两异或会得到\(O(n^2\log^2n)\)个区间,取并即为答案,但复杂度无法接受。发现对......
  • SpringBoot 面试常见问答总结(一)
    1.什么是SpringBoot?SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,使开发者能快速上手。2.为什么要用SpringBoot?快速开发,快速整合,配置简化、内嵌服务容器3.SpringBoot与Spring......
  • 【Markdown速成】半小时入门Markdown(后缀.md文件详解)
    目录一.认识MarkdownMarkdownTypora二.Typora设置三.Markdown语法1.标题2.正文2.1分割线2.2删除线2.3下划线2.4斜体2.5粗体2.6斜粗体2.7高亮 2.8字体属性(大小及颜色)2.9对齐方式2.10引用3.列表有序列表无序列表 4.超链接5.表格6.代码一.认识Markdown......
  • 【新书】构建大型语言模型,370页pdf
    学习如何从零开始创建、训练和调整大型语言模型(LLMs)在《从零构建大型语言模型》一书中,畅销书作者塞巴斯蒂安·拉什卡(SebastianRaschka)将一步步指导你创建自己的LLM。每个阶段都有清晰的文字、图表和示例解释。从最初的设计和创建,到基于通用语料库的预训练,再到为特定任务......