蚊章汇 - LaTeX
type: channel
link: https://linuxcn.bwsl.wang/tag/LaTeX/
items: 使用 LaTeX 创建优美的 PDF 文件
items: Kile：来自 KDE 的交互式跨平台 LaTeX 编辑器
items: LaTeX 排版（3）：排版
items: LaTex 排版 （2）：表格
items: 使用 LaTeX 和 TeXstudio 排版文档
items: LaTeX 排版（1）：列表
items: 如何使用 Emacs 创建 LaTeX 文档
items: 在命令行使用 Pandoc 进行文件转换
items: 用 Pandoc 生成一篇调研论文
items: 用这个漂亮的工具将方程式截图迅速转换为 LaTeX

使用 LaTeX 创建优美的 PDF 文件
type: item
date: 2022-08-23T20:03:00+08:00
description: 使用 LaTeX 标记语言来撰写文档。LaTeX 文件准备系统有一段有趣的历史。在 1968 年，程序员 Don Knuth 用一种老式印刷排版方式，撰写了他的第一本书《 计算机程序设计艺术 The Art of Computer Programming 》。当他在 1976 年出版第二版时，出版商已经转向现代照相排版技术。Knuth 对新版本的外观不满意。他从程序员的角度解决问题，决定创建他自己的文字处理系统，这样以后他出版的书就可以以相同格式排版，拥有相同的外观。因此，Don Knuth 在 1978 年编写了第一版 TeX 。几年后，Leslie Lamport 创建了一组宏定义，以便作者更容易编写复杂文档。Lamport 的宏定义扩展，即 LaTeX，有效地扩展了 TeX 能够轻松创建各种文档。例如，许多学术组织使用 LaTeX 出版期刊和论文集。使用 LaTeX 编写文档通过写一些短文就可以很容易掌握 LaTeX 基础。让我们从 Opensource.com 介绍页面借用一下内容，创建一个示例：$ cat about.tex \documentclass{article} \begin{document} Opensource.com is a premier, daily publication focused on open source and Linux tutorials, stories, and resources. We're a diverse and inviting group, made up of staff editors, Correspondents, contributors, and readers. We value differences in skills, talents, backgrounds, and experiences. There are a few different ways to get involved as a reader or a writer. \end{document} 类似其他文档格式程序， LaTeX 会将单词汇集起来，填充成段落 。这意味着你可以在段落中间添加新文本，而不用担心最终文档的段落参差不齐。只要你不在段落中添加空行， LaTeX 就会创建完全对齐的段落。当它找到一个空行时， LaTeX 会开启一个新段落。LaTeX 需要一些定义文档的控制语句。任何 LaTeX 文档应当以“文档类别”声明开始。LaTeX 支持多种文档，包括书信、书籍和文章。例如，我使用 \documentclass{article} 设置类别为 “文章” 。使用 \begin{document} 和 \end{document} 声明来定义文本的开始和结束。如果你在 \begin{document} 前添加了文本，那么 LaTeX 会报错。在 \end{document} 之后的文本都会被忽略。使用 LaTeX 的 latex 命令处理文档：$ latex about.tex This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./about.tex LaTeX2e <2020-10-01> patch level 4 (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2020/04/10 v1.4m Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-dvips.def) No file about.aux. [1] (./about.aux) ) Output written on about.dvi (1 page, 736 bytes). Transcript written on about.log. LaTeX 会输出许多文本，这样你就可以知道它在干什么。若你的文档包含错误， LaTeX 会报错并提示它可以做什么。大多数情况下，你可以在提示后输入 exit 来强制退出 LaTeX 。如果用 LaTeX 成功生成一个文档，会生成一个带 .dvi 后缀的文件。DVI …

