CI论文格式模板使用教程系列分为三期:
✅(1)SCI论文格式模板使用教程(1)从期刊官网下载manuscript模板;
✅(2)如何将 Latex 模板转化为 Word 模板;
✅(3)按照 manuscript 模板快速导出论文。
本期是Obsidian+Zotero 联动做科研的第 38 集,内容承接上一篇,主要介绍如何将上一期下载的 Latex 文件转化为 Word 模板。
如果你还在自己随意排版 manuscript,那么可以看看笔者分享的这个系列,当然有的期刊可能并不要求 manuscript 的格式,但也有部分期刊会有按照模板排版的要求。
笔者写论文使用 Obsidian,但是提交论文需要转化为 doc 文件,这就需要用到 Pandoc 插件。如果想要将 manuscript 按照指定模板导出,就需要 Word 模板。但是上一期下载的是 tex 文件,就有些陌生了,因此我的方法就是将 tex 文件转化成自己熟悉的 Word 文件。
笔者尝试了常用工具(WPS)之类的文档工具,都不支持 Latex 转换 Word,只能另辟蹊径!
要实现 Latex 模板转换 Word 模板,需要用到第三方工具——Pandoc。
笔者曾经分享过 Obsidian 的 Pandoc 插件和 Pandoc 工具,请注意,pandoc 插件和 Pandoc 工具并不是同一个东西。
Pandoc 插件 是为了让 Obsidian 能够使用 Pandoc 工具而开发的中间插件。
Pandoc 工具 是一款免费的文档格式转换工具,堪称该领域的神器。Pandoc 是一个由 John MacFarlane 开发的通用文档转换工具,可以支持大量标记语言之间的格式转换。
这里推荐几个好用的 Pandoc 工具网站:
Pandoc 工具下载地址是:
https://github.com/jgm/pandoc
Pandoc 工具的用户手册:
https://pandoc.org/MANUAL.html
Pandoc 工具的 Online Demo:
https://pandoc.org/try
我们可以通过下图感受下Pandoc 工具作为格式转换工具的强大:它可以实现近乎所有的文档格式之间的转换,也包括 Latex。
Pandoc 工具的其它优点就是支持中文字符,可运行于多种操作系统,更新非常快,而且免费,全部操作在命令行下运行。
注意:将 Latex 转 Word 的方法不止这一种,大家可以去百度其他方法。本文介绍的 Pandoc 方法只是笔者自己熟悉且经常使用的方法,仅供参考。
安装好 Pandoc 工具以后,我们就可以将 Latex 转换成 Word 了。笔者介绍两种 Pandoc 工具的实现方法:
(1)命令行操作;
(2)线上操作。
➤ 命令行操作
命令行操作是最常用、最官方的方法,Pandoc 工具是没有操作界面的,命令行就是用户和 Pandoc 互通的窗口。
打开电脑的命令提示符,如下图所示。
如果你要 Latex 转 Docx,那么就输入以下指令:
pandoc -s a.tex -o b.docx
a.tex 就是我想要转换的 Latex 文件,b.docx 就是我想要输出的 Word 文件。
如果你要 Docx 转 Latex,那么就输入以下指令:
pandoc -s a.docx -o b.tex
a.docx 就是我想要转换的 Word 文件,b.tex 就是我想要输出的 Latex 文件。
此外,请大家注意:
1. Word 转 Latex:对公式和表格的支持都比较好。公式必须用 Word 自带的公式编辑器产生,MathType 编写的公式不认(不过,MathType 自身可以输出 Latex 公式)。
2. Latex 转 Word:对公式的支持比较好;转化表格的功能有限,仅支持最简单的表格,如果自定义列宽,合并单元格等,就无法识别。
更多转换语法请看 Pandoc 工具的手册,它不仅可以转换格式还能有很多其它选项操作,例如:引文、数学公式、模板语法等等,这对于写论文的小伙伴非常有用,帮助我们解决了不同文档编辑工具之间的切换麻烦。
除了上面介绍的命令行操作方法,这里再补充一个Online Demo。
这个方法很简单,通过
https://pandoc.org/try 网址,可以上传需要转换的文档,非常适合不熟悉命令行的用户。
下图是笔者使用该 Online Demo 将 Latex 转换成 Word 的实例。注意选择转换和被转换的格式,选择转换的文件,就可以自动转换了。
Online Demo 要比命令行操作简单很多,但是它毕竟只是一个 Demo,具体有没有上面其它缺陷就不太清楚了。网上也有一些其它针对 Pandoc 工具的 GUI 程序,大家可以去找找看。笔者建议最好使用 Pandoc 工具的命令行操作,这个绝对不会出问题!
以上就是笔者将期刊官网提供的 Latex 模板转化为 Word 模板的方法,这个方法依赖于Pandoc 工具。但是方法绝对不止这一种, 因此这个方法仅供参考。
下期,笔者将分享自己是如何根据 Word 模板将 markdown 版 manuscript 转化成 Word 版,这对于写论文排版非常有用。
arkdown 从诞生之初,就因为其轻量、简便,而被内容创造者所青睐。然而并不是所有的地方都支持直接书写并渲染 Markdown 格式的文档,也并不是所有利用 Markdown 生成内容都是那么方便。接下来,我来介绍下面这几个在线的小工具,来帮助你更方便地排版 Markdown 文章。
Markdown Tables Generator
⚒ 链接:https://www.tablesgenerator.com/markdown_tables
在 Markdown 中新建一个表格确实不是件轻松的事情。这个 Markdown Tables Generator 可以方便的为我们创建 Markdown 格式的表格文本,我们只需要指定表格的内容即可。
Markdown Tables Generator
要知道,Markdown Tables Generator 是一个「所见即所得」的交互方式,因此我们创建表格的方式就非常直观清晰。同时,Markdown Tables Generator 还能够直接帮我们设置某列的左对齐、居中和右对齐等样式。我们生成成功一个表格之后,直接将下方的 Markdown 纯文本拷贝,就能粘贴到我们所使用的 Markdown 编辑器中了。
LaTeX、HTML、纯文本等表格的绘制
不得不再说一下,实际上这个 Tables Generator 这个网站除了支持生成 Markdown 格式的表格,还能帮我们方便的绘制 LaTeX、HTML、纯文本和 MediaWiki 格式的表格。特别是 LaTeX 格式的复杂表格,利用 Tables Generator 这个网站生成的操作过程太人性化了,非常推荐。
Paste to Markdown
链接:https://euangoddard.github.io/clipboard2markdown
Paste to Markdown 是一个能帮我们将复制的富文本转换为 Markdown 格式的纯文本的网站。比方说,如果我们在一个网页上面看到了一篇文章,并希望能够直接保存为 Markdown 格式至本地,我们可以首先通过浏览器的阅读模式将原网页格式化,从而去除没有用的元素并正确排版,之后再通过 Paste to Markdown 将原网页或浏览器阅读模式的富文本内容转换为 Markdown 格式的内容。
Paste to Markdown
通过 Paste to Markdown,我们不仅仅能成功将我们常用的加粗、斜体、删除线、标题和列表等富文本元素全部转换为 Markdown 格式的内容,还可以直接地将我们复制的图片的链接(即「图片外链」)转换为标准 Markdown 图片引用的格式(比如:),这样的格式化处理让我们保存网页文章至本地的操作成本大大降低。
Markdown Here
链接:https://markdown-here.com/
Markdown Here 是一个相对知名的浏览器 Markdown 扩展插件。其最方便的地方就在于:能够将我们在任意位置书写的 Markdown 格式的纯文本转换为相应的富文本内容。这尤其方便了我们在撰写邮件的时候进行排版,简单的 Markdown 让我们高效完成邮件的主体内容,之后通过 Markdown Here 插件一键转换,就能看到已经排版好的邮件内容。
Markdown Here 撰写邮件
Markdown Here 这个浏览器插件支持 Chrome、Safari、Firefox 等绝大多数浏览器,我们可以直接在 这个页面 下载你所使用的浏览器的插件。同时,Markdown Here 也开源在 GitHub 上面:adam-p/markdown-here
WeChat Format
链接:https://lab.lyric.im/wxformat
WeChat Format 是一个开源的、专为微信公众号排版准备的在线 Markdown 编辑器。相信大家如果有微信公众号排版使用的经验,就一定体验过糟糕的微信公众号后台「所见即所得」编辑器。在秀米、135 等专门为微信公众号排版而生的样式编辑器霸道横行的时代,如果我们能利用 Markdown 直接排版微信公众号,那岂不是又方便又舒服。
WeChat Format
传统的 Markdown 编辑器的输出预览其实也是可以直接复制粘贴到微信公众号后台排版工具中的,只是微信公众号并不允许我们添加除了公众号文章以外的链接。WeChat Format 很好的解决了这一问题:文章中的全部链接都以文章尾注的形式加在了文章末尾,这样既方便了我们直接利用 Markdown 排版文章,还能让读者轻松查看相应的链接。
目前 WeChat Format 已经将源代码开源于 lyricat/wechat-format,更加详细的介绍和说明文档位于「花三小时写这个工具,只为一分钟拯救公众号排版」,我们如果希望自定义排版的样式,由于 WeChat Format 已经开源了全部源码,因此我们当然可以直接自己部署整个项目,并通过修改 CSS 来自定义排版样式。
Mermaid JS
♻️ 链接:https://mermaidjs.github.io/mermaid-live-editor/#/
Mermaid JS 是一个专为流程图、时序图和甘特图等图表的绘制准备的渲染引擎。虽然 Mermaid 渲染引擎的语法相对比较复杂,但是经过简单的学习我们就可以利用 Mermaid 直接在 Markdown 里面绘制流程图、时序图和甘特图等相对专业的图表。
Mermaid 渲染器
这里我推荐这个 Mermaid JS 在线编辑器,我们可以直接使用 Mermaid 语法绘制相应的流程图、时序图和甘特图等图标,并将渲染出来的图表以 SVG 的格式下载到本地。
在线 Markdown 编辑器
说完了上面这几个 Markdown 相关的网页小工具,接下来我再来推荐两个好用的在线 Markdown 编辑器。
StackEdit
链接: https://stackedit.io/app
StackEdit 是一个非常优质的在线 Markdown 编辑器,其最大的方便之处是能够和 Dropbox、GitHub、GitLab 和 Google Drive 等直接同步,以及 Blogger、WordPress、ZenDesk 等内容发布平台的直接发布功能。要说在线编辑器最大的优势,那肯定就是「随时随地,想写就写」。只要有网络和浏览器,我们就能创造内容。StackEdit 还能够让我们在任何地方、任何设备上面同步修改撰写我们创作的文章,写完文章就可以直接发布。这样的「一条龙服务」是本地的 Markdown 编辑器所几乎无法达到的。
StackEdit
不仅如此,StackEdit 还原生直接支持了 Mermaid 渲染引擎,也就是说我们在 StackEdit 里面能够直接利用 Mermaid 渲染 UML 图表等复杂的内容。很多本地的 Markdown 编辑器都没有做到的功能,StackEdit 全都能胜任。得益于 PWA 技术,StackEdit 网页编辑器实际上离线同样也可以使用,因此我们完全可以直接将 StackEdit 添加到本地,这样没有网络我们照样能够进行创作。
HackMD
链接: https://hackmd.io/
HackMD 和上面 StackEdit 最大的功能升级就是:HackMD 支持多人协作撰写 Markdown 文档。我们可以直接理解 HackMD 就是 Markdown 世界里的 Google Docs(或腾讯文档、石墨文档这种团队协作文档编辑器)。我们可以利用 HackMD 和团队成员共同实时地写作撰写编辑一篇 Markdown 文档,方便高效。
HackMD
HackMD 原生嵌入了 MathJax 及 UML 模式,我们可以直接快速书写书写公式或流程图,当然也可以利用 Mermaid 渲染引擎制作 UML 图表。
值得注意的是,上面这两款在线的 Markdown 编辑器都是无需登录即可使用的,只有 HackMD 在多人协作时才需要登录。
小结
随着 Web 技术的急速发展,基于 Web 前端的小工具越来越丰富也越来越强大。很多时候一些小功能,桌面客户端往往都没有做很好的处理,这时候 Web 前端的小工具反而能够胜任。不仅如此,我们还可以通过 PWA 技术让这些网页 App 直接变成桌面软件,离线使用,无所不能。
善用在线小工具,我们很多时候会发现原本简洁的工作流程还能更加高效。希望这篇文章中提到的这些工具在你的创作过程中满足你的所有需求。感谢阅读。
时候,我非常熟悉手册页这个概念,而且使用过很多次,但我知道的仅止于此,我不知道它们是如何生成的,或者是否有一个标准。
-- Roberto Dip(作者)
我一般都很喜欢无所事事,但有时候太无聊了也不行 —— 2015 年的一个星期天下午就是这样,我决定开始写一个开源项目来让我不那么无聊。
在我寻求创意时,我偶然发现了一个请求,要求构建一个由 Mathias Bynens 提出的“ 按 Web 标准构建的 Man 手册页查看器 ”。没有考虑太多,我开始使用 JavaScript 编写一个手册页解析器,经过大量的反复思考,最终做出了一个 Jroff 。
那时候,我非常熟悉手册页这个概念,而且使用过很多次,但我知道的仅止于此,我不知道它们是如何生成的,或者是否有一个标准。在经过两年后,我有了一些关于此事的想法。
当时令我感到惊讶的第一件事是,手册页的核心只是存储在系统某处的纯文本文件(你可以使用 manpath 命令检查这些目录)。
此文件中不仅包含文档,还包含使用了 20 世纪 70 年代名为 troff 的排版系统的格式化信息。
troff 及其 GNU 实现 groff 是处理文档的文本描述以生成适合打印的排版版本的程序。它更像是“你所描述的即你得到的”,而不是你所见即所得的。
如果你对排版格式毫不熟悉,可以将它们视为 steroids 期刊用的 Markdown,但其灵活性带来的就是更复杂的语法:
groff-compressor
groff 文件可以手工编写,也可以使用许多不同的工具从其他格式生成,如 Markdown、Latex、HTML 等。
为什么 groff 和 man 手册页绑在一起是有历史原因的,其格式 随时间有变化 ,它的血统由一系列类似命名的程序组成:RUNOFF > roff > nroff > troff > groff。
但这并不一定意味着 groff 与手册页有多紧密的关系,它是一种通用格式,已被用于 书籍 ,甚至用于 照相排版 。
此外,值得注意的是 groff 也可以调用后处理器将其中间输出结果转换为最终格式,这对于终端显示来说不一定是 ascii !一些支持的格式是:TeX DVI、HTML、Canon、HP LaserJet4 兼容格式、PostScript、utf8 等等。
该格式的其他很酷的功能是它的可扩展性,你可以编写宏来增强其基本功能。
鉴于 *nix 系统的悠久历史,有几个可以根据你想要生成的输出而将特定功能组合在一起的宏包,例如 man、mdoc、mom、ms、mm 等等。
手册页通常使用 man 和 mdoc 宏包编写。
区分原生的 groff 命令和宏的方式是通过标准 groff 包大写其宏名称。对于 man 宏包,每个宏的名称都是大写的,如 .PP、.TH、.SH 等。对于 mdoc 宏包,只有第一个字母是大写的: .Pp、.Dt、.Sh。
groff-example
无论你是考虑编写自己的 groff 解析器,还是只是好奇,这些都是我发现的一些更具挑战性的问题。
表面上,groff 的语法是上下文无关的,遗憾的是,因为宏描述的是主体不透明的令牌,所以包中的宏集合本身可能不会实现上下文无关的语法。
这导致我在那时做不出来一个解析器生成器(不管好坏)。
mdoc 宏包中的大多数宏都是可调用的,这差不多意味着宏可以用作其他宏的参数,例如,你看看这个:
让我感到困惑的是缺乏一个规范的、定义明确的、清晰的来源,网上有很多信息,这些信息对读者来说很重要,需要时间来掌握。
总结一下,我会向你提供一个非常简短的宏列表,我在开发 jroff 时发现它很有趣:
man 宏包:
mdoc 宏包:
via: https://monades.roperzh.com/memories-writing-parser-man-pages/
作者: Roberto Dip 译者: wxy 校对: wxy 选题: lujun9972
本文由 LCTT 原创编译, Linux中国 荣誉推出
*请认真填写需求信息,我们会在24小时内与您取得联系。