I wrote code that should do what you want. The main idea is to set the variable 'completion-ignored-extensions to match the extensions you want to skip, but only with .tex files. This code does this.
(defadvice find-file-read-args (around find-file-read-args-limit-choices activate) "set some stuff up for controlling extensions when tab completing" (let ((completion-ignored-extensions completion-ignored-extensions) (find-file-limit-choices t)) ad-do-it)) (defadvice minibuffer-complete (around minibuffer-complete-limit-choices nil activate) "When in find-file, check for files of extension .tex, and if they're found, ignore .log .pdf .bbl .aux" (let ((add-or-remove (if (and (boundp 'find-file-limit-choices) find-file-limit-choices (save-excursion (let ((b (progn (beginning-of-line) (point))) (e (progn (end-of-line) (point)))) (directory-files (file-name-directory (buffer-substring-no-properties be)) nil "\\.tex$")))) 'add-to-list 'remove))) (mapc (lambda (e) (setq completion-ignored-extensions (funcall add-or-remove 'completion-ignored-extensions e))) '(".log" ".pdf" ".bbl" ".aux"))) ad-do-it)
Enjoy.
source share