Kile：来自 KDE 的交互式跨平台 LaTeX 编辑器
type: item
date: 2022-02-22T18:37:52+08:00
description: Kile 是 Linux 上最好的 LaTeX 编辑器之一，来自 KDE。让我们来看一看它提供了什么？你可以用 TeX/LaTeX 编辑器处理各种文件。不仅仅限于科学研究，你还可以添加你的代码、开始写书（学术/创作）、或者起草文章。如果你经常处理 LaTeX 文档，一个具有预览选项和若干功能的交互式解决方案应该会很方便。Kile 是 KDE 提供选择之一，可用于 Linux 和其他平台。事实上，它是 可用于 Linux 的最佳 LaTeX 编辑器 之一，我们决定重点介绍一下它。一个开源的集成 LaTeX 编辑器Kile 可能不是最受欢迎的选择，但它确实因其提供的东西而脱颖而出。如果你正在寻找一个简单的 LaTeX 编辑器，它可能不是完美的选择。然而，它尽力为你提供友好的体验，同时从一开始就为你提供指导。让我重点强调以下特点。Kile 的特点正如我提到的，Kile 是一个功能丰富的 LaTeX 编辑器。如果你是 TeX/LaTeX 文档的新手，它可能会让你不知所措，但它仍然值得探索。其主要特性包括：设置向导可以轻松开始使用 LaTeX 编辑器。可用的模板可以节省文件大纲的时间。自动完成 LaTeX 命令。在不离开窗口的情况下，一键编译和预览你的文档。上百种预设模式来定义文档的类型（JSON、R 文档、VHDL、HTML 等）。日志查看器。转换文档的能力。添加/删除和转换 PDF 文件的 PDF 向导工具。反向和正向搜索功能。创建项目以组织文件集合。大量的 LaTeX 选项，无需键入任何东西即可添加所需的命令（如创建一个列表，添加一个数学函数等）。在各章或各节中轻松导航。使用小窗口预览浏览整个文件（如果文件太大需要滚动）。除了这些，你还可以配置外观，调整键盘快捷键，找到各种编码支持等。此外，设置向导（以及应用内的其他向导）的存在使用户体验变得轻而易举。例如，以下是你第一次启动该应用时：它将检查任何配置问题，帮助你确保无缝体验。设置完成后，它将迅速提示你可用的模板，让你开始：因此，指导性的设置和上述所有的功能应该构成一个出色的 LaTeX 编辑体验。在 Linux 中安装 Kile你应该可以在默认的 Linux 仓库和软件中心找到 Kile。对于 KDE，你应该看到它被列在“发现”中。不幸的是，它不提供 Flatpak 或 Snap 包。所以，你将不得不依靠从仓库中获得的标准软件包。如果你依赖终端（基于 Ubuntu），你可以输入以下命令安装：sudo apt install kile 对于 Windows 用户，你可以在 微软商店 中找到它。如果你感到好奇，你可以查看 源代码 或访问官方网站。Kile总结作为一个 LaTeX 用户，你应该发现所有这些选项对高效的编辑经体验都很有用。如果你是 TeX/LaTeX 文档的新手，你仍然可以使用它的模板、快速函数、自动完成功能，使体验变得简单。你最喜欢的 LaTeX 文档编辑器是什么？欢迎在下面的评论中告诉我。via: https://itsfoss.com/kile/作者：Ankush Das 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出

