
我想在外部 .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(這裡定義了一些新的指令、環境等),
- 列印文字
\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}
.現在所有專案都成功編譯,並且我的所有文件中都沒有無法識別的突出顯示。