
Ich möchte einige Tabellen als Befehle (MWE) in einer externen .tex-Datei definieren, da es dafür viele Einstellungen gibt. Diese externe Datei wird durch den \input{}
Befehl in das Hauptdokument eingebunden. Die Verwendung meiner vordefinierten Befehle ist kein Problem. TeXStudio kann das Hauptdokument kompilieren und gibt auch eine Ausgabe aus. Das Problem ist, dass TeXStudio den Befehl \hline
und das &
Trennzeichen für Tabellen in meiner selbstdefinierten Tabelle nicht erkennt (der Editor sagt, dass es Tabellenbefehle außerhalb der Tabellenumgebung gibt). Wenn nur das Hauptdokument im Editor geöffnet wird (ohne die Datei myTemplate), werden die \mytable{}
und \lb
-Befehle, die ich im externen Dokument definiert habe, nicht erkannt.
Gibt es eine Möglichkeit, diese rote Hervorhebung verschwinden zu lassen, ohne einfach die Syntaxhervorhebung zu deaktivieren? Hier habe ich etwas Hilfe bekommen:TeXStudio erkennt einige Befehle nicht, weil ich das gleiche Problem mit anderen Befehlen schon einmal hatte. Allerdings stammten diese Befehle aus Paketen, die ich von ctan bekommen habe, also keine selbst definierten Befehle.
Ich bin nicht sicher, ob dieses Problem für Sie reproduzierbar ist, aber hier ist ein 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}
Und die myTemplate-Datei:
\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}
Antwort1
Es ist nicht möglich, Teile der Syntaxprüfung selektiv abzuschalten. Es ist auch nicht möglich, den Parser dazu zu bringen, tabellenartiges Verhalten in Argumenten zu akzeptieren.
Sie können jedoch Ihre eigene Tabellenumgebung definieren:
\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}}
Deklarieren Sie in einer benutzerdefinierten .cwl-Datei diese Umgebung als tabellarisch:
\begin{mytable}#\tabular
\end{mytable}
und verwenden Sie es in Ihrem Dokument:
\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}
Antwort2
Ich hatte dieses Problem. Ich habe drei Dateien:
- MySty.sty (hier sind einige neue Befehle, Umgebungen usw. definiert),
- drucken.tex
\documentclass[12pt]{article}
\usepackage{MyStyle.sty}
\begin{document}
\input{1.tex}
\input{2.tex}
.............
\end{document}
- 1.tex (hier meine benutzerdefinierten Befehle, die von TeXStudio nicht erkannt werden)
Ich habe gerade \usepackage{MyStyle.sty}
zu gewechselt \input{MyStyle.sty}
. Und jetzt werden alle Projekte erfolgreich kompiliert und es gibt keine nicht erkannten Hervorhebungen in allen meinen Dateien.