TexStudio-提示与技巧(AI译)

本文利用AI翻译自Github上TexStudio中的Tips And Tricks,原文由sunderme撰写,最后更新于2023年六月一日。供参考使用

深色模式

深色模式支持正在开发中。开发版提供了一套语法高亮配色方案。其他方案可在这里、这里和这里找到。导入的配置文件需要将 [formats] 改为 [formatsDark] 注:现在texstudio已经支持Dark Mode。

特殊注释

编辑器 TeXWorks 引入了特殊的 LaTeX 注释,格式为 % !TeX [command],用于向编辑器传递信息(Magic comment )。

TeXstudio 支持其中一部分命令,目前包括:

  • % !TeX encoding = UTF-8 告诉 TeXstudio 加载文件时应使用的编码。(注意:TeXstudio 具有自动编码检测,在很多情况下都有效,但并不完美。只有当自动检测失败时才需要这条命令。)
  • % !TeX spellcheck = en_GB TeXstudio 会自动加载指定字典进行拼写检查。这样可以在不同语言的文件间工作,而无需为每个文档手动切换拼写检查器。
  • % !TeX root = ../xx.tex 告诉 TeXstudio 当前文件是主文档的一部分,主文档位于相对路径 ../xx.tex。这样在编辑子文件时,TeXstudio 仍会使用主文档的设置进行编译、预览和语法检查。 ## 插入图片

“插入图片”向导可以自动生成所需代码,方便在文档中插入图片。你也可以通过拖放图片到 TeXstudio 来启动向导支持多文件。该向导还可以编辑已有的插图代码:将光标放在代码上并启动向导即可。

全屏模式

双击菜单栏的空白区域也可以进入全屏模式。这与多数窗口管理器中双击标题栏来最大化窗口的行为一致。当前该特性仅适用于主窗口。(在 Ubuntu Unity 中,使用 Alt-f(字母 f,不是功能键)恢复菜单栏,以便退出全屏。)

列编辑 / 多光标

按住 Ctrl+Shift 并拖动鼠标可创建用于同时编辑多行的光标。按住 Ctrl+Alt 并单击(不拖动)可在任意位置创建多个光标。

不使用鼠标时,可用 Ctrl+Alt 加上下方向键来放置多光标。

特殊场景下,可使用 Edit/Searching/Select All Matches,在搜索栏中查找文本后生成多光标。

Edit/Selection/Select All Occurrences 与上面类似,但针对当前单词(光标所在词)而非搜索结果。另有 Edit/Selection/Also Select Next Occurrence 与 Edit/Selection/Also Select Previous Occurrence,用于为当前词的下一处或上一处出现位置创建多光标。

工具提示与上下文菜单

我们持续提升 TeXstudio 的上下文感知能力。留意各处出现的工具提示与上下文菜单,它们提供额外信息和实用功能。

向工具栏添加子菜单

在 Options -> Configure -> Toolbars 中配置工具栏时,可以把完整的子菜单添加到工具栏(例如 Tools -> Commands 菜单)。该菜单会以工具栏下拉列表的形式显示。

在 multibib 包下使用 TXS

TXS 不原生支持 multibib,但可以通过以下设置使其工作。

编辑器中正确识别命令

在配置目录中创建一个 .cwl 文件(见 Frequently Asked Questions)。

对于通过 创建的每个参考文献组 pub,在 .cwl 文件中添加如下四行:

1
2
3
4
\citepub{%<bibid%>}#c
\nocitepub{%<bibid%>}#c
\bibliographypub{%<file%>}#b
\bibliographystylepub{%<style%>}

将 pub 替换为实际使用的名称。随后前往 TeXstudio Config -> Completion,勾选你创建的 cwl 文件。

正确编译(跨平台)

将 bibliography 命令设置为:

1
bibtex ?*.aux

正确编译(Windows)

(如果上述方式无效)创建文件 multibib.bat,内容如下:

1
2
3
4
5
6
7
@ECHO off
IF (%1)==() GOTO end

FOR %%f in (%1\*.aux) DO bibtex %%f

@ECHO on
:end

将 multibib.bat 保存到合适位置(例如你的 TeX 安装的 bin 目录)。可能是 C:Files或 C:\2012,其他位置也可以。

