Vad orsakar odefinierad kontrollsekvens?

Jag får det här felet:

! 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}\\ ? 

vilket är här:

\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} 

Men jag förstår inte varför jag får felet. Det här är min rubrik:

\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 

Och min klassfil är standard IoP-en från här

Kan någon hjälpa mig att läsa om det här felet?

Svar

Felet är som TeX informerar också. Den hittar inte ditt \text -kommando. Felet ligger troligen i paketet iopams och bör noteras där. Det verkar som att det inte laddar ams-mattepaketet (bara dess teckensnitt) och därför måste du också inkludera det paketet.

På en sidoanteckning bör du också inkludera $ i ditt \text -kommando.

Kommentarer

  • På en sida Observera att du också bör inkludera $ i ditt \ textkommando. Var i textkommandot? Det gör $ E_j $ etc bra.
  • Förmodligen inte i \text{: E_j > E_i} _ är en matematik samt >. Du behöver \text{: $E_j > E_i$} om inte iopams gör magi för dig! 🙂
  • Jag tar faktiskt någon form av magi åt mig. Eller på grund av att \text inte känns igen så ' s ignoreras så att E_j gör korrekt.
  • Är ditt ursprungliga problem löst? Då är det bra. Jag har ' t försökt klassen iopart så kan inte säga om det ändrar definitionen av _. Det verkar bara mot normala TeX -paket att göra detta (såvida det inte är grupperat i matematiska miljöer). Glad att det fungerar! 🙂
  • Jag ' har just redigerat iopams -filen för att inkludera mattebiblioteket. Fungerar som en charm.

Svar

Makroen \text är odefinierad. Du måste ladda paketet amsmath eller åtminstone amstext.

\usepackage{amsmath} 

\text definieras i amstext, som laddas av amsmath. Ladda det senare, eftersom det erbjuder många matematiska funktioner, såsom justerade formler med flera rader och mycket mer.

Kommentarer

  • Nu återvänder det bara massor av fel om extra { eller saknas $ och det slutar aldrig att kompilera.
  • @Pureferret Använd text inom \text{...} Att ' är vad det ' s för: flyr matematikläge. Om du behöver matematiska symboler igen, skriv \text{word $\symbol$} eller ännu bättre, avsluta makroargumentet, till exempel \text{word } \symbol \text{ and more text}.
  • Jag tog precis bort \text{...} makrot och det går smidigt nu. Jag ' Jag offrar det : för enkelhets skull.
  • Anmärkning till läsarna: amsmath är inte kompatibel med iopart.

Svar

Ett liknande misstag kan också orsakas av något så enkelt som att försöka bygga fel fil (t.ex. klicka på ett PDFLaTeX-kommando medan du befinner dig i” abstrakt ”-filen, som ingår i ditt dokument). Du borde vara i huvudfilen (där du ringer och ”samlar” alla ”mindre” filer) när du bygger.

Jag hoppas att det sparar lite tid för nybörjare som jag, eftersom den här sidan var det första förslaget när du letar efter det här felet.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *