
Me gustaría definir algunas tablas como comandos (MWE) en un archivo .tex externo, porque hay muchas configuraciones para ellas. Este archivo externo se incluye en el documento principal mediante el \input{}
comando. Usar mis comandos predefinidos no es un problema. TeXStudio puede compilar el documento principal y también proporciona un resultado. El problema es que TeXStudio no reconoce el \hline
comando y el &
separador de tablas dentro de mi tabla autodefinida (el editor dice que hay comandos de tabla fuera del entorno de tabla). Además, si solo se abre el documento principal en el editor (sin el archivo myTemplate), los comandos \mytable{}
y \lb
que definí en el documento externo no se reconocen.
¿Hay alguna manera de hacer desaparecer este resaltado en rojo sin simplemente desactivar el resaltado de sintaxis? Recibí ayuda de aquí:TeXStudio no reconoce algunos comandos, porque he tenido el mismo problema con otros comandos antes. Sin embargo, estos comandos eran de paquetes que obtuve de ctan, por lo que no hay comandos autodefinidos.
No estoy seguro de si este problema se puede reproducir, pero aquí hay un 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}
Y el archivo 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}
Respuesta1
No es posible cambiar selectivamente partes de la verificación de sintaxis. Tampoco es posible hacer que el analizador acepte un comportamiento similar a una tabla en los argumentos.
Sin embargo, podría definir su propio entorno de tabla:
\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}}
en un .cwl personalizado, declare que el entorno será tipo tabular:
\begin{mytable}#\tabular
\end{mytable}
y úsalo en tu documento:
\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}
Respuesta2
Tuve este problema. Tengo tres archivos:
- MySty.sty (aquí se definen algunos comandos, entornos, etc. nuevos),
- imprimir.tex
\documentclass[12pt]{article}
\usepackage{MyStyle.sty}
\begin{document}
\input{1.tex}
\input{2.tex}
.............
\end{document}
- 1.tex (aquí mis comandos personalizados no reconocidos por TeXStudio)
Acabo de cambiar \usepackage{MyStyle.sty}
a \input{MyStyle.sty}
. Y ahora todo el proyecto se está compilando con éxito y no hay ningún resaltado que no se reconozca en todos mis archivos.