> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/zh-cn/pei-zhi/overleaf-toolkit/templates.md).

# 模板

{% hint style="info" %}
此功能最初由 [yu-i-i/overleaf-cep](https://github.com/yu-i-i/overleaf-cep)，并由 [ayaka-notes/overleaf-pro](https://github.com/ayaka-notes/overleaf-pro).
{% endhint %}

{% columns %}
{% column %}

<figure><img src="/files/ca3ccf6a2ccd0d98da7bf507cc23a8a187bcc09e" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/0290bbf99bd37358775478edb1c186b912b06002" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### 配置

模板库功能通过以下环境变量进行控制：

* `OVERLEAF_TEMPLATE_GALLERY`：设置为 `true` 以启用模板库。
* `OVERLEAF_TEMPLATE_CATEGORIES`：一个可选的以空白分隔的、包含零个或多个模板分类键的列表。有效键包括：

  * *`academic-journal`*
  * *`book`*
  * *`presentation`*
  * *`poster`*
  * *`cv`*
  * *`homework`*
  * *`bibliography`*
  * *`calendar`*
  * *`formal-letter`*
  * *`report`*
  * *`thesis`*
  * *`newsletter`*

  特殊键 *`all`* 会自动附加。此键表示一个包含所有模板的分类。

  对于每个分类键，可以设置以下可选环境变量：

  * `TEMPLATE_<KEY>_NAME`：模板分类的显示名称。
  * `TEMPLATE_<KEY>_DESCRIPTION`：该分类的简短描述。

  如果分类键包含连字符（`-`），请在环境变量名中将其替换为下划线（`_`）。
* `ENABLE_CONVERSIONS`：必须设置为 `true` 以启用模板的缩略图和预览生成。

### 发布权限

管理员可以发布模板。你也可以指定一名非管理员用户来管理在本地模板库中显示的精选模板，地址为 `/templates`.

为此，你需要设置环境变量 `OVERLEAF_TEMPLATES_USER_ID` 在 `toolkit/config/variables.env` 中，将其 `ID` 设置为在你的实例中负责模板管理的用户的 ID，例如：

```dotenv
OVERLEAF_TEMPLATES_USER_ID=56a8865231faeb5f07d69959
```

### 发布模板

对于你要上传的每个模板：

1. 创建一个包含该模板源代码的项目，并确保它可以编译。
2. 在编辑器左侧菜单中，选择 **发布为模板**.
3. 在出现的表单中，填写模板详情：
   * 该 *标题* 必须唯一。
   * 该 *描述* 字段支持 Markdown 格式。
   * 该 *作者* 字段接受 Markdown 格式的链接。

提交后，可在模板库页面编辑模板详情，或删除模板。用户可以管理自己的模板；管理员可以管理任何模板。

以下是一个示例：

{% code overflow="wrap" expandable="true" %}

```dotenv
#################
#   模板   #
#################

ENABLE_CONVERSIONS=true

OVERLEAF_TEMPLATE_GALLERY=true
OVERLEAF_TEMPLATE_CATEGORIES=academic-journal book presentation poster cv homework bibliography calendar formal-letter report thesis newsletter

TEMPLATE_ACADEMIC_JOURNAL_NAME=期刊文章
TEMPLATE_ACADEMIC_JOURNAL_DESCRIPTION=用于学术期刊投稿的模板，包括主要出版商和预印本服务器的格式。

TEMPLATE_BIBLIOGRAPHY_NAME=参考文献
TEMPLATE_BIBLIOGRAPHY_DESCRIPTION=使用 BibTeX 或 BibLaTeX 创建和管理参考文献的样式。适用于学术论文、学位论文和报告。

TEMPLATE_BOOK_NAME=书籍
TEMPLATE_BOOK_DESCRIPTION=用于撰写书籍或长篇文档的模板，包括章节结构、前言和索引。

TEMPLATE_CALENDAR_NAME=日历
TEMPLATE_CALENDAR_DESCRIPTION=用于创建年历、月历或周历的模板。适合个人计划或活动安排。

TEMPLATE_CV_NAME=简历和履历
TEMPLATE_CV_DESCRIPTION=用于简历和履历的模板，提供适用于学术、行业和创意岗位的多种格式。

TEMPLATE_FORMAL_LETTER_NAME=正式信函
TEMPLATE_FORMAL_LETTER_DESCRIPTION=用于专业信函的模板，例如求职信、推荐信和正式往来信件。

TEMPLATE_HOMEWORK_NAME=作业
TEMPLATE_HOMEWORK_DESCRIPTION=用于家庭作业、课程作业和习题集的模板。设计简洁且结构清晰，适合学生和教育工作者。

TEMPLATE_NEWSLETTER_NAME=简报
TEMPLATE_NEWSLETTER_DESCRIPTION=用于创建简报的模板，适用于学术、企业或社区交流。

TEMPLATE_POSTER_NAME=海报
TEMPLATE_POSTER_DESCRIPTION=用于科学和学术海报的模板，通常用于会议和研究展示。

TEMPLATE_PRESENTATION_NAME=演示文稿
TEMPLATE_PRESENTATION_DESCRIPTION=用于 Beamer 和其他演示格式的模板，专为学术报告和讲座而设计。

TEMPLATE_REPORT_NAME=报告
TEMPLATE_REPORT_DESCRIPTION=用于技术报告、实验报告或项目报告的模板。包括图表、表格和参考文献部分。

TEMPLATE_THESIS_NAME=学位论文
TEMPLATE_THESIS_DESCRIPTION=用于撰写学位论文和博士论文的模板，遵循机构格式和引用规范。

TEMPLATE_ALL_NAME=全部模板
TEMPLATE_ALL_DESCRIPTION=浏览所有可用的 LaTeX 模板集合，按文档类型、样式和用途分类。

```

{% endcode %}

### 从 overleaf.com 转移模板 <a href="#transferring-templates-from-overleaf.com" id="transferring-templates-from-overleaf.com"></a>

由于 Overleaf Pro 的架构设计为离线工作，因此没有自动化方式将 [overleaf.com](https://www.overleaf.com/) 模板库模板集成到你的本地部署安装中；不过，可以按模板逐个手动完成。

默认情况下，Overleaf Pro 配置为在编译时使用 TeXLive 的基础方案版本。这个基础版本很轻量，只包含极少量的 LaTeX 宏包子集，这很可能会导致你的用户在尝试使用来自 [overleaf.com](https://www.overleaf.com/) 的模板时，在本地部署实例中遇到缺失宏包错误。

不幸的是，虽然没有自动安装缺失宏包的方法，但在 Server Pro 中我们提供了一个可配置的设置，允许你的用户以更安全的方式编译项目，并访问更多宏包。此功能称为 [沙盒编译](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/server-pro-only-configuration/sandboxed-compiles) （也称为 Sibling Containers）。

为确保下载的模板与你的本地 Server Pro 实例兼容，我们强烈建议你启用 [沙盒编译](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/server-pro-only-configuration/sandboxed-compiles) 因为此功能将为你的用户提供与在 [overleaf.com](https://www.overleaf.com/)上相同的 TeX Live 环境。这些镜像包含最常用的宏包和字体，并且已经过我们模板库模板的测试。

你可以在文档中的 [更改 TeX Live 镜像](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/server-pro-only-configuration/sandboxed-compiles#changing-the-tex-live-image) 部分找到关于如何配置用户可在其项目中选择的 TeX Live 版本，以及如何为新项目设置默认 TeX Live 镜像版本的更多信息。

1. 前往 [模板库](https://www.overleaf.com/latex/templates) 中的 [overleaf.com](https://www.overleaf.com/) 并找到所需的模板，例如 [IEEE Photonics Journal Paper Template - Example Submission](https://www.overleaf.com/latex/examples/ieee-photonics-journal-paper-template-example-submission/bsfjjfkdsjds)
2. 点击 **作为模板打开** 按钮
3. 点击项目菜单并选择 **下载源文件**
4. 接下来，登录到本地部署的 Server Pro 账户
5. 点击 **新建项目** 按钮，并选择 **上传项目**
6. 点击 **选择一个 .zip 文件** 按钮，然后选择已下载的模板 zip 文件

用户随后可以在自己的账户中使用这个新上传的模板；或者，作为模板管理用户，你可以将其发布给其他用户使用。

### 问答

<details>

<summary>在发布对应模板后，我可以删除该项目吗？</summary>

**答案：** 可以，但我们不建议这样做。发布模板时，我们会对项目进行快照，并在发布时将项目保存为 zip 文件。这可确保即使你删除了对应模板的项目，模板也不会受到影响。

不过，我们也会记录与此模板关联的 ProjectID，这样你以后就可以轻松更新该模板。

如果你删除了对应的项目，你将不会在模板详情页面看到“Admin: Source Project”按钮（见下图）。

<figure><img src="/files/8503776acc96a7029d42967ce2fb195e121a326d" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>为什么有些项目发布模板会花这么长时间？</summary>

**答案：** 当你发布模板时，我们会将项目保存为 zip 和 pdf 文件，这通常很快。不过，我们还需要为 PDF 生成缩略图，以便在模板详情中显示。

缩略图生成时间通常取决于 PDF 首页的内容。为了在显示质量和转换时间之间取得平衡，我们选择一个中间值作为宽度。

不过，如果 PDF 的第一页包含大量文本，生成缩略图可能需要 40 秒甚至更久，请耐心等待。以下是一个大型海报的示例，它会花更长时间。

<figure><img src="/files/231d281f81dcfe906dc52962ba5b3d6b4aa17693" alt="" width="188"><figcaption><p>大型海报</p></figcaption></figure>

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/zh-cn/pei-zhi/overleaf-toolkit/templates.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
