第9章 LaTeX 工具
LaTeX 工具¶
使用 LaTeX 工具,你可以将 LaTeX 公式插入到 Xournal++ 文档中。 要使用此工具,你的系统必须已安装 LaTeX。
注意 本页的截图展示的是最新的每日构建版本。 在最新的每日构建版本中,预览对话框拥有可调整大小的窗口、自动换行、自动缩进以及语法高亮功能。 此外,还有一个独立的“命令输出”标签页,用于显示 LaTeX 生成命令(例如 pdflatex)的输出结果。
配置¶
LaTeX 工具要求计算机上安装 TeX 发行版。请参阅此链接了解安装指南。 用户验证可用的发行版包括 Windows 上的 MikTeX、macOS 上的 MacTeX 以及 Linux 上的 TeX Live。 如果你偏好占用硬盘空间更小的精简版 TeX 发行版,可以使用 TinyTeX,它适用于 Windows、macOS 和 Linux。 你可以从一个最小化的基础开始,使用 tlmgr 安装额外的软件包。TinyTeX 也包含在 Linux 的 Snap 包中。 查看此文件可以了解随附安装的 TeX 软件包列表。
安装好 TeX 发行版后,你可以从“偏好设置”窗口检查其是否正常工作。 方法是通过菜单访问“编辑 > 偏好设置”,然后点击 LaTeX 标签页中的“测试配置”按钮。
常见的配置问题¶
• 找不到 pdflatex 或 kpsewhich:请确保计算机上已安装 TeX 发行版,并检查你是否能在 Xournal++ 之外运行 LaTeX。 如果刚在 Windows 上安装了 MikTeX,可能需要至少运行一次 MikTeX 以安装必要的程序。
• 找不到 standalone 软件包:Xournal++ 使用 TeX 软件包 standalone 来渲染公式。 请确保你使用的 TeX 发行版已安装 standalone 软件包(如果使用 TeX Live,可能需要安装额外软件包来获取 standalone)。
• LaTeX 工具在 Flatpak 安装中无法工作:Flatpak 版本需要 Flathub 的 TeX Live 扩展,可以通过以下命令安装:
flatpak install flathub org.freedesktop.Sdk.Extension.texlive//21.08
• LaTeX 工具在 AppImage 中无法工作:.AppImage 是一个压缩文件,包含默认模板和旧版模板,但无法直接访问这些文件。 请通过解压 .AppImage 或从 GitHub 页面下载,将默认模板或旧版模板复制出来。
• 即使安装了 pdflatex 和 standalone 仍然报错:默认模板使用了 scontents 软件包,这在你所在的 TeX 发行版中可能没有包含。 尝试将模板文件更改为位于 default_template.tex 同一位置的 legacy_template.tex,它不使用 scontents 软件包。 如果仍有问题,欢迎寻求协助。
基础 LaTeX 公式¶
点击工具栏中的 LaTeX 按钮会弹出一个对话框,允许你输入公式。 对话框中央会显示预览,随着你的输入持续更新,并指示公式是否有效。
完成后,点击“确定”按钮即可将 LaTeX 插入文档;渲染后的公式将出现在当前页面的中心。 你可以按需选中、移动、缩放或编辑公式。 请注意,LaTeX 公式始终设置为行内数学模式。 如果要退出数学模式,你应该输入一个 $ 符号退出数学模式,并在末尾添加另一个 $ 符号重新进入数学模式。 例如,LaTeX 公式 $\huge$ x^2 会使用 \huge 命令增大字号,这在数学模式下是无法直接实现的。
模板自定义¶
LaTeX 公式通过将用户提供的公式(以及工具颜色等信息)替换到模板文件中来渲染。 可以在“偏好设置”窗口的 LaTeX 标签页中更改使用的模板文件。 提供有一个名为 default_template.tex 的默认 LaTeX 模板。点击它会显示其在文件系统(共享资源文件夹内)的位置。
要生成自定义的 LaTeX 模板,请复制默认模板,保存为不同的名称,并进行自定义。以下是一些建议:
• 通过在模板文件中添加 \usepackage{graphicx} 包含 graphicx 软件包。例如,这将允许你通过类似 \text{\rotatebox[origin=c]{90}{My Rotated Text}} 的 LaTeX 公式添加旋转文本。
• 通过 \usepackage{tikz} 包含 TikZ 软件包,利用强大的 TikZ 工具创建绘图。 一个简单的例子是使用 \tikz{\draw (0,0) grid(m,n)} 绘制一个 n 行 m 列的表格(或网格)。更多信息请参阅此 issue。
• 如果包含 TikZ,也通过 \usepackage{pgfplots} 包含 PGFPlots 软件包以绘制函数图像。 使用宏,你可以快速且美观地绘制函数图像。 例如,在你的模板中添加以下行:
%for defining commands \usepackage{xargs}
% for drawing and plotting \usepackage{pgfplots} \pgfplotsset{compat=newest} % Allows to place the legend below plot \newcommandx{\graph}[3][1=,2=]{ \begin{tikzpicture} \begin{axis}[xlabel=$x$,ylabel=$y$, axis lines=center,samples=100, #2] \addplot[#1]{ #3 }; \end{axis} \end{tikzpicture} }
那么,形如 \graph{x^2} 的 LaTeX 公式将绘制标准的抛物线,而 \graph[domain=-2:2, blue][x=1cm,y=1cm]{x^2} 则会进一步限制定义域、设置颜色并定义单位。
• 通过 \usepackage{listings} 包含 Listings 软件包,以实现代码片段的正确对齐和语法着色。 你需要像下面的例子那样使用 lstset 定义样式,你可以将其添加到模板中:
\usepackage{listings} \lstset{language=C++, basicstyle=\ttfamily, keywordstyle=\color{blue}\ttfamily, stringstyle=\color{red}\ttfamily, commentstyle=\color{green}\ttfamily, morecomment=[l][\color{magenta}]{\#} }
然后在 LaTeX 公式中,你可以像下面的例子那样使用 lstlisting 环境
$
\begin{lstlisting}
#include
注意,开头的和结尾的 $ 符号是必需的,用于退出和重新进入数学模式。
• 通过 \usepackage{chemfig} 包含 chemfig 软件包以绘制化学分子。例如,要绘制乙醛分子,使用 LaTeX 公式 \chemfig{H-C(-[2]H)(-[6]H)-C(=[1]O)-[7]H}
• 通过 \usepackage{circuitikz} 包含 circuitikz 软件包以绘制电路图。
这可以像下面的例子那样使用: \begin{circuitikz}[american] \draw (0,0) to[isource, l=$I_0$] (0,3) to[short, -*, i=$I_0$] (2,3) to[R=$R_1$, i>_=$i_1$] (2,0) -- (0,0); \draw (2,3) -- (4,3) to[R=$R_2$, i>_=$i_2$] (4,0) to[short, -*] (2,0); \end{circuitikz}
• 通过 usepackage{xskak} 包含 xskak 软件包以绘制国际象棋棋局。
例如,要获得“不朽之局”的将杀局面,使用 LaTeX 公式 \newchessgame[setfen=r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1, print, moveid=23b]