LaTeX 排版（3）：排版
type: item
date: 2021-02-26T19:31:33+08:00
description: 本 系列 介绍了 LaTeX 中的基本格式。第 1 部分 介绍了列表。第 2 部分 阐述了表格。在第 3 部分中，你将了解 LaTeX 的另一个重要特性：细腻灵活的文档排版。本文介绍如何自定义页面布局、目录、标题部分和页面样式。页面维度当你第一次编写 LaTeX 文档时，你可能已经注意到默认边距比你想象的要大一些。页边距与指定的纸张类型有关，例如 A4、letter 和 documentclass（article、book、report） 等等。要修改页边距，有几个选项，最简单的选项之一是使用 fullpage 包。该软件包设置页面的主体，可以使主体几乎占满整个页面。—— FULLPAGE PACKAGE DOCUMENTATION另一个选择是使用 geometry 包。在探索 geometry 包如何操纵页边距之前，请首先查看如下所示的页面尺寸。1 英寸 + \hoffset1 英寸 + \voffset\oddsidemargin = 31pt\topmargin = 20pt\headheight = 12pt\headsep = 25pt\textheight = 592pt\textwidth = 390pt\marginparsep = 35pt\marginparwidth = 35pt\footskip = 30pt要使用 geometry 包将边距设置为 1 英寸，请使用以下示例\usepackage{geometry} \geometry{a4paper, margin=1in} 除上述示例外，geometry 命令还可以修改纸张尺寸和方向。要更改纸张尺寸，请使用以下示例：\usepackage[a4paper, total={7in, 8in}]{geometry} 要更改页面方向，需要将横向（landscape）添加到 geometery 选项中，如下所示：\usepackage{geometery} \geometry{a4paper, landscape, margin=1.5in 目录默认情况下，目录的标题为 “contents”。有时，你想将标题更改为 “Table of Content”，更改目录和章节第一节之间的垂直间距，或者只更改文本的颜色。若要更改文本，请在导言区中添加以下行，用所需语言替换英语（english）：\usepackage[english]{babel} \addto\captionsenglish{ \renewcommand{\contentsname} {\bfseries{Table of Contents}}} 要操纵目录与图、小节和章节列表之间的虚拟间距，请使用 tocloft 软件包。本文中使用的两个选项是 cftbeforesecskip 和 cftaftertoctitleskip。tocloft 包提供了控制目录、图表列表和表格列表的排版方法。—— TOCLOFT PACKAGE DOUCMENTATION\usepackage{tocloft} \setlength\ctfbeforesecskip{2pt} \setlength\cftaftertoctitleskip{30pt} 默认目录定制目录边框在文档中使用包 hyperref 时，目录中的 LaTeX 章节列表和包含 \url 的引用都有边框，如下图所示。要删除这些边框，请在导言区中包括以下内容，你将看到目录中没有任何边框。\usepackage{hyperref} \hypersetup{ pdfborder = {0 0 0}} 要修改标题部分的字体、样式或颜色，请使用程序包 titlesec。在本例中，你将更改节、子节和三级子节的字体大小、字体样式和字体颜色。首先，在导言区中增加以下内容。\usepackage{titlesec} \titleformat*{\section}{\Huge\bfseries\color{darkblue}} \titleformat*{\subsection}{\huge\bfseries\color{darkblue}} \titleformat*{\subsubsection}{\Large\bfseries\color{darkblue}} 仔细看看代码，\titleformat*{\section} 指定要使用的节的深度。上面的示例最多使用第三个深度。{\Huge\bfseries\color{darkblue}} 部分指定字体大小、字体样式和字体颜色。页面样式要自定义的页眉和页脚，请使用 fancyhdr。此示例使用此包修改页面样式、页眉和页脚。下面的代码简要描述了每个选项的作用。\pagestyle{fancy} %for header t…

LaTex 排版 （2）：表格
type: item
date: 2021-02-23T19:36:54+08:00
description: LaTeX 提供了许多工具来创建和定制表格，在本系列中，我们将使用 tabular 和 tabularx 环境来创建和定制表。基础表格要创建表，只需指定环境 \begin{tabular}{列选项}：\begin{tabular}{c|c} Release &Codename \\ \hline Fedora Core 1 &Yarrow \\ Fedora Core 2 &Tettnang \\ Fedora Core 3 &Heidelberg \\ Fedora Core 4 &Stentz \\ \end{tabular} 在上面的示例中，花括号中的 ”{c|c}” 表示文本在列中的位置。下表总结了位置参数及其说明。参数位置c将文本置于中间l将文本左对齐r将文本右对齐p{宽度}文本对齐单元格顶部m{宽度}文本对齐单元格中间b{宽度}文本对齐单元格底部m{宽度} 和 b{宽度} 都要求在最前面指定数组包。使用上面的例子，让我们来详细讲解使用的要点，并描述你将在本系列中看到的更多选项：选项意义&定义每个单元格，这个符号仅用于第二列\\这将终止该行并开始一个新行``指定表格中的垂直线（可选）\hline指定表格中的水平线（可选）*{数量}{格式}当你有许多列时，可以使用这个，并且是限制重复的有效方法` `指定表格中垂直双线定制表格学会了这些选项，让我们使用这些选项创建一个表。\begin{tabular}{*{3}{|l|}} \hline \textbf{Version} &\textbf{Code name} &\textbf{Year released} \\ \hline Fedora 6 &Zod &2006 \\ \hline Fedora 7 &Moonshine &2007 \\ \hline Fedora 8 &Werewolf &2007 \\ \hline \end{tabular} 管理长文本如果列中有很多文本，那么它的格式就不好处理，看起来也不好看。下面的示例显示了文本的格式长度，我们将在导言区中使用 blindtext，以便生成示例文本。\begin{tabular}{|l|l|}\hline Summary &Description \\ \hline Test &\blindtext \\ \end{tabular} 正如你所看到的，文本超出了页面宽度；但是，有几个选项可以克服这个问题。指定列宽，例如 m{5cm}利用 tablarx 环境，这需要在导言区中引用 tablarx 宏包。使用列宽管理长文本通过指定列宽，文本将被折行为如下示例所示的宽度。\begin{tabular}{|l|m{14cm}|} \hline Summary &Description \\ \hline Test &\blindtext \\ \hline \end{tabular}\vspace{3mm} 使用 tabularx 管理长文本在我们利用表格之前，我们需要在导言区中加上它。tabularx 方法见以下示例：\begin{tabularx}{宽度}{列选项}。\begin{tabularx}{\textwidth}{|l|X|} \hline Summary & Tabularx Description\\ \hline Text &\blindtext \\ \hline \end{tabularx} 请注意，我们需要处理长文本的列在花括号中指定了大写 X。合并行合并列有时需要合并行或列。本节描述了如何完成。要使用 multirow 和 multicolumn，请将 multirow 添加到导言区。合并行multirow 采用以下参数 \multirow{行的数量}{宽度}{文本}，让我们看看下面的示例。\begin{tabular}{|l|l|}\hline Release &Codename \\ \hline Fedora Core 4 &Stentz \\ \hline \multirow{2}{*}{MultiRow} &Fedora 8 \\ &Werewolf \\ \hline \end{tabular} 在上面的示例中，指定了两行，* 告诉 LaTeX 自动管理单元格的大小。合并列multicolumn 参数是 {multicolumn{列的数量}{单元格选项}{位置}{文本}，下面的示例演示合并列。\begin{tabular}{|l|l|l|}\hline Release &Codename &Date \\ \hline Fedora Core 4 &Stentz &2005 \\ \hline \multicolumn{3}{|c|}{Mulit-Column} \\ \hli…

使用 LaTeX 和 TeXstudio 排版文档
type: item
date: 2021-02-20T17:45:28+08:00
description: LaTeX 是一个服务于高质量排版的文档准备系统。通常用于大量的技术和科学文档的排版。不过，你也可以使用 LaTex 排版各种形式的文档。教师可以编辑他们的考试和教学大纲，学生可以展示他们的论文和报告。这篇文章让你尝试使用 TeXstudio。TeXstudio 是一个便于编辑 LaTeX 文档的软件。启动 TeXstudio如果你使用的是 Fedora Workstation，请启动软件管理，然后输入 TeXstudio 以搜索该应用程序。然后选择安装并添加 TeXstudio 到你的系统。你可以从软件管理中启动这个程序，或者像以往一样在概览中启动这个软件。或者，如果你使用终端，请输入 texstudio。如果未安装该软件包，系统将提示你安装它。键入 y 开始安装。$ texstudio bash: texstudio: command not found... Install package 'texstudio' to provide command 'texstudio'? [N/y] y 你的第一份文档LaTeX 命令通常以反斜杠 \ 开头，命令参数用大括号 {} 括起来。首先声明 documentclass 的类型。这个例子向你展示了该文档的类是一篇文章。然后，在声明 documentclass 之后，用 begin 和 end 标记文档的开始和结束。在这些命令之间，写一段类似以下的内容：\documentclass{article} \begin{document} The Fedora Project is a project sponsored by Red Hat primarily to co-ordinate the development of the Linux-based Fedora operating system, operating with the vision that the project "creates a world where free culture is welcoming and widespread, collaboration is commonplace, and people control their content and devices". The Fedora Project was founded on 22 September 2003 when Red Hat decided to split Red Hat Linux into Red Hat Enterprise Linux (RHEL) and a community-based operating system, Fedora. \end{document} 使用间距要创建段落分隔符，请在文本之间保留一个或多个换行符。下面是一个包含四个段落的示例：从该示例中可以看出，多个换行符不会在段落之间创建额外的空格。但是，如果你确实需要留出额外的空间，请使用 hspace 和 vspace 命令。这两个命令分别添加水平和垂直空间。下面是一些示例代码，显示了段落周围的附加间距：\documentclass{article} \begin{document} \hspace{2.5cm} The four essential freedoms \vspace{0.6cm} A program is free software if the program's users have the 4 essential freedoms: The freedom to run the program as you wish, for any purpose (freedom 0).\vspace{0.2cm} The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.\vspace{0.2cm} The freedom to redistribute copies so you can help your neighbour (freedom 2).\vspace{0.2cm} The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance…

LaTeX 排版（1）：列表
type: item
date: 2021-02-13T17:41:11+08:00
description: 本系列基于前文《在 Fedora 上用 LaTex 和 TeXstudio 排版你的文档》和《LaTeX 基础》，本文即系列的第一部分，是关于 LaTeX 列表的。列表类型LaTeX 中的列表是封闭的环境，列表中的每个项目可以取一行文字到一个完整的段落。在 LaTeX 中有三种列表类型：itemize： 无序列表 unordered list / 项目符号列表 bullet list enumerate： 有序列表 ordered list description： 描述列表 descriptive list 创建列表要创建一个列表，需要在每个项目前加上控制序列 \item，并在项目清单前后分别加上控制序列 \begin{<类型>} 和 \end{<类型>}（将其中的<类型>` 替换为将要使用的列表类型），如下例：itemize（无序列表）\begin{itemize} \item Fedora \item Fedora Spin \item Fedora Silverblue \end{itemize} enumerate（有序列表）\begin{enumerate} \item Fedora CoreOS \item Fedora Silverblue \item Fedora Spin \end{enumerate} description（描述列表）\begin{description} \item[Fedora 6] Code name Zod \item[Fedora 8] Code name Werewolf \end{description} 列表项目间距可以通过在导言区加入 \usepackage{enumitem} 来自定义默认的间距，宏包 enumitem 启用了选项 noitemsep 和控制序列 \itemsep，可以在列表中使用它们，如下例所示：使用选项 noitemsep将选项 noitemsep 封闭在方括号内，并同下文所示放在控制序列 \begin 之后，该选项将移除默认的间距。\begin{itemize}[noitemsep] \item Fedora \item Fedora Spin \item Fedora Silverblue \end{itemize} 使用控制序列 \itemsep控制序列 \itemsep 必须以一个数字作为后缀，用以表示列表项目之间应该有多少空间。\begin{itemize} \itemsep0.75pt \item Fedora Silverblue \item Fedora CoreOS \end{itemize} 嵌套列表LaTeX 最多最多支持四层嵌套列表，如下例：嵌套无序列表\begin{itemize}[noitemsep] \item Fedora Versions \begin{itemize} \item Fedora 8 \item Fedora 9 \begin{itemize} \item Werewolf \item Sulphur \begin{itemize} \item 2007-05-31 \item 2008-05-13 \end{itemize} \end{itemize} \end{itemize} \item Fedora Spin \item Fedora Silverblue \end{itemize} 嵌套有序列表\begin{enumerate}[noitemsep] \item Fedora Versions \begin{enumerate} \item Fedora 8 \item Fedora 9 \begin{enumerate} \item Werewolf \item Sulphur \begin{enumerate} \item 2007-05-31 \item 2008-05-13 \end{enumerate} \end{enumerate} \end{enumerate} \item Fedora Spin \item Fedora Silverblue \end{enumerate} 每种列表类型的列表样式名称enumerate（有序列表）itemize（无序列表）\alph* （小写字母）$\bullet$ （●）\Alph* （大写字母）$\cdot$ （•）\arabic* （阿拉伯数字）$\diamond$ （◇）\roman* （小写罗马数字）$\ast$ （✲）\Roman* （大写罗马数字）$\circ$ （○） $-$ （－）按嵌套深度划分的默认样式嵌套深度enumerate（有序列表）itemize（无序列表）1阿拉伯数字（●）2小写字母（－）3小写罗马数字（✲）4…

如何使用 Emacs 创建 LaTeX 文档
type: item
date: 2018-11-24T18:52:00+08:00
description: 这篇教程将带你遍历在 Emacs 使用强大的开源排版系统 LaTex 来创建文档的全过程。一篇由 Aaron Cocker 写的很棒的文章 “在 LaTeX 中创建文件的介绍” 中，介绍了 LaTeX 排版系统 并描述了如何使用 TeXstudio 来创建 LaTeX 文档。同时，他也列举了一些很多用户觉得创建 LaTeX 文档很方便的编辑器。Greg Pittman 对这篇文章的评论吸引了我：“当你第一次开始使用 LaTeX 时，他似乎是个很差劲的排版……” 事实也确实如此。LaTeX 包含了多种排版字体和调试，如果你漏了一个特殊的字符比如说感叹号，这会让很多用户感到沮丧，尤其是新手。在本文中，我将介绍如何使用 GNU Emacs 来创建 LaTeX 文档。创建你的第一个文档启动 Emacs：emacs -q --no-splash helloworld.org参数 -q 确保 Emacs 不会加载其他的初始化配置。参数 --no-splash-screen 防止 Emacs 打开多个窗口，确保只打开一个窗口，最后的参数 helloworld.org 表示你要创建的文件名为 helloworld.org 。GNU Emacs 打开文件名为 helloworld.org 的窗口时的样子。现在让我们用 Emacs 添加一些 LaTeX 的标题吧：在菜单栏找到 “Org” 选项并选择 “Export/Publish”。导入一个默认的模板在下一个窗口中，Emacs 同时提供了导入和导出一个模板。输入 #（“[#] Insert template”）来导入一个模板。这将会使光标跳转到一个带有 “Options category:” 提示的 mini-buffer 中。第一次你可能不知道这个类型的名字，但是你可以使用 Tab 键来查看所有的补全。输入 “default” 然后按回车，之后你就能看到如下的内容被插入了：#+TITLE: helloworld #+DATE: <2018-03-12 Mon> #+AUTHOR: #+EMAIL: makerpm@nubia #+OPTIONS: ':nil *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline #+OPTIONS: author:t c:nil creator:comment d:(not "LOGBOOK") date:t #+OPTIONS: e:t email:nil f:t inline:t num:t p:nil pri:nil stat:t #+OPTIONS: tags:t tasks:t tex:t timestamp:t toc:t todo:t |:t #+CREATOR: Emacs 25.3.1 (Org mode 8.2.10) #+DESCRIPTION: #+EXCLUDE_TAGS: noexport #+KEYWORDS: #+LANGUAGE: en #+SELECT_TAGS: export根据自己的需求修改标题、日期、作者和 email。我自己的话是下面这样的：#+TITLE: Hello World! My first LaTeX document #+DATE: \today #+AUTHOR: Sachin Patil #+EMAIL: psachin@redhat.com我们目前还不想创建一个目录，所以要将 toc 的值由 t 改为 nil，具体如下：#+OPTIONS: tags:t tasks:t tex:t timestamp:t toc:nil todo:t |:t现在让我们添加一个章节和段落吧。章节是由一个星号（*）开头。我们从 Aaron 的贴子（来自 Lipsum Lorem Ipsum 生成器）复制一些文本过来：* Introduction \paragraph{} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras lorem nisi, tincidunt tempus sem nec, elementum feugiat ipsum. Nulla in diam libero. Nunc tristique ex a nibh egestas sollicitudin. \paragraph{} Mauris efficitur vitae ex id egestas. Vestibulum ligula felis, pulvinar a posuere id, luctus vitae leo. Sed ac imperdiet orci, non elementum leo. Nullam mo…

在命令行使用 Pandoc 进行文件转换
type: item
date: 2018-11-13T19:52:00+08:00
description: 这篇指南介绍如何使用 Pandoc 将文档转换为多种不同的格式。Pandoc 是一个命令行工具，用于将文件从一种标记语言转换为另一种标记语言。标记语言使用标签来标记文档的各个部分。常用的标记语言包括 Markdown、ReStructuredText、HTML、LaTex、ePub 和 Microsoft Word DOCX。简单来说，Pandoc 允许你将一些文件从一种标记语言转换为另一种标记语言。典型的例子包括将 Markdown 文件转换为演示文稿、LaTeX，PDF 甚至是 ePub。本文将解释如何使用 Pandoc 从单一标记语言（在本文中为 Markdown）生成多种格式的文档，引导你完成从 Pandoc 安装，到展示如何创建多种类型的文档，再到提供有关如何编写易于移植到其他格式的文档的提示。文中还将解释使用元信息文件对文档内容和元信息（例如，作者姓名、使用的模板、书目样式等）进行分离的意义。Pandoc 安装和要求Pandoc 默认安装在大多数 Linux 发行版中。本教程使用 pandoc-2.2.3.2 和 pandoc-citeproc-0.14.3。如果不打算生成 PDF，那么这两个包就足够了。但是，我建议也安装 texlive，这样就可以选择生成 PDF 了。通过以下命令在 Linux 上安装这些程序：sudo apt-get install pandoc pandoc-citeproc texlive您可以在 Pandoc 的网站上找到其他平台的 安装说明。我强烈建议安装 pandoc-crossref，这是一个“用于对图表，方程式，表格和交叉引用进行编号的过滤器”。最简单的安装方式是下载 预构建的可执行文件，但也可以通过以下命令从 Haskell 的软件包管理器 cabal 安装它：cabal update cabal install pandoc-crossref如果需要额外的 Haskell 安装信息，请参考 pandoc-crossref 的 GitHub 仓库。几个例子我将通过解释如何生成三种类型的文档来演示 Pandoc 的工作原理：由包含数学公式的 LaTeX 文件创建的网页由 Markdown 文件生成的 Reveal.js 幻灯片混合 Markdown 和 LaTeX 的合同文件创建一个包含数学公式的网站Pandoc 的优势之一是以不同的输出文件格式显示数学公式。例如，我们可以从包含一些数学符号（用 LaTeX 编写）的 LaTeX 文档（名为 math.tex）生成一个网页。math.tex 文档如下所示：% Pandoc math demos $a^2 + b^2 = c^2$ $v(t) = v_0 + \frac{1}{2}at^2$ $\gamma = \frac{1}{\sqrt{1 - v^2/c^2}}$ $\exists x \forall y (Rxy \equiv Ryx)$ $p \wedge q \models p$ $\Box\diamond p\equiv\diamond p$ $\int_{0}^{1} x dx = \left[ \frac{1}{2}x^2 \right]_{0}^{1} = \frac{1}{2}$ $e^x = \sum_{n=0}^\infty \frac{x^n}{n!} = \lim_{n\rightarrow\infty} (1+x/n)^n$通过输入以下命令将 LaTeX 文档转换为名为 mathMathML.html 的网站：pandoc math.tex -s --mathml -o mathMathML.html参数 -s 告诉 Pandoc 生成一个独立的网页（而不是网页片段，因此它将包括 HTML 中的 head 和 body 标签），-mathml 参数强制 Pandoc 将 LaTeX 中的数学公式转换成 MathML，从而可以由现代浏览器进行渲染。看一下 网页效果 和 代码，代码仓库中的 Makefile 使得运行更加简单。制作一个 Reveal.js 幻灯片使用 Pandoc 从 Markdown 文件生成简单的演示文稿很容易。幻灯片包含顶级幻灯片和下面的嵌套幻灯片。可以通过键盘控制演示文稿，从一个顶级幻灯片跳转到下一个顶级幻灯片，或者显示顶级幻灯片下面的嵌套幻灯片。 这种结构在基于 HTML 的演示文稿框架中很常见。创建一个名为 SLIDES 的幻灯片文档（参见 代码仓库）。首先，在 ％ 后面添加幻灯片的元信息（例如，标题、作者和日期）：% Case Study % Kiko Fernandez Reyes % Sept 27, 2017这些元信息同时也创建了第一张幻灯片。要添加更多幻灯片，使用 M…

用 Pandoc 生成一篇调研论文
type: item
date: 2018-11-01T21:04:10+08:00
description: 学习如何用 Markdown 管理章节引用、图像、表格以及更多。这篇文章对于使用 Markdown 语法做一篇调研论文进行了一个深度体验。覆盖了如何创建和引用章节、图像（用 Markdown 和 LaTeX）和参考书目。我们也讨论了一些棘手的案例和为什么使用 LaTex 是一个正确的做法。调研调研论文一般包括对章节、图像、表格和参考书目的引用。Pandoc 本身并不能交叉引用这些，但是它能够利用 pandoc-crossref 过滤器来完成自动编号和章节、图像、表格的交叉引用。让我们从重写原本以 LaTax 撰写的 一个教育调研报告的例子 开始，然后用 Markdown（和一些 LaTax）、Pandoc 和 Pandoc-crossref 重写。添加并引用章节要想章节被自动编号，必须使用 Markdown H1 标题编写。子章节使用 H2-H4 子标题编写（通常不需要更多级别了）。例如一个章节的标题是 “Implementation”，写作 # Implementation {#sec: implementation}，然后 Pandoc 会把它转化为 3. Implementation（或者转换为相应的章节编号）。Implementation 这个标题使用了 H1 并且声明了一个 {#sec: implementation} 的标签，这是作者用于引用该章节的标签。要想引用一个章节，输入 @ 符号并跟上对应章节标签，使用方括号括起来即可： [@ sec:implementation]在这篇论文中, 我们发现了下面这个例子：we lack experience (consistency between TAs, [@sec:implementation]).Pandoc 转换：we lack experience (consistency between TAs, Section 4).章节被自动编号（这在本文最后的 Makefile 当中说明）。要创建无编号的章节，输入章节的标题并在最后添加 {-}。例如：### Designing a game for maintainability {-} 就以标题 “Designing a game for maintainability”，创建了一个无标号的章节。添加并引用图像添加并引用一个图像，跟添加并引用一个章节和添加一个 Markdown 图片很相似：![Scatterplot matrix](data/scatterplots/RScatterplotMatrix2.png){#fig:scatter-matrix}上面这一行是告诉 Pandoc，有一个标有 Scatterplot matrix 的图像以及这张图片路径是 data/scatterplots/RScatterplotMatrix2.png。{#fig:scatter-matrix} 表明了用于引用该图像的名字。这里是从一篇论文中进行图像引用的例子：The boxes "Enjoy", "Grade" and "Motivation" ([@fig:scatter-matrix]) ...Pandoc 产生如下输出：The boxes "Enjoy", "Grade" and "Motivation" (Fig. 1) ...添加及引用参考书目大多数调研报告都把引用放在一个 BibTeX 的数据库文件中。在这个例子中，该文件被命名为 biblio.bib，它包含了论文中所有的引用。下面是这个文件的样子：@inproceedings{wrigstad2017mastery, Author = {Wrigstad, Tobias and Castegren, Elias}, Booktitle = {SPLASH-E}, Title = {Mastery Learning-Like Teaching with Achievements}, Year = 2017 } @inproceedings{review-gamification-framework, Author = {A. Mora and D. Riera and C. Gonzalez and J. Arnedo-Moreno}, Publisher = {IEEE}, Booktitle = {2015 7th International Conference on Games and Virtual Worlds for Serious Applications (VS-Games)}, Doi = {10.1109/VS-GAMES.2015.7295760}, Keywords = {formal specification;serious ga…

用这个漂亮的工具将方程式截图迅速转换为 LaTeX
type: item
date: 2018-10-30T06:27:15+08:00
description: Mathpix 是一个漂亮的小工具，它允许你截取复杂数学方程式的截图，并立即将其转换为 LaTeX 可编辑文本。LaTeX 编辑器在撰写学术和科学文献时非常出色。当然它还有一个陡峭的学习曲线。如果你不得不要写复杂的数学方程式，这种学习曲线会变得更加陡峭。Mathpix 是一个在这方面可以帮助你的小工具。假设你正在阅读带有数学方程式的文档。如果你想在 LaTeX 文档中使用这些方程，你需要使用你的 LaTeX 技能，并且得有充足的时间。但是 Mathpix 为您解决了这个问题。使用 Mathpix，你可以截取数学方程式的截图，它会立即为你提供 LaTeX 代码。然后，你可以在你最喜欢的 LaTeX 编辑器中使用此代码。请参阅该视频中的 Mathpix 使用方式。视频来源：Reddit 用户 kaitlinmcunningham不是超酷吗？我想编写 LaTeX 文档最困难的部分是那些复杂的方程式。对于像我这样懒人，Mathpix 是天赐之物。获取 MathpixMathpix 适用于 Linux、macOS、Windows 和 iOS。暂时还没有 Android 应用。注意：Mathpix 是一个免费使用的工具，但它不是开源的。在 Linux 上，Mathpix 有一个 Snap 包。这意味着如果你在 Linux 发行版上启用了 Snap 支持，你可以用这个简单命令安装 Mathpix：sudo snap install mathpix-snipping-tool使用 Mathpix 很简单。安装后，打开该工具。你会在顶部面板中找到它。你可以使用键盘快捷键 Ctrl+Alt+M 开始使用 Mathpix 截图。它会立即将方程图片转换为 LaTeX 代码。代码将被复制到剪贴板中，然后你可以将其粘贴到 LaTeX 编辑器中。Mathpix 的光学字符识别技术正在被像 WolframAlpha、微软、谷歌等许多公司用于在处理数学符号时提升工具的图像识别能力。总而言之，它对学生和学者来说是一个很棒的工具。它是免费使用的，我非常希望它是一个开源工具。但我们无法在生活中得到一切，不是么？在 LaTeX 中处理数学符号时，你是否使用 Mathpix 或其他类似工具？你如何看待 Mathpix？在评论区与我们分享你的观点。via: https://itsfoss.com/mathpix/作者：Abhishek Prakash 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出