前往 TeXstudio Config -> Command -> BibTeX,选择 multibib.bat。

现在 F11 可以正确编译 multibib 的参考文献,编译前的自动文献更新也能工作。

让 TXS 识别自定义引用与引用命令

TXS 会自动识别参考引用。但如果你自定义命令,如 或

,它不会自动识别。

以下步骤可以将自定义命令告知 TXS:

  1. 在配置目录中创建一个 .cwl 文件,例如 usercommands.cwl,并加入类似如下内容:
1
2
\mycite{%<bibid%>}#c
\myref{%<label%>}#r

其中 # 后的 c 表示引用命令,r 表示引用标签。

  1. 前往 TeXstudio Config -> Commpletion,勾选你创建的 cwl 文件。

关于 .cwl 文件的更多信息,请参阅用户手册相应章节。

为辅助文件使用单独目录

LaTeX 生成的辅助文件会把工作目录弄得很乱。除了使用 Tools -> Clean Auxiliary Files 清理,你也可以将这些文件放在单独目录中,做法如下:

让 LaTeX 引擎把辅助文件存到其他位置

  • 在 MiKTeX 中,可在 Options -> Configure -> Commands 修改 pdflatex 命令,例如添加 -aux-directory=DIR。该选项仅适用于 MiKTeX。
  • 在 TeX Live 中需使用 -output-directory=DIR(MiKTeX 也支持该选项),这样 pdflatex 会把辅助文件与 pdf 一并输出到指定位置。

让 TeXstudio 在指定位置查找日志(及 pdf)文件

  • 使用 -aux-directory=aux-files 时,在 Options -> Configure -> Build -> Build Options -> Additional Search Paths -> Log File 添加 aux-files 即可(需开启高级选项)。
  • 使用 -output-directory=aux-files 时,日志和 pdf 都位于 aux-files,因此还需要把 aux-files 添加到 Additional Search Paths -> PDF File。
  • 多路径在 Windows 中使用 ; 分隔,例如 aux_dir;aux_dir2,Linux 或 macOS 使用 :。

让 LaTeX 工具从指定目录读写

  • 使用 bibtex 时,将调用修改为:bibtex.exe -include-directory=aux-files aux-files。
  • biber 类似,可改为:biber.exe --output_directory=aux-files %。

注意:必须手动创建 aux-files 目录,否则 pdflatex 会因目录不存在而报错退出。

如果你使用外部 PDF 阅读器,请到 Commands 设置界面设置 External PDF viewer,使其能找到 PDF 文件,例如:

1
xdg-open ?p{pdf}:ame > /dev/null

(具体命令取决于你的外部阅读器)

如果你的构建脚本会在输出目录生成文章图片,且文档从输出目录引用图片,那么你可能需要较新的 TeX Live 版本(2019-05-07 之后),因为更早版本存在一个 bug,导致无法在输出目录中搜索图像。详见 TeX Live 的相关 bug。

如果你使用较旧的 TeX Live,可在 .tex 文件导言区或自定义 .cls 文件中使用以下变通方案(仅在旧版 TeX Live 且从输出目录包含图片时需要):

