如何将 chktex 集成到 TexStudio

如何将 chktex 集成到 TexStudio

如何将 chktex linting 和格式检查脚本集成到 TexStudio 中?

我想在每次构建时自动运行 chktex 并在消息窗口中查看输出。

答案1

我没有找到如何将 chktex 集成到 TexStudio 中的答案,因此这是我自己的答案

如果有人感兴趣的话,这是在 Ubuntu 上通过自定义命令实现的方法:

  1. 安装chktex(例如sudo apt install chktex
  2. 打开 TexStudio -> 选项 -> 配置 TexStudio
  3. Show Advanced Options在左下角启用
  4. 转到Build选项卡并User Commands按下+Add
  5. 命令名称 = user0:chktex,命令可执行文件 = ./chktex %(百分号是主文件名的占位符,不带扩展名。
  6. 可选:如果你想在每次构建时运行 chktex,只需使用以下命令将命令添加到 Build & View 行中:txs:///user0

最终设置应如下所示: TexStudio 自定义 chktex 命令

  1. 然后创建运行 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
  1. 添加.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.
}
  1. 由于 chktex 的输出依赖于等宽字体来标记错误位置,我们需要将字体从 TexStudio 的消息输出切换为等宽字体。为此,请打开$HOME/.config/texstudio/texstudio.ini并在部分中[texmaker]添加一个新条目LogView\FontFamily=DejaVu Sans Mono

  2. 现在运行您的构建,您将获得 chktex 输出

相关内容