Markdown 与 Latex 在论文中的应用

Markdown 与 Latex 在论文中的应用

我必须面对一个决定,即在论文中使用什么标记(主要是数学公式)。我不想开始学习所选的语言,而应该专注于我的论文。我对 LaTeX 了解不多,我觉得我不需要接触它,因为随着时间的推移,我在 math.stackexchange.com 上对 markdown 有了足够的了解。从我所看到的情况来看,它似乎是一个足以完成这项工作的工具。

但由于我不想在那个可能充满压力的时刻遇到不愉快的意外,所以我想事先了解情况。

谢谢!

答案1

毫无疑问,任何 Markdown 风格确实比 LaTeX 更好,可以专注于内容,并以合适的格式轻松格式化文档。但是,当您需要的不仅仅是标准部分和项目符号列表时,天堂就消失了。简单的格式化选项(例如将图像居中或制作两列)不可用。

这并不是对 markdown 的批评:markdown 的目的是成为一种非常轻量级的标记语言,并且必须使用简单的代码来创建简单的格式。这在很多情况下就足够了,但并非全部,这也解释了为什么有这么多 markdown 风格,添加这样或那样的功能,结果它不再那么容易使用(尤其是当您需要了解 markdown 风格之间的差异时)。

不可否认的是,即使是最复杂的版本也比 LaTeX 容易得多,但仍然相当有限。使用 LaTeX 需要更长的学习曲线,而且它也不是那么方便,但您可以制作几乎任何您能想到的文档格式,包括绘图(图表、统计图、化学公式等),而且没有 LaTeX 版本(Plain TeX 或 ContTeXt 足够独特,不会造成任何混淆)。宏允许使用可读的 LaTeX 代码实体表达复杂公式,并在需要时无缝修改它们,这是也是改变游戏规则的

因此,正确的决定取决于您对每种标记语言的期望。瑞士军刀不是切牛排的最佳刀具,但对于卸下螺丝、剪纸以及几乎任何其他用途来说,它比餐刀更好(更安全)。

话虽如此,好消息是您可以同时使用这两把刀,即您可以在同一个纯文本文件中混合使用 LaTeX 与 Markdown 或将 Markdown 与 LaTeX 混合使用。

正如评论中所建议的,你可以使用降价包(另请参阅 CTAN 主题 标记) 来简化一些部分作为嵌套列表。

或者你可以使用一种或多种更强大的 markdown 风格,例如降价,但是当这还不够时,可以在里面写一些 LateX 代码,例如,包含一个小页面或者一个无法在 markdown 中制作的复杂表格。潘多克将在生成 PDF(通过 LaTeX)时将此 LaTeX 部分作为未更改的代码传递,或在另一个 HTML 输出中将其忽略。

这种集成的另一部分可以是自定义 LaTeX 模板pandoc(您需要具备 LaTeX 的基本知识)和/或 markdown 文件中的 YAML 标头,以控制 LaTeX 前言(传递宏定义和要加载的包)。

特别是对于论文或书籍,使用 Rmarkdown(带.Rmd扩展名的文件)的另一个有趣的可能性是 LaTeX 和R.Rnw通过以下方式将R-noweb 文档(带扩展名的文件)进行集成(R 是一种统计语言)针织品(R 包)及其子.Rmd文件。主.Rnw文档基本上可以是一个典型的 LaTeX 文档,它通过 或另一种 LaTeX 方法 LaTeX(而不是 .Rmd)包含\include\input文档.tex。诀窍在于,序言中还有一个 R 块,允许 在编译期间knitr调用pandoc,这将使子文件进行 markdown-LaTeX 转换,因此您只需处理文件.Rmd并编译主.Rnw文件,而不会忘记更新 .tex 文件

例子:

Chapter1.Rmd

# My first Chapter
This is a {\huge first} chapter $E=mc^2$   

Thesis.Rnw

\documentclass{book}
<<calltopandoc, echo=F,include=F, engine='sh'>>=
pandoc Chapter1.Rmd --chapters -f markdown -t latex -o Chapter1.tex
@
\begin{document}
\include{Chapter1}
\end{document}

作为一名数学家,您肯定也会意识到,这允许您在文件中插入另一个 R 块(现在使用默认的 R 引擎)来包含 R 输出(作为图表或线性回归的结果).Rmd

```{r test, echo=FALSE}
2+3
```

以及以下.tex部分:

<<test,  echo=FALSE>>=
2+3
@

编辑(2021)

然而,为了管理图书项目,应该引用预订以及受 bookdown 启发的项目,如评论的 thesisdown。

main.Rnw简而言之,bookdown 与(LaTeX+R) 加上子(Markdown) 文件的区别.Rmd在于,.Rmd在解析 R 代码之前只有几个文件被合并并导出到 LaTeX 或其他文件(“合并和编织”方法)或者首先运行每个文件的 R 代码.Rmd,然后合并并导出到 LaTeX 或其他文件(“编织和合并”方法)。

