Co powoduje niezdefiniowaną sekwencję sterowania?

Otrzymuję ten błąd:

! Undefined control sequence. l.64 ...p(- \frac{E_j - E_i}{k_B T}) & \quad \text {: E_j > E_i}\\ ? ! Undefined control sequence. l.65 1 & \quad \text {: E_j<E_i}\\ ? 

, który pochodzi z tego:

\begin{equation}\label{eq:hop} w_{i,j}=w_0 exp(-2 \gamma R_{i,j})\left\{ \begin{array}{l l} exp(- \frac{E_j - E_i}{k_B T}) & \quad \text{: E_j > E_i}\\ 1 & \quad \text{: E_j<E_i}\\ \end{array} \right. \end{equation} 

Ale nie rozumiem, dlaczego pojawia się błąd. To jest mój nagłówek:

\documentclass[11pt]{iopart} %\newcommand{\gguide}{{\it Preparing graphics for IOP journals}} %Uncomment next line if AMS fonts required \usepackage{iopams} \usepackage{graphicx, wrapfig} \usepackage{fixltx2e} \graphicspath{{images/}} \DeclareGraphicsExtensions{.pdf,.png,.jpg,.gif} \makeatletter \g@addto@macro\@floatboxreset\centering %\def\@cite#1{\textsuperscript{[#1]}} \makeatother 

A mój plik klasy to standardowy plik IoP z tutaj

Czy ktoś może mi pomóc w odczytaniu tego błędu?

Odpowiedź

Błąd polega na tym, że TeX również informuje. Nie może znaleźć Twojego polecenia \text. Błąd prawdopodobnie znajduje się w pakiecie iopams i powinien zostać tam zauważony. Wygląda na to, że nie ładuje pakietu matematycznego ams (tylko jego czcionki), więc musisz wyraźnie dołączyć również ten pakiet.

Na marginesie, powinieneś również dołączyć $ za pomocą polecenia \text.

Komentarze

  • Z boku zwróć uwagę, że powinieneś również dołączyć znak $ do swojego polecenia \ text. Gdzie w poleceniu tekstowym? Renderuje poprawnie $ E_j $ etc.
  • Prawdopodobnie nie w \text{: E_j > E_i} _ jest również znakiem matematycznym, podobnie jak >. Potrzebujesz \text{: $E_j > E_i$}, chyba że iopams robi dla ciebie magię! 🙂
  • W rzeczywistości wykorzystuję dla siebie jakąś formę magii. Lub, ponieważ \text nie jest rozpoznawany, ' jest ignorowany, więc E_j renderuje poprawnie.
  • Czy Twój pierwotny problem został rozwiązany? Wtedy jest w porządku. Nie wypróbowałem ' klasy iopart, więc nie mogę powiedzieć, czy zmieni to definicję _. Po prostu wydaje się, że to robi przeciwko normalnym pakietom TeX (chyba że jest zgrupowany w środowiskach matematycznych). Cieszę się, że działa! 🙂
  • Ja ' właśnie dokonałem edycji pliku iopams w celu dołączenia biblioteki matematycznej. Działa jak urok.

Odpowiedź

Makro \text jest niezdefiniowana. Musisz załadować pakiet amsmath lub co najmniej amstext.

\usepackage{amsmath} 

\text jest zdefiniowany w amstext, który jest ładowany przez amsmath. Załaduj to drugie, ponieważ oferuje wiele funkcji matematycznych, takich jak wyrównane formuły wielowierszowe i wiele więcej.

Komentarze

  • Teraz po prostu zwraca wiele błędów dotyczących dodatkowego { lub brakującego $ i nigdy nie kończy się kompilacja.
  • @Pureferret Użyj tekstu w \text{...} To ' jest tym, co ' w przypadku: ucieczki z trybu matematycznego. Jeśli potrzebujesz symboli matematycznych ponownie, napisz \text{word $\symbol$} lub nawet lepiej zakończ argument makra, na przykład \text{word } \symbol \text{ and more text}.
  • Właśnie usunąłem makro \text{...} i teraz działa ono płynnie. ' Poświęcę to : ze względu na prostotę.
  • Uwaga dla czytelników: amsmath nie jest zgodny z iopart.

Odpowiedź

Podobny błąd może być również spowodowany czymś tak prostym, jak próba zbudowania niewłaściwego pliku (np. kliknięcie polecenia PDFLaTeX w pliku” abstrakcyjnym „, który jest częścią twojego dokumentu). Powinieneś być w swoim głównym pliku (w którym dzwonisz i „gromadzisz” wszystkie „mniejsze” pliki) podczas „budowania”.

Mam nadzieję, że zaoszczędzi to trochę czasu początkującym użytkownikom, takim jak ja, ponieważ ta strona była pierwsza sugestia podczas szukania tego błędu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *