TeXStudio 无法识别外部文件中的自定义命令

TeXStudio 无法识别外部文件中的自定义命令

我想在外部 .tex 文件中将一些表格定义为命令 (MWE),因为它们有很多设置。此外部文件通过命令包含在主文档中\input{}。使用我的预定义命令没有问题。TeXStudio 能够编译主文档并提供输出。问题是,TeXStudio 无法识别我自定义表格中的\hline命令和&表格分隔符(编辑器说表格环境之外有表格命令)。此外,如果在编辑器中仅打开主文档(没有 myTemplate 文件),则无法识别我在外部文档中定义的命令\mytable{}\lb

在此处输入图片描述

有没有办法让红色突出显示消失,而不是简单地停用语法突出显示?我从这里得到了一些帮助:TeXStudio 无法识别某些命令,因为我以前也遇到过其他命令的相同问题。不过,这些命令来自我从 ctan 获得的包,因此没有自定义命令。

我不确定这个问题是否可以为您重现,但这里有一个 MWE:

\documentclass[]{scrartcl}
\input{myTemplate.tex}

\begin{document} 

\mytable{
%% \hline A & B & C & D & E \\ \hline
a & b1 \lb b2 \lb b3 & c1 \lb c2 \lb c3 & d & e \\ \hline
& & & & \\ \hline
& & & & \\ \hline   
}

\end{document}

以及 myTemplate 文件:

\usepackage{tabularx}
\usepackage{here}
\usepackage{array}
\usepackage[table]{xcolor}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}} 

\newcommand{\mytable}[1]{%
\begin{center}
    \rowcolors{1}{white}{pink}
    \begin{tabular}{| M{.2\textwidth} | M{.15\textwidth} | M{.1\textwidth} | M{.2\textwidth} | M{.2\textwidth} | M{.15\textwidth}|} \hline
    A & B & C & D & E \\ \hline
    #1
    \end{tabular}
\end{center}%
}

\newcommand{\lb}{\linebreak}

答案1

无法选择性地切换语法检查的某些部分。也无法让解析器接受参数中的表式行为。

但是,您可以定义自己的表环境:

\newenvironment{mytable}{%
    \begin{center}
        \rowcolors{1}{white}{pink}
        \begin{tabular}{| M{.2\textwidth} | M{.15\textwidth} | M{.1\textwidth} | M{.2\textwidth} | M{.2\textwidth} | M{.15\textwidth}|}     \hline
            A & B & C & D & E \\ \hline
}{\end{tabular}\end{center}}

在自定义的 .cwl 中声明该环境为表格状:

\begin{mytable}#\tabular
\end{mytable}

并在您的文档中使用它:

\begin{mytable}
%% \hline A & B & C & D & E \\ \hline
a & b1 \lb b2 \lb b3 & c1 \lb c2 \lb c3 & d & e \\ \hline
& & & & \\ \hline
& & & & \\ \hline   
\end{mytable}

答案2

我遇到了这个问题。我有三个文件:

  • MySty.sty(这里定义了一些新的命令、环境等),
  • 打印.tex
        \documentclass[12pt]{article}
        \usepackage{MyStyle.sty}

        \begin{document}
                \input{1.tex}
                \input{2.tex}
                .............
        \end{document}
  • 1.tex(这是我的自定义命令,TeXStudio 无法识别)

我刚刚改为\usepackage{MyStyle.sty}\input{MyStyle.sty}现在所有项目都成功编译,并且我的所有文件中都没有无法识别的突出显示。

相关内容