TeXworks

TeXworks 是一个轻量级、跨平台的 LaTeX 编辑器,与 TeX Live 和 MiKTeX 捆绑在一起。它是特意按照流行的 macOS 编辑器 TeXShop 的形象构建的,以“降低进入 TeX 世界的门槛”——这使其成为出色的第一个编辑器。本页面将逐步介绍如何配置排版工具、将多文件项目联系在一起的根文件注释以及将源链接到内置 PDF 预览的 SyncTeX。

什么是 TeXworks

TeXworks 是由 Jonathan Kew 编写的,他也创建了 XeTeX。他发现当时面向 Windows 的集成环境对于新手来说过于复杂和令人生畏,因此特意以 Richard Koch 的 TeXShop(备受推崇的 macOS 编辑器)为模型,为 Windows 和 Linux 带来了整洁的感觉。目标很明确:降低进入 TeX 世界的门槛。它不是在功能上进行竞争,而是旨在减少初学者可能迷失方向的地方。

它最大的实际优势是不需要安装任何额外的东西:它附带 TeX Live 和 MiKTeX,因此安装发行版也可以为您提供编辑器。 It is built on the Qt GUI toolkit and behaves the same on Windows, macOS, and Linux.编辑器本身具有 Unicode 感知能力(默认为 UTF-8),并提供了一组适度且精心挑选的工具 - 命令完成、输入帮助和拼写检查。当您超出默认值时,可选的 Lua 和 Python 脚本插件(在构建时启用)可让您使用自己的命令。

这种简单性的另一面是 TeXworks 并不是为复杂的多阶段构建或繁重的项目管理而构建的 - 此类工作流程被故意保留在前台之外,因为对于初学者来说太高级了。当您的设置变得非常复杂时,下一步自然是使用 TeXstudioVS Code (LaTeX Workshop) 等编辑器。但要编译第一个文档,TeXworks 大约是最短路径。

配置排版工具

TeXworks 的核心是工具栏左侧的排版下拉菜单。您选择要运行的引擎(pdfLaTeXLuaLaTeXXeLaTeX、ConTeXt 等),然后按其旁边的绿色三角形(或 Ctrl/Cmd-T); TeXworks 编译当前文档并打开 PDF 预览。它附带了一组已配置的工具 - pdfLaTeX、XeLaTeX、ConTeXt (MkII),以及 BibTeX 和 MakeIndex 等帮助程序。

您可以将自己的条目添加到该下拉列表中。打开编辑→首选项→排版选项卡;底部的处理工具列表包含工具,+用于添加一个,-用于删除,Edit...用于修改。每个工具都有一个名称(下拉列表中显示的标签)、一个程序(要运行的命令)、参数(每行一个)和一个运行后查看 PDF 复选框。参数接受变量:$fullname 扩展到正在处理的文件,$synctexoption 扩展到 SyncTeX 选项(如下所述)。

作为一个示例,这是一个 pdfLaTeX 工具,它将构建工作交给 latexmk。因为 latexmk 自己决定需要多少遍来解决交叉引用和参考书目,所以它使 TeXworks 方面更简单。将 Program 设置为 latexmk,如下所示每行输入一个 Arguments,并勾选 运行后查看 PDF

terminal
-e
$pdflatex=q/pdflatex $synctexoption %O %S/
-pdf
$fullname

对于日语,通常的路线是使用 upLaTeX 进行排版,然后使用 dvipdfmx 将结果转换为 PDF。与 TeX Live 捆绑的 TeXworks 已经包含日语工具,但如果您自己添加一个,最简单的方法是 ptex2pdf,它包含了这两个步骤。将 Program 设置为 ptex2pdf,参数如下(-u 选择 upLaTeX,-l 选择 LaTeX 格式,-ot 将额外选项传递给 TeX)。

terminal
-l
-u
-ot
-kanji=utf8 -no-guess-input-enc $synctexoption
$fullname

在排版首选项顶部将您最常用的引擎设置为默认排版引擎,新打开的文档将使用它。当您需要为特定文件使用不同的引擎时,下一节中的神奇注释将覆盖它。

