Śledzenie błędów eksportu Org LaTeX

9

Jak wyśledzić błędy zgłoszone podczas procesu eksportu? Piszę dokument organizacji i eksportuję go do pliku PDF. (Nie znam LaTeXa).

Ja otrzymuję następujący błąd: org-latex-compile: PDF file ./myfile.pdf wasn't produced: [undefined control sequence] [package error] Runaway argument. Próbując metodą prób i błędów zawęziłem ją do tej sekcji dokumentu:

* Prefix key
  * ~M-p~ (currently unassigned)
  * ~H-c~ (currently unassigned)
  * ~H-;~ (currently unassigned)

Po wielu poszukiwaniach w Internecie odkryłem, że ograniczeniem LaTeX jest to, że dosłowny tekst nie może być użyty w podtytule. LaTeX wygenerowany z powyższego fragmentu zawiera linie takie jak:

\subsubsection{\verb~M-p~ (currently unassigned)}

Zmiana podtytułów na nieuporządkowaną listę rozwiązała problem:

* Prefix key
  - ~M-p~ (currently unassigned)
  - ~H-c~ (currently unassigned)
  - ~H-;~ (currently unassigned)

ponieważ te wygenerowane linie wyglądały mniej więcej tak:

\item \verb~M-p~ (currently unassigned)

Teraz wreszcie moje pytanie: czy istnieje lepszy sposób na śledzenie, diagnozowanie i rozwiązywanie takich błędów niż moja próba i błąd plus wyszukiwanie w Internecie (powiedzmy, że spędzam kilka tygodni na nauce LaTeX) ?

Obecnie mój plik tworzy pozornie drobny PDF ... ale proces eksportu ma wydać komunikat o błędzie: Process completed with errors: [package error]. Nie mam pojęcia, czy jest to poważne, czy wpłynęło to na mój wynik PDF w sposób, którego jeszcze nie zauważyłem, czy jest to trywialne i należy je zignorować. Każda pomoc jest mile widziana.

Sue D. Nymme
źródło
6
Istnieje bufor, w którym Org rejestruje dane wyjściowe tex2pdflub dowolne inne polecenie używane do generowania pliku PDF. Przełącz, aby *Org PDF LaTeX Output*to zobaczyć. Błąd pakietu zazwyczaj oznacza, że ​​użyłeś pakietu, którego nie zainstalowałeś (brakuje Ci pliku STY).
wvxvw,
Aha! Bardzo interesujące, nie zauważyłem tego. Oczywiście istnieje błąd - nie spowodowany brakującym pakietem, ale wygenerowany przez pakiet. inputencnarzekałem, ponieważ użyłem znaku UTF, którego LaTeX najwyraźniej nie może reprezentować. Dzięki!
Sue D. Nymme,

Odpowiedzi:

8

Jak sugerowano w komentarzach @wvxvw, sprawdzenie *Org PDF LaTeX Output*bufora jest miejscem, w którym można sprawdzić błędy. Z podstawową znajomością LaTeXa, powinieneś być w stanie wyśledzić stosunkowo proste błędy takie jak te (które z mojego doświadczenia prawie zawsze pochodzą z \verbpolecenia. Wydaje się jednak, że nie będziesz w stanie bezpośrednio prześledzić błędu z powrotem do oryginalny plik Org.

GJStein
źródło
Nie ma sposobu, aby przejść bezpośrednio do obraźliwej linii w pliku .org?
becko
1

Uważam, że wiązanie makra takiego jak poniższe jest bardzo przydatne:

(local-set-key (kbd "C-c m o")
               (kbd "C-x b org SPC output RET M-< C-s fatal SPC error"))

To tylko:

  • Przełącza do bufora za pomocą ido
  • Wyszukuje ciąg „błąd krytyczny”

Oczywiście możesz zrobić to samo bardziej programowo, ale myślę, że to wystarczy do tak podstawowego użycia. Jest to również dobry przykład siły powiązań emacs i makr, szczególnie dla osób pochodzących z vima, które są przyzwyczajone do noremapwiązania stylu.

memeplex
źródło