1
2
3
4
5
6
7
8
9
10
11
% Workaround a bug in the \includegraphics macro which fails to include images from the output directory
% For more details see
% https://github.com/latex3/latex2e/issues/145
\def\Gin@getbase#1{%
\edef\Gin@tempa{%
\def\noexpand\@tempa####1#1\space{%
\def\noexpand\Gin@base{####1}}}%
\@iffileonpath{\filename@area\filename@base#1}%
{\Gin@tempa
\expandafter\@tempa\@filef@und
\edef\Gin@ext{#1}}{}}%

从 JabRef 插入引用

与 JabRef 合作,我们实现了从 JabRef 直接向 TeXstudio 插入引用(JabRef 2.9 起可用)。

插入引用的步骤:

  1. 在 JabRef 主界面,点击工具栏中的下拉列表(倒数第二个图标)。
  2. 选择 “TeXstudio”。

设置

可在 JabRef 的插件设置中配置行为。右键点击 JabRef 下拉列表中的 TeXstudio 图标即可打开设置。可配置项包括:

  • Cite command:引用的 TeX 命令(如果计划使用 biblatex,可将默认 \cite 替换为 \autocite)。在 OSX 上需填写完整路径,标准安装为 /Applications/texstudio.app/Contents/MacOS/texstudio。
  • Path to TeXstudio:TeXstudio 可执行文件位置。通常无需修改,若插入失败请确认路径正确。

如果使用 biblatex:回到 JabRef 主界面,进入 Options → Preferences:

  • 若 .bib 文件为 UTF-8 编码,点击 General 并在 Default Encoding 中选择 UTF-8;
  • 点击 Advanced 并勾选 Biblatex mode。

使用方法

  1. 在 TeXstudio 中打开 .tex 文件,同时在 JabRef 中打开 .bib 文件。
  2. 在 TeXstudio 中将光标放到需要引用的位置。
  3. 切换到 JabRef,选中要引用的条目并点击 TeXstudio 插件图标。

TeXstudio 将插入 \cite(或 \autocite)命令,其必选参数为所选条目的键值列表。

若光标位于已有引用命令内,TeXstudio 会追加所选引用,而不是插入新命令。

多语言拼写检查

TeXstudio 每个文件仅支持一个字典进行拼写检查。对多语言文档来说,这意味着除所选语言之外的内容都会被标为错误。可用的变通方案是通过 HunspellMerge 创建一个多语言混合字典并用于拼写检查。

另一种做法是通过状态栏的字典切换按钮,在多个字典之间手动切换。

使用自定义包

先让你的 .sty 文件被所使用的 LaTeX 发行版识别。这一步保证(pdf)latex 能在编译时使用它。它并非 TeXstudio 特定操作,网上有详尽说明(例如 MikTeX 或 TeXlive 的文档)。对于 TeXlive,需执行 texhash,因为 TXS 使用 ls-R 缓存(见第 2 点)。此后编译正常,但 TXS 可能仍会将包名或命令标记为未知。

包名

TXS 会从发行版中获取已安装包的信息。TeXlive 下只要 texhash 过就能检测到。MikTeX 目前无法检测本地 texmf 目录中的包,因此这里仍会显示缺失包下划线。详见 Why does TXS mark a package as missing?。

命令

请参考 How does TXS know about valid commands。虽然 TXS 具备从 sty 文件自动生成 cwl 的有限能力,但我们建议显式编写 cwl 文件并放在相应目录中。当 TXS 发现

命令时,会加载对应的 mypkg.cwl,使其中的命令被识别。

便携版路径设置

使用 U 盘上的便携版时,路径(例如同盘的便携版 MikTeX)可能因为盘符变化而变动。

为保持配置始终可用,可使用相对于 texstudio 可执行文件 [txs-app-dir] 与设置目录 [txs-settings-dir] 的相对路径。例如:

1
[txs-app-dir]\..\MikTeX Portable\miktex\bin\x64\latex.exe

使用 TeXstudio 进行 PDF 演示

TeXstudio 具备高级演示功能,可在一块屏幕上显示演示文稿,在另一块隐藏屏幕上显示附加信息(如剩余时间或下一张幻灯片)。

  1. 切换到窗口化的内置阅读器,使用 Window / New Window 创建两个 PDF 阅读器窗口。
  2. 在两个窗口中启用 Configure / Synchronize multiple views。
  3. 在两个窗口中禁用 View / Continuous,避免显示部分页面。
  4. 在演示者窗口中选择 View / Grid / 1x1,仅显示单页,将其移到演示屏并选择 View / Presentation。
  5. 在自己屏幕的窗口中选择要显示的附加信息:
    • 显示当前与下一张幻灯片:选择 View / Grid / 2x1 以及 View / Grid / Single Page Step。
    • 显示剩余时间:选择 Window / Show / Clock,并右键点击底部彩色栏设置时间。

预览生成的日志文件

预览会创建临时文件。你可以通过进入临时文件夹浏览它们。TeXstudio 支持加载 .log 文件,因此更建议按上述方式使用 .log 文件。

做法是:在消息面板中复制不带扩展名的文件名,选择 File/Open...,进入临时文件夹并使用剪贴板输入日志文件名(记得添加 .log 扩展名)。确认打开后切换到消息面板中的日志标签页。

%tmp% 可作为临时文件夹的快捷方式(取决于所使用的操作系统)。