Pregunta:
Instalé auto-complete
y también auto-complete-latex
para poder usarlo con archivos LaTeX. Debido a que en un documento utilizo un archivo externo con los comandos de preámbulo en él, Emacs reconoce solo el externo como un archivo LaTeX y el otro es reconocido como un archivo TeX simple, evitando el autocompletado. ¿Qué puedo hacer para solucionar este problema?
No uso AUCTeX.
Respuesta:
Cuando Emacs abre un archivo .tex
, ejecuta la función tex-mode
, que intenta adivinar para qué formato es el archivo e invoca el modo plain-tex-mode
o el plain-tex-mode
latex-mode
(o slitex-mode
) en consecuencia.
Si desea forzar la apertura de un archivo específico en modo LaTeX, use una variable de archivo . Coloque esta línea cerca de la parte superior de su archivo .tex
:
%% -*-latex-*-
o estas líneas cerca de la parte inferior:
%% Local Variables:
%% mode: latex
%% End:
Esto se aplica tanto al modo tex predeterminado de Emacs como a AUCTeX . Ambos usan una variable de configuración que por defecto es LaTeX para un archivo vacío ( tex-default-mode
para tex-mode, TeX-default-mode
para AUCTeX). Aparte de eso, tienen heurísticas similares pero no idénticas para adivinar entre LaTeX y TeX simple. Ambos seleccionan LaTeX si el primer comando en el archivo es un entorno o un comando de seccionamiento de LaTeX. Mire el código de tex-guess-mode
(integrado) o TeX-tex-mode
(AUCTeX) si desea conocer los detalles.
Si desea forzar que todos los archivos usen el modo LaTeX independientemente del contenido, AUCTeX le permite hacerlo fácilmente con la siguiente línea en su archivo de inicio (también puede usar la interfaz Personalizar para configurar esta variable):
;; Always use `TeX-default-mode', which defaults to `latex-mode'
(setq TeX-force-default-mode t)
Con el modo tex predeterminado de Emacs, no hay una variable similar. En su lugar, podría redefinir la función tex-guess-mode
. Para forzar sistemáticamente el modo LaTeX, puede usar
(defalias 'tex-guess-mode 'latex-mode)
Alternativamente, tanto para el modo tex como para AUCTeX, puede cambiar el modo asociado con los archivos .tex
:
(add-to-list auto-mode-alist '("\\.[tT]e[xX]\\'" . latex-mode))
Auto-complete-latex se adjunta a latex-mode-hook
(y LaTeX-mode-hook
para AUCTeX, y yatex-mode-hook
para YaTeX), por lo que si su búfer está en modo LaTeX, debería estar activo.