# 用 LaTeX 写作

用可编辑的源码构建论文，工具栏支持结构、引用、公式和图片。

从期刊版式或空白文章开始。在源码编辑器中写作，在文字旁边编译，并在一句话与它在 PDF 中的位置之间来回跳转。

![Oleafly 中的 LaTeX 练习文档，源码、大纲和编译后的 PDF 并排显示](https://cdn.oleafly.com/images/screenshots/desktop/docs/llama-writing-dark-window-v2.png)

## 做出你的第一页

1. 在项目库中，选择 **新建项目 → 使用模板 → Blank document**。
2. 把项目命名为 **工具栏练习**，然后选择 **创建项目**。
3. 打开 `main.tex`。把其中的内容替换为下面的示例。
4. 选择 **重新编译**，或在 macOS 上按 **⌘Enter**，在 Windows 和 Linux 上按 Ctrl+Enter。

```latex title="main.tex"
\documentclass{article}
\usepackage{amsmath,graphicx,hyperref}
\title{A Small Research Note}
\author{Alex Chen}
\date{}
\begin{document}
\maketitle
\section{Question}\label{sec:question}
How does the sample size affect the estimate?
\section{Method}
We repeat the measurement and compare the mean.
\begin{equation}\label{eq:mean}
  \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_i
\end{equation}
Equation~\ref{eq:mean} defines the estimate.
\end{document}
```

你应该能看到一个标题、两个章节和一个带编号的公式。这个示例提供了下面的公式、图片和链接工具所用到的宏包。

[下载示例源码](/examples/writing-example.tex)

## 认识每一个工具栏控件

![LLaMA 仅编辑器视图中的 LaTeX 工具栏。其中的控件依次包括代码/可视化切换、撤销，以及格式、引用、表格、公式、符号和代码智能。](https://cdn.oleafly.com/images/screenshots/desktop/docs/llama-editor-dark-window-v2.png#view=344,77,838,48)

格式栏位于文档上方。选中现有文字即可为其添加格式，或把光标放在要插入新内容的位置。大多数插入工具会选中一个占位符，方便你立即覆盖输入。较窄的窗格会把控件移入 **更多格式选项**（`…`）。

### 代码 / 可视化

工具栏开头的切换开关会改变文件的显示方式。**代码** 显示 LaTeX 源码。**可视化** 会就地渲染标题、格式、公式和其他标记，并在光标所在的行恢复显示源码。新项目默认以代码模式打开，每个项目会记住你离开时所处的模式。参见[可视化编辑](/docs/editor/#visual-editing)。

### 撤销

点击向左的弧形箭头，或按 ⌘Z / Ctrl+Z。撤销上一次编辑。

### 重做

点击向右的弧形箭头，或按 **⌘Shift+Z / Ctrl+Shift+Z**。重新应用被撤销的编辑。

### 标题 → 部分

从标题菜单中选择 **部分**，插入 `\part{Part}`。把标题文字替换成你自己的标题。

### 标题 → 章

从标题菜单中选择 **章**，插入 `\chapter{Chapter}`。把标题文字替换成你自己的标题。请使用基于章的文档类，例如 `report` 或 `book`。

### 标题 → 章节

从标题菜单中选择 **章节**，插入 `\section{Section}`。把标题文字替换成你自己的标题。

### 标题 → 小节

从标题菜单中选择 **小节**，插入 `\subsection{Subsection}`。把标题文字替换成你自己的标题。

### 标题 → 子小节

从标题菜单中选择 **子小节**，插入 `\subsubsection{Subsubsection}`。把标题文字替换成你自己的标题。

### 标题 → 段落

从标题菜单中选择 **段落**，插入 `\paragraph{Paragraph}`。把标题文字替换成你自己的标题。

### 加粗

选中“sample size”，点击 **加粗**，或在编辑时按 ⌘B / Ctrl+B。生成 `\textbf{sample size}`。

### 斜体

选中一个术语，点击 **斜体** 或按 ⌘I / Ctrl+I。生成 `\textit{term}`。

### 下划线

选中文字并点击 **下划线**。生成 `\underline{text}`。

### 行内代码

选中文件名或标识符，点击代码图标。生成 `\texttt{filename}`。

### 无序列表

选择 **无序列表** 插入 `itemize` 环境。在每个 `\item` 后输入各项内容。按 Enter 继续列表；在空条目上按 Enter 则退出列表。

### 有序列表

选择 **有序列表** 插入 `enumerate` 环境。在每个 `\item` 后添加各个步骤；LaTeX 会在编译时自动给出编号。

### 插入引用块

把光标放在新的一行，点击引号图标。生成 `quote` 环境，用于带出处的引文。

### 插入链接

点击链接图标，替换 `url`，再替换 `link text`。生成 `\href{url}{link text}`；请在导言区加载 `hyperref`。

### 引用

打开引用选择器，搜索项目的参考文献，然后选择你想要的条目。生成使用所选参考文献键的引用。请先在[参考文献与引用](/docs/citations/)中添加来源。

### 插入交叉引用

点击标签图标，在练习文档中把 `label` 替换为 `eq:mean`。生成 `\ref{eq:mean}`，编译后它会解析为公式编号。

### 插入脚注

把光标放在某个词之后，点击脚注图标。生成 `\footnote{note text}`；请替换其中的注释文字。

在章节标题、公式或图注之后放一个 `\label{...}`，然后引用那个确切的标签。[补全和悬停预览](/docs/autocomplete/)可以帮助你在不离开当前句子的情况下找到目标。

### 插入图片

把图片导入文件树，点击图片图标，把 `image-filename` 替换为它在项目中的路径。编辑图注和标签。生成居中的 `figure`，其中含 `\includegraphics[width=0.8\textwidth]{...}`。

### 插入表格

打开表格网格，选择行数和列数。填写表注和单元格。生成包含左对齐 `tabular` 的 `table`；用 `&` 分隔单元格，用 `\\` 分隔行。

### 绘制图表

以 TikZ 模式打开[图表编排器](/docs/figures-diagrams/)。在画布上绘制，或编辑 TikZ 代码，然后选择 **以 TikZ 插入**，把图表放到光标处。

### 图片转 LaTeX

点击图片转写按钮，选择公式或文字的截图。它使用工具所用模型（除非你另选，否则是本地的 Ollama 模型）来写出 LaTeX。如果你没有另选，而 Ollama 没有运行或没有能够读图的模型，它会改用助手的模型，图片也会发送给那个提供商。请检查插入的表达式并编译。

### align 环境

在新的一行插入；每行写一个公式，在对齐处放 `&`，行与行之间用 `\\` 分隔。生成 `align` 环境；请加载 `amsmath`。

### equation 环境

在新的一行插入，并在 begin 和 end 两行之间输入表达式。生成带编号的行间公式。

### 分式

在数学模式内使用；先替换选中的分子，再替换分母。生成 `\frac{numerator}{denominator}`。

### 符号

打开符号选择器，找到符号并选中它。会在光标处插入它的 LaTeX 命令。数学符号请在数学环境内使用。

要快速做一个表格，选择两列三行，然后使用表注 **Measurements**，单元格依次填入 `Run & Value`、`1 & 0.42` 和 `2 & 0.47`。编译后检查位置。对于较大的数据集，请在编辑器中右键点击并选择 **从 CSV/XLSX 导入表格…**，[从数据文件导入表格](/docs/writing/tables-equations/#import-a-table-from-a-data-file)。

### 代码智能 → 转到定义

把光标放在受支持的命令、交叉引用或引用上，然后选择该操作。会打开它的定义或源码位置。

### 代码智能 → 查找引用

把光标放在项目符号上。列出使用它的所有位置。

### 代码智能 → 重命名符号

选中受支持的符号并输入新名称。会准备好对项目中所有匹配引用的协同重命名。

### LaTeX 宏包

栏最右端的宏包图标。搜索 CTAN，查看某个宏包是否已加载或已安装，并选择 **添加到导言区** 写入它的 `\usepackage` 行。参见[宏包与包](/docs/packages/#latex-packages)。

### 文档分析

列出文档的标题、图片、表格、公式、标签、引用和待办事项，每一项都链接到所在的行，还可以复制标题、作者、关键词和摘要，用于投稿表单。参见[文档分析](/docs/document-insights/)。

### 文档设置

通过替你编辑导言区来更改页面大小、页边距、分栏、字体、语言、行距和编号。由文档类或会议样式控制的值会显示为灰色，下方附有原因。参见[文档设置](/docs/document-settings/)。

### 项目信息

打开栏右侧的 **项目信息**。查看文档统计；选中正文后还可以查看所选内容的统计。

### 查找

在代码模式下点击放大镜，或按 ⌘F / Ctrl+F。搜索当前文件。要搜索多个文件，请使用侧边栏的“搜索项目”。

### 跳转到 PDF（SyncTeX）

把光标放在源码中，在引擎支持时点击箭头。会跳转到编译后 PDF 中对应的位置。

[代码智能](/docs/code-intelligence/)介绍语言工具；[SyncTeX](/docs/synctex/) 介绍双向导航。

## 撰写较长的稿件

让主文件保持精简，把各节拆分到 `sections/method.tex` 这样的文件中。用 `\input{sections/method}` 引入它们。资源管理器、大纲、搜索和补全会在你工作时让这些文件保持关联。

用[参考文献指南](/docs/citations/)添加参考文献，用[图片指南](/docs/figures-diagrams/)处理曲线图和图表。构建失败时，打开 **日志**，按其中的文件和行定位，先修复第一个相关的错误，再重新编译。

## 分享成果

编译，检查 PDF，并运行[预检](/docs/preflight/)。导出 PDF 供阅读，或导出源码 ZIP 给需要编辑的合作者。[导出格式](/docs/export/)还介绍了 Word、HTML、Markdown 以及针对特定文档的转换。

## 仅编辑器布局

当你想为源码留出更多空间时，从项目布局菜单中选择 **仅编辑器**。格式工具仍在文档上方，下次编译时你可以回到分屏布局。

![仅编辑器布局下的 LaTeX 源码编辑器及其格式工具栏。](https://cdn.oleafly.com/images/screenshots/desktop/docs/llama-editor-dark-window-v2.png)
