Wat veroorzaakt een ongedefinieerde controlesequentie?

Ik “krijg deze foutmelding:

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

die hieruit komt:

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

Maar ik begrijp niet waarom ik de foutmelding krijg. Dit is mijn header:

\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 

En mijn klassenbestand is het standaard IoP-bestand van hier

Kan iemand me helpen deze fout te lezen?

Antwoord

De fout is, zoals TeX informeert ook. Het kan uw \text commando niet vinden. De fout zit waarschijnlijk in pakket iopams en zou daar opgemerkt moeten worden. Het lijkt erop dat het het ams math-pakket (alleen de lettertypen) niet laadt en dus moet je dat pakket ook expliciet opnemen.

Even terzijde: je moet ook in uw \text commando.

Reacties

  • Aan een kant merk op dat u ook $ in uw \ text-commando moet opnemen. Waar in het tekst-commando? Het maakt $ E_j $ enz. Prima.
  • Waarschijnlijk niet in \text{: E_j > E_i} de _ is zowel een mathchar als >. Je hebt \text{: $E_j > E_i$} nodig, tenzij iopams magie voor je doet! 🙂
  • Ik geloof in feite een of andere vorm van magie voor mij. Of, omdat \text niet wordt herkend, het ' wordt genegeerd, dus E_j wordt weergegeven correct.
  • Dus is uw oorspronkelijke probleem opgelost? Dan is het prima. Ik heb ' t de klasse iopart geprobeerd, dus ik kan niet zeggen of het de definitie van _. Het lijkt gewoon tegen normale TeX pakketten om dit te doen (tenzij het gegroepeerd is in de wiskundige omgevingen). Blij dat het werkt! 🙂
  • Ik ' heb zojuist het iopams -bestand bewerkt om de wiskundebibliotheek op te nemen. Werkt perfect.

Antwoord

De macro \text is niet gedefinieerd. U moet het amsmath -pakket of ten minste amstext laden.

\usepackage{amsmath} 

\text is gedefinieerd in amstext, die wordt geladen door amsmath. Laad het laatste, want het biedt veel wiskundige functionaliteit, zoals uitgelijnde formules met meerdere regels en nog veel meer.

Opmerkingen

  • Nu komt het gewoon terug veel fouten over extra { of ontbrekende $ en het compileren wordt nooit voltooid.
  • @Pureferret Gebruik tekst binnen \text{...} Dat ' is waarvoor het ' s is: ontsnappen aan de wiskundige modus. Als je weer wiskundige symbolen nodig hebt, schrijf dan \text{word $\symbol$} of nog beter, beëindig het macro-argument, zoals \text{word } \symbol \text{ and more text}.
  • Ik heb zojuist de macro \text{...} verwijderd en deze werkt nu probleemloos. Ik ' zal dat : voor de eenvoud opofferen.
  • Opmerking voor lezers: amsmath is niet compatibel met iopart.

Antwoord

Een soortgelijke fout kan ook worden veroorzaakt door zoiets eenvoudigs als het proberen om het verkeerde bestand te maken (bijv. klikken op een PDFLaTeX-commando terwijl u zich in het” abstracte “bestand bevindt, dat deel uitmaakt van uw document). Je zou in je hoofdbestand moeten staan (waar je alle “kleinere” bestanden oproept en “verzamelt” wanneer je “aan het bouwen bent.

Ik hoop dat dit wat tijd bespaart voor nieuwkomers zoals ik, aangezien deze pagina was de eerste suggestie bij het zoeken naar deze fout.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *