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 | \citepub{%<bibid%>}#c |
将 pub 替换为实际使用的名称。随后前往 TeXstudio Config -> Completion,勾选你创建的 cwl 文件。
正确编译(跨平台)
将 bibliography 命令设置为:
1 | bibtex ?*.aux |
正确编译(Windows)
(如果上述方式无效)创建文件 multibib.bat,内容如下:
1 | @ECHO off |
将 multibib.bat 保存到合适位置(例如你的 TeX 安装的 bin 目录)。可能是 C:Files或 C:\2012,其他位置也可以。
前往 TeXstudio Config -> Command -> BibTeX,选择 multibib.bat。
现在 F11 可以正确编译 multibib
的参考文献,编译前的自动文献更新也能工作。
让 TXS 识别自定义引用与引用命令
TXS 会自动识别参考引用。但如果你自定义命令,如 或,它不会自动识别。
以下步骤可以将自定义命令告知 TXS:
- 在配置目录中创建一个 .cwl 文件,例如 usercommands.cwl,并加入类似如下内容:
1 | \mycite{%<bibid%>}#c |
其中 # 后的 c 表示引用命令,r 表示引用标签。
- 前往 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 | % Workaround a bug in the \includegraphics macro which fails to include images from the output directory |
从 JabRef 插入引用
与 JabRef 合作,我们实现了从 JabRef 直接向 TeXstudio 插入引用(JabRef 2.9 起可用)。
插入引用的步骤:
- 在 JabRef 主界面,点击工具栏中的下拉列表(倒数第二个图标)。
- 选择 “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。
使用方法
- 在 TeXstudio 中打开 .tex 文件,同时在 JabRef 中打开 .bib 文件。
- 在 TeXstudio 中将光标放到需要引用的位置。
- 切换到 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 具备高级演示功能,可在一块屏幕上显示演示文稿,在另一块隐藏屏幕上显示附加信息(如剩余时间或下一张幻灯片)。
- 切换到窗口化的内置阅读器,使用 Window / New Window 创建两个 PDF 阅读器窗口。
- 在两个窗口中启用 Configure / Synchronize multiple views。
- 在两个窗口中禁用 View / Continuous,避免显示部分页面。
- 在演示者窗口中选择 View / Grid / 1x1,仅显示单页,将其移到演示屏并选择 View / Presentation。
- 在自己屏幕的窗口中选择要显示的附加信息:
- 显示当前与下一张幻灯片:选择 View / Grid / 2x1 以及 View / Grid / Single Page Step。
- 显示剩余时间:选择 Window / Show / Clock,并右键点击底部彩色栏设置时间。
预览生成的日志文件
预览会创建临时文件。你可以通过进入临时文件夹浏览它们。TeXstudio 支持加载 .log 文件,因此更建议按上述方式使用 .log 文件。
做法是:在消息面板中复制不带扩展名的文件名,选择 File/Open...,进入临时文件夹并使用剪贴板输入日志文件名(记得添加 .log 扩展名)。确认打开后切换到消息面板中的日志标签页。
%tmp% 可作为临时文件夹的快捷方式(取决于所使用的操作系统)。