根文件和魔法注释

随着文档的增长,一种常见的安排是将其拆分为从父级 \input\include 拉取的每章文件。问题是当您在子文件(例如 chapter1.tex)打开时进行排版时会发生问题:子文件没有 \documentclass 也没有 \begin{document},因此它无法自行编译。

修复是一个神奇的评论。对于 TeX 来说,这些看起来像普通注释(% 之后的任何内容),但 TeXworks 读取文件顶部的某些行并相应地更改其行为。将 % !TeX root = ... 放在指向父文件的子文件顶部,并在编辑子文件时进行排版,从而使 TeXworks 编译父(根)文件。该路径是相对于子文件写入的。

latex
% !TeX root = main.tex

\chapter{はじめに}
本文をここに書きます。

还有其他神奇的评论。 % !TeX program = ... 选择该文档的引擎 - 该值是您在首选项中配置的工具名称,而不是可执行文件的文件名。将其放在日语文档的顶部,即使您忘记切换下拉菜单,也会使用正确的引擎。 % !TeX encoding = ... 声明文件的字符编码;由于TeXworks默认为UTF-8,如果你用UTF-8编写,通常不需要它。 (% !TeX program 也接受旧的拼写 % !TeX TS-program。)

latex
% !TeX program = upLaTeX (ptex2pdf)
% !TeX encoding = UTF-8
\documentclass{ujarticle}
\begin{document}
\input{chapter1}
\end{document}

从一页到拆分项目

TeXworks 故意设计得比较轻,因此最好从一个 .tex 文件开始。一旦生成 PDF,将章节拆分为子文件并在其中添加根指令;该项目可以在不使设置复杂化的情况下发展。

  • 仅以 main.tex 开头:标题、章节标题和简短正文。
  • 在排版下拉列表中选择一个条目,并确认它每次都会生成 PDF。
  • 分割章节后,将 % !TeX root = main.tex 放在子文件的顶部。
  • 对于日语文档,请在整个项目中保持 % !TeX program = ... 行和 UTF-8 策略一致。

谨慎使用日志和辅助工具

因为 TeXworks 保持视觉上的轻盈,所以它是学习阅读日志的一个很好的编辑器。排版后的消息不仅仅告诉您是否生成了 PDF:未解析的引用、丢失的包以及失败的图像包含都浮出水面。把辅助文件当成有用的状态,不要乱七八糟地不断删除;仅当构建状态看起来陈旧时才清理它们。

  • 如果引用仍然是 ??,则使用同一工具多次排版,以便更新 .aux
  • 仅在主要目录或参考书目发生更改后删除 .aux.toc,然后从头开始重建。
  • 当图像没有出现时,将日志中的文件名与实际路径进行比较。文件名中避免使用空格和日语字符。
  • 如果配置变得过于复杂,请将构建逻辑移至 .latexmkrc 中或考虑使用更重的编辑器,而不是将所有内容强制放入 TeXworks 中。

SyncTeX(正向和反向搜索)

TeXworks 有一个基于 Qt 和 Poppler 库的 内置 PDF 预览,因此无需切换到 Acrobat 等外部查看器 - 您可以在同一窗口中进行编辑和检查。 SyncTeX 然后在两个方向链接源和预览中的位置;它是 Jérôme Laurens 等人开发的同步机制。

使用起来很直观。要从源中的某个位置跳转到 PDF(正向搜索)中的匹配位置,源中的 Ctrl/Cmd-click 。反之,从 PDF 回到源中的相应行(反向搜索),预览中的 Ctrl/Cmd-click。能够在“PDF 中的这段文字在哪里”和“这是哪一行源代码”之间立即跳转,使得修改更加顺利。

令人高兴的是,这开箱即用。 SyncTeX 通过在编译时发出 .synctex.gz 查找表来构建其映射,标准 TeXworks 工具通过传递 --synctex=1(上一节中的 $synctexoption)的等效项来自动打开它。在您自己的工具中,在参数中包含 $synctexoption ,同步的工作方式相同。