TeXStudio не распознает самоопределенные команды во внешнем файле

TeXStudio не распознает самоопределенные команды во внешнем файле

Я хотел бы определить некоторые таблицы как команды (MWE) во внешнем .tex-файле, потому что для них есть много настроек. Этот внешний файл включается в основной документ командой \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 (здесь определены некоторые новые команды, среды и т. д.),
  • печать.текс
        \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}. И теперь все проекты успешно компилируются, и во всех моих файлах нет нераспознаваемой подсветки.

Связанный контент