# 把已有的工作带入 Oleafly

导入项目压缩包，转换文档，带入 arXiv 源码包，复制 GitHub 仓库，或把 LaTeX 项目变成 Typst 项目。

选择 **新建项目 → 导入项目**，或使用库中的 **导入**。Oleafly 会创建一个新的本地项目，原文件或原仓库保持不变。除非导入的内容自带 Git 仓库，否则导入的文件会成为项目的[第一次 Git 提交](/docs/new-project/#the-first-git-commit)，提交信息为 **Create project**。

![在新建项目对话框中选择导入项目，从已有的工作开始。](https://cdn.oleafly.com/images/screenshots/desktop/docs/new-project-dark-window-v2.png)

## 选择与你的源文件匹配的路径

| 你手上有什么 | 导入路径 | 可以创建的项目 |
| --- | --- | --- |
| 完整的项目文件夹 | **现有项目**（`.zip`） | 归档的源码、图片、参考文献和本地样式文件 |
| Word 文档 | **Word 文档**（`.docx`） | LaTeX、Markdown 或 Typst |
| Markdown 文档 | **Markdown 文档**（`.md`、`.markdown`） | LaTeX 或 Typst |
| HTML 文档 | **HTML 页面**（`.html`、`.htm`） | LaTeX、Markdown 或 Typst |
| Typst 文档 | **Typst 文档**（`.typ`） | LaTeX 或 Markdown |
| arXiv 论文 | 带编号或 URL 的 **arXiv 论文** | 该论文的 LaTeX 源码包 |
| GitHub 仓库 | **GitHub** | 与该仓库相连的本地项目 |
| 没有可编辑源码的 PDF | **Oleafly 工具 → PDF 转换器** | 重建的 LaTeX、Markdown 或 Typst，取决于你选择的工具 |
| 已在 Oleafly 中的 LaTeX 项目 | 命令面板中的 **转换为 Typst 项目** | 一个新的 Typst 项目，LaTeX 项目保持原样 |

只有在 Oleafly 提供相同写作格式的选项时，才能选择它。若想让 Markdown 或 Typst 文件保持原来的格式，请为该格式新建一个空白项目，再通过[文件树](/docs/files/#adding-existing-files)添加源文件。

## 导入完整的项目压缩包

已经有可用的源码树时，使用 ZIP。

1. 把主文档、图片、参考文献以及本地的文档类或样式文件放在同一个文件夹中。保持源码所使用的相对路径。
2. 把文件夹压缩成 `.zip` 文件。
3. 选择 **导入 → 现有项目**，并选中这个 ZIP。
4. 在导入后的文件树中，检查带星标的主文档。
5. 编译。如果项目需要不同的 LaTeX 工具链，请从编译器菜单中选择。

例如，把 `main.tex`、`references.bib`、`sections/method.tex` 和 `figures/plot.pdf` 放在一起。源码 ZIP 会保留这些关系，而 PDF 不包含同样的可编辑项目结构。

如果压缩包里有多个可能的主文档，请在编译前通过文件菜单确认正确的那个。

## 导入的项目使用哪个 LaTeX 编译器

导入或转换的 LaTeX 项目会从 **设置 → 引擎 → LaTeX** 中的默认编译引擎开始，除非你改过，否则就是 Tectonic。当默认值是 `latexmk` 且项目指定了 pdfLaTeX、XeLaTeX 或 LuaLaTeX 时，它会保留该编译器。如果导入时发现了 Tectonic 处理不了的功能，会打开引擎对话框，供你选择其他引擎。参见[为新项目设置默认值](/docs/engines/#set-a-default-for-new-projects)和 [Tectonic 不够用时](/docs/latex-engines/#when-tectonic-isnt-enough)。

## 转换 Word、Markdown、HTML 或 Typst

1. 在 **导入** 中选择对应的文档类型。
2. 选择文件。
3. 如果 Oleafly 提供了多个目标，请选择你接下来要编辑的格式。LaTeX 被标为推荐路径。
4. 如果出现提示，完成 Pandoc 的设置。Oleafly 可以使用兼容的现有安装，或下载它的托管版本。
5. 打开新项目，编译，并与原文件对照。

转换通过 Pandoc 在本地运行。Word 或 HTML 导入还会把嵌入的媒体提取到项目中，这样转换后的源码就能引用它们。导入到 LaTeX 项目的 Markdown 文档会保留其中的引用：`[@key]` 会变成 `\citep` 或 `\citet`，参考文献文件也会一并带上，因此参考文献面板从一开始就有你的文献来源。

请按接下来的工作选择目标格式：

- **LaTeX** 适合期刊模板、精细排版和带标签的 PDF 工作流。
- **Markdown** 适合更轻量的源码格式和广泛的文档转换。
- **Typst** 适合快速编译和 Typst 原生模板。

只要源格式提供了文档结构，转换就会保留它。Word 特有的页面布局、自定义的 HTML 样式、手工调整的表格、引用和复杂的公式，仍可能需要一轮清理。在删除原文件之前，请对照检查标题、列表、表格、公式、链接、引用和图片位置。

## 导入 arXiv 源码包

选择 **arXiv 论文**，然后粘贴 `2401.01234` 这样的编号，或 `arxiv.org/abs/...` 形式的 URL。Oleafly 会下载提交的源码包，并把它作为 LaTeX 项目打开。

需要作者可编辑的源码时，请用这条路径。如果想查看或保存源码压缩包而不从导入对话框开始，请用 [arXiv 转 LaTeX](/docs/tools/arxiv-to-latex/)；如果想把论文转换成 Typst，请用 [arXiv 转 Typst](/docs/tools/arxiv-to-typst/)。arXiv 编号需要联网；已在磁盘上的源码压缩包则不需要。

复用源码或图片之前，请务必查看许可证和作者的条款。

## 从 GitHub 导入

在导入对话框中选择 **GitHub**。如有需要，通过 **设置 → 集成 → GitHub** 连接你的账号，然后选择一个你可以访问的仓库。

Oleafly 会在库中创建一份本地副本。编辑之前，请检查它的主文档并编译一次。导入之后如何拉取、提交和发布更改，请参阅 [GitHub 同步](/docs/github-sync/)。

## 把 LaTeX 项目转换为 Typst

Oleafly 可以为你已有的 LaTeX 项目生成一个 Typst 副本。LaTeX 项目不会被改动。

1. 打开 LaTeX 项目。
2. 打开 ⌘K（Ctrl+K）命令面板，运行 **转换为 Typst 项目**。
3. 检查 **新项目名称**。它默认是项目名称后面加上 `(Typst)`。
4. 选择 **转换**。Oleafly 会用 Pandoc 转换项目，创建 Typst 项目，并编译一次作为检查。
5. 阅读报告，然后选择 **打开 Typst 项目**。

报告会说明新项目能否编译，统计转换了哪些内容，并列出需要手动修复的地方，每个编译错误都有链接。[Typst 项目](/docs/typst/#convert-a-latex-project-to-typst)详细介绍了转换过程和报告。

## 重建 PDF

在 **设置 → 实验功能** 中启用 **LaTeX 工具**，然后选择与你所需输出相匹配的工具：

- [PDF 转 LaTeX](/docs/tools/pdf-to-latex/)，得到 LaTeX 项目或源码压缩包
- [PDF 转 Markdown](/docs/tools/pdf-to-markdown/)，得到可编辑的 Markdown
- [PDF 转 Typst](/docs/tools/pdf-to-typst/)，得到可编辑的 Typst

本地的 PDF 流程会读取文本层，恢复阅读顺序，并提取图片。在 **PDF 转 LaTeX** 中，如果 PDF 由页面图片构成，请切换到扫描文档模式。这条路径使用工具所用模型（除非你另选，否则是本地的 Ollama 模型），最多支持 50 页的文档。

请逐页将结果与 PDF 对照。分栏、公式、表格、脚注和阅读顺序都是重建时的难题，所以任何 PDF 转换的结果都不应被当作原始源码。

## 不导入稿件也能添加参考文献

通过[引用与参考文献](/docs/citations/#import-a-whole-reference-library)导入 BibTeX、RIS、EndNote XML 或 Zotero RDF。如果一个存放论文或数据的文件夹应当留在项目之外，请把它作为[只读的研究上下文](/docs/linked-folders/)链接进来。
