如何将 chktex linting 和格式检查脚本集成到 TexStudio 中?
我想在每次构建时自动运行 chktex 并在消息窗口中查看输出。
答案1
我没有找到如何将 chktex 集成到 TexStudio 中的答案,因此这是我自己的答案
如果有人感兴趣的话,这是在 Ubuntu 上通过自定义命令实现的方法:
- 安装
chktex
(例如sudo apt install chktex
) - 打开 TexStudio -> 选项 -> 配置 TexStudio
Show Advanced Options
在左下角启用- 转到
Build
选项卡并User Commands
按下+Add
- 命令名称 =
user0:chktex
,命令可执行文件 =./chktex %
(百分号是主文件名的占位符,不带扩展名。 - 可选:如果你想在每次构建时运行 chktex,只需使用以下命令将命令添加到 Build & View 行中:
txs:///user0
- 然后创建运行 chktex 并检查输出的脚本。注意:可以直接将 chktex 作为命令运行,但即使没有错误,它也会始终返回错误退出代码。因此我们需要附加脚本:
将此文件保存为您的主 .tex 文件之外的文件chktex.sh
:
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
if [ $# -ne 1 ]; then
echo "Usage: chktex.sh [FileWithoutExtension]"
exit 1
fi
main_file=$1
if test -f "$DIR/$main_file.chk"; then
rm $DIR/$main_file.chk
fi
chktex -l $DIR/.chktexrc $DIR/$main_file.tex -o $DIR/$main_file.chk
chk_out=`cat $DIR/$main_file.chk`
if [ ${#chk_out} -gt 0 ]; then
cat $DIR/$main_file.chk
rm $DIR/$main_file.chk
exit 1
else
echo "chktex did not find any issues"
exit 0
fi
- 添加
.chktexrc
文件以配置 chktex 以适应您的项目。注意:以下文件是根据我的项目进行调整的,您可能需要进行调整。
CmdLine {
-q
-n 1 # Command terminated with space.
-n 8 # Wrong length of dash may have been used.
-n 12 # Interword spacing (`\ ') should perhaps be used.
-n 13 # Intersentence spacing (`\@') should perhaps be used.
-n 24 # Delete this space to maintain correct pagereferences.
-n 36 # You should put a space in front of parenthesis.
# -n 26 # You ought to remove spaces in front of punctuation.
# -n 11 # You should use \ldots to achieve an ellipsis.
# -n 18 # Use either `` or '' as an alternative to `"'.
# -n 2 # Non-breaking space (`~') should have been used.
}
由于 chktex 的输出依赖于等宽字体来标记错误位置,我们需要将字体从 TexStudio 的消息输出切换为等宽字体。为此,请打开
$HOME/.config/texstudio/texstudio.ini
并在部分中[texmaker]
添加一个新条目LogView\FontFamily=DejaVu Sans Mono
现在运行您的构建,您将获得 chktex 输出