Używam emacsa w trybie AUCTeX do edycji moich dokumentów lateksowych od kilku dni, ale coś mnie naprawdę wkurza. Tak jak powinno być, za każdym razem, gdy wykonuję Cc Cc RET , kompiluje plik, a jeśli powtórzy polecenie, wyświetli dane wyjściowe w xdvi. Jest również ustawiony na tryb mini TeX-source-specials-mode , więc zamiast otwierać nowe okno w xdvi, przeładowuje tylko okno, które jest już otwarte, przenosi je na przód i wysyła mnie tam, gdzie wskaźnik był w emacsie (wyszukiwanie do przodu).
Teraz jest problem:
chociaż okno xdvi jest wysunięte na przód, nie jest skupione. Zamiast tego okna emacsa pozostają skupione (i tam trafia każde wejście klawiatury). I ciągle o tym zapominam, co prowadzi mnie do przypadkowej edycji pliku źródłowego podczas próby nawigacji w xdvi. Nie wspominając, że jestem zmuszony do Alt-Tab, aby skoncentrować xdvi i Alt-Tab dwa razy, jeśli chcę wrócić do emacsa.
Czy istnieje sposób na obejście tego problemu? Chcę tylko, aby xdvi był skoncentrowany za każdym razem, gdy uruchamiam polecenie view z emacsa.
EDYCJA: Dowiedziałem się, że mogę skupić się na oknie xdvi za pomocą polecenia wmctrl -a main (main to tytuł okna xdvi). Jak ustawić emacsa, aby automatycznie dołączał to polecenie do końca polecenia view?
Odpowiedzi:
Oto alternatywne rozwiązanie problemu (jeśli mam rację: aby mieć natychmiastowy widok nowo skompilowanego dokumentu): po prostu otwórz plik dvi w nowym buforze i ustaw go w tryb automatycznego przywracania. Teraz za każdym razem, gdy skompilujesz dokument, ten bufor powinien pokazywać zmiany bez konieczności opuszczania emacsa i jego kafelkowej czystości. Uwaga: możesz wypróbować to z pdf jako wyjściem kompilacji; przynajmniej dla mnie wydaje się, że automatyczne przywracanie jest znacznie szybsze w przypadku plików pdf.
źródło
To nie do końca działało, ponieważ moje okno emacsa ma plik tex jak to nazwa. Oznacza to, że wmctrl ustawia ostrość emacsa zamiast xdvi.
Jednak niewielka zmiana naprawiła to dla mnie. Zamiast tego dodałem następujący wiersz:
źródło
Po wielu kopaniach myślę, że znalazłem sposób, który wydaje się trochę niezręczny, więc nie krępuj się zasugerować lepszy sposób.
Domyślne polecenie widoku składa się z „xdvi”, po którym następuje kilka argumentów zdefiniowanych przez niektóre zmienne, a następnie nazwa pliku. Ostatni argument przed nazwą pliku jest zdefiniowany przez zmienną „ Tex Source Specials View Editor Flags ”, a jego wartość domyślna to: „ -editor”% cS ”(bez cudzysłowów).
Dodałem ciąg „ % d && wmctrl -a $ (echo% d | sed -e 's / .dvi // g') # ” (ponownie, bez cudzysłowów) na końcu tej zmiennej. Pamiętaj, że jest to ostatni argument w poleceniu view przed nazwą pliku.
echo %d | sed -e 's/.dvi//g'
(która jest nazwą pliku dvi bez rozszerzenia .dvi).w końcu po prostu mówi
walnij, aby zignorować to, co nastąpi później. W naszym przypadku jest to nazwa pliku, która emacs automatycznie dołącza po tym wszystkim.Aby edytować tę zmienną, użyłem menu dostosowywania emacsa dla lateksu.
źródło