Além da resposta específica de Andrew Swann para arquivos TeX, a maneira mais geral de definir o modo por extensão de arquivo é colocar uma nova entrada (ou adaptar a existente) na auto-mode-alist
.
Do manual :
Essa variável contém uma lista de associação de padrões de nome de arquivo (expressões regulares) e comandos de modo principal correspondentes. Geralmente, os padrões de nome de arquivo testam sufixos, como '.el' e '.c', mas esse não precisa ser o caso. Parece um elemento comum do alist (regexp. Mode-function).
Por exemplo,
(("\\`/tmp/fol/" . text-mode)
("\\.texinfo\\'" . texinfo-mode)
("\\.texi\\'" . texinfo-mode)
("\\.el\\'" . emacs-lisp-mode)
("\\.c\\'" . c-mode)
("\\.h\\'" . c-mode)
...)
Então, normalmente, seria feita uma alteração permanente na lista com algo como:
(add-to-list 'auto-mode-alist '("\\.tex\\'" . latex-mode))
Observe as barras invertidas, que escapam a caracteres especiais.
O alist funciona porque o primeiro valor correspondente na lista será usado. Portanto, você pode adicionar à frente da lista, independentemente do conteúdo original desse tipo de arquivo, e seu novo valor será usado.