要安装 bookdown,构建一个书籍项目,对其进行适当的配置(在 index.Rmd 的 YAML 标头中,_bookdown.yml_output.yml),并且第一次编译它并不像编译单个那么简单.Rmd file,但如果您需要构建大型书籍,则值得花时间了解其工作原理。

此外,bookdown 添加了一些 rmarkdown 扩展,如 (ref:label)。与任何 rmarkdown 一样,您也可以直接编写\ref{label},但它将在除 LaTeX 输出外被省略,而(ref:label)可以在任何输出中使用。

编辑(2024)

目前较新的四开本取代了 Rmarkdown,虽然仍然可以使用,但不再开发。

Quarto 也基于 Pandoc 的 Markdowm,因此它与旧版 Rmarkdown 非常相似且基本兼容。将文件从 markdown 或 Rmarkdown 转换为 Quarto 格式可能很简单,只需将扩展名 .md或更改.Rmd为 即可.qmd,或者可能需要进行一些小改动,主要是在标题中。作为回报,它提供了许多新功能。

它还可以管理带有章节子文档的图书项目(在本例中由_quarto.yml文件控制)或包含具有语法的文件{{< include file.qmd >}}(相当于\input{file}),因此它也可以取代 bookdown。

答案2

我的博士论文是软件工程领域的。所以我的评论受到该领域要求的影响。

LaTeX 的学习难度很高,但回报也非常丰厚。值得付出努力。

首先,您应该找到并开始使用现有的论文 .tex 文件。有许多可用的文件。在您自己的院系和同行机构内进行检查。从几乎可行的东西开始总是更容易。

您可能需要在候选期间撰写并提交多篇论文。大多数期刊都提供适合其出版物的模板。通常,您只需更改文件中的一两行即可重新生成用于不同出版物的论文。

当你遇到障碍时,看看这个网站。大多数问题在你之前已经被别人遇到过,并且已经解决了。不需要独自挣扎。

话虽如此,我还是使用 markdown 来生成文档和其他发布在网络上的材料。LaTeX 太过繁重,不适合这个用途。关键在于,在撰写论文时,大部分精力都花在思考和重写上,而不是花在处理格式问题上。

答案3

我写过 2 篇论文,1 篇用 latex,1 篇用 markdown(两篇都是关于认知心理学的,需要表格、图形和数学方程式,全部采用 APA 格式)。以下是我的看法:

Markdown 是更好的方法.优点:

  • 语法更简单;不仅更容易学习,而且使实际打字更加流畅和高效(特别是在引用、文内格式、链接、图表方面)
  • 更简单的语法也使协作更容易;人们可以在大约 40 秒内学会 markdown(与不懂 latex 的人合作几乎是不可能的)
  • 用途更广泛;除了学术文献之外,我没看到 Latex 有太多用途——相比之下,Markdown 已在许多领域(学术和非学术)被广泛采用

Latex 显然比 markdown 更强大、可定制性更强。但是,潘多克,这不再是问题。每当你需要做一些 markdown 无法完成的事情时,你只需包含一小段 latex 代码,pandoc 就会将你所有的 markdown 和 latex 代码整合在一起。这太神奇了

我认为最好的做法是:以 markdown 为基础格式,并加入少量 latex(甚至 html)以满足任何特殊需求。使用 pandoc 时,如果只需要少量内容(例如格式化图片或表格),则似乎没有必要使用 latex 作为基础格式。

我对 latex 项目怀有深深的敬意,但我认为 markdown 显然是学术写作的最佳继承者。这里可以找到一些类似的观点:

Stuart M. Shieber 文章

杰克·齐默曼 (Jake Zimmerman) 博客文章

答案4

我也有同样的疑问,读弗兰的回答并决定尝试使用 RMarkdown,以便在 Markdown 中完成简单的操作并在必要时嵌入 LaTex。

经过 4 个小时终于正确安装了 RStudio 和相关工具,又花了 30 分钟尝试找出如何在 RMarkdown 中引用图表,结果发现代码块似乎无法引用(即使注入 latex 也不行),我肯定会在论文中使用 LaTex。我花了 30 分钟才得到三个不同的可定制版本。
请注意,也许它有可能,但作为 RMarkdown 初学者,我没有在合理的时间内弄清楚这一点。

当然,我最初可能花了同样的时间才让 LaTex 运行起来,因此我是这样看待这个决定的:Markdown这使得做非常简单的事情变得非常容易,但做一些更复杂的事情(比如引用代码块)可能会令人沮丧,似乎不可能。另一方面,乳胶需要更多的时间去适应,直到简单的东西发挥作用,但一切皆有可能。

就我个人而言,我宁愿花 30 分钟去找出很多方法,以至于我无法决定要以哪种方式去做,也不愿花 30 分钟去 90% 地确定我不会找到如何去做,但这部分是因为我通常想做一些不常见的事情。

当你遇到 LaTex 问题时,最好了解一下你所在的大学是否有人可以向他们咨询。在我的大学,有一门关于 LaTex 的选修课,老师明确表示,如果我们遇到的问题需要半小时以上才能解决,我们应该给他发一封电子邮件。

相关内容