Skip to content

Instantly share code, notes, and snippets.

@moyix
Created December 30, 2021 02:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moyix/56e650726d4a3736b645cecc851a03c6 to your computer and use it in GitHub Desktop.
Save moyix/56e650726d4a3736b645cecc851a03c6 to your computer and use it in GitHub Desktop.
help() messages from TeX82
print_err("Emergency stop"); help1(s); succumb;
--
help1("I'm broken. Please show this to someone who can fix can fix");
--
help1("The magnification ratio must be between 1 and 32768.");
--
help1("I'm forgetting what you said and using zero for this \the.");
--
help1("I'm forgetting what you said and using zero for this \the.");
--
help1("I'm going to assume that 1mu=1pt when they're mixed.");
--
help1("I dddon't go any higher than filll."); error;
--
help1("I'm going to ignore the # sign you just used."); error;
--
help1("This \read has unbalanced braces.");
--
help1("I'm ignoring this; it doesn't match any \if.");
--
help1("I was expecting to see `<', `=', or `>'. Didn't.");
--
help1("I'm ignoring this; it doesn't match any \if.");
--
help1("(See Appendix H.)"); error;
--
help1("(See Appendix H.)"); error; cur_chr←127;
--
help1("(See Appendix H.)"); error;
--
help1("Things are pretty mixed up, but I think the worst is over.");@/
--
help1("I'm changing to \insert0; box 255 is special.");
--
help1("Discretionary lists must contain only text characters.");@/
--
help1("I'm guessing that you meant to end an alignment here.");
--
help1("I'm ignoring this, since I wasn't doing a \csname.");
--
help1("I'm ignoring this misplaced \limits or \nolimits command."); error;
--
help1("I treat `x↑1↑2' essentially like `x↑1{}↑2'.");
--
help1("I treat `x↓1↓2' essentially like `x↓1{}↓2'.");
--
help1("I'm ignoring a \right that had no matching \left.");
--
help1("I'll pretend you didn't say \long or \outer or \global.");
--
help1("I'll pretend you didn't say \long or \outer here.");
--
help1("I'm going to use 0 instead of that illegal code value.");@/
--
help1("I allow only values in the range 1..32767 here.");
--
help1("I allow only nonnegative values here.");
--
if err_help_seen then help1("(That was another \errmessage.)")
--
help1("Next time say, e.g., `\show\cs'.");
--
help1("`{...\dump}' is a no-no."); succumb;
--
help2("I have just deleted some text, as you asked.")@/
("You can now delete more, or insert, or whatever.");
--
help2("Sorry, I don't know how to help in this situation.")@/
("Maybe you should try asking a human?");
--
help2("If you really absolutely need more capacity,")@/
("you can ask a wizard to enlarge me.");
--
help2("One of your earlier faux pas has wounded me deeply,")@/
("so I'm barely conscious. Please fix it and try again.");
--
help2("I can handle only one magnification ratio per job. So I've")@/
("reverted to the magnification you used earlier on this run.");@/
--
help2("A funny symbol that I can't read has just been input.")@/
("Continue, and I'll forget that it ever happened.");@/
--
help2("The control sequence marked <to be read again> should")@/
("not appear between \csname and \endcsname.");
--
help2("The numeric code for a character must be between 0 and 127.")@/
("I changed this one to zero."); int_error(cur_val); cur_val←0;
--
help2("Boxes, counts, dimens, and skips must be between 0 and 255.")@/
("I changed this one to zero."); int_error(cur_val); cur_val←0;
--
help2("Since I expected to read a number between 0 and 15,")@/
("I changed this one to zero."); int_error(cur_val); cur_val←0;
--
help2("A character or register number must be between 0 and 255.")@/
("I changed this one to zero."); int_error(cur_val); cur_val←0;
--
help2("A numeric math code must be between 0 and 32767.")@/
("I changed this one to zero."); int_error(cur_val); cur_val←0;
--
help2("A numeric delimiter code must be between 0 and 2↑{27}-1.")@/
("I changed this one to zero."); int_error(cur_val); cur_val←0;
--
help2("A one-character control sequence belongs after a ` mark.")@/
("So I'm essentially inserting \0 here.");
--
help2("I can only go up to 2147483647='17777777777=""7FFFFFFF,")@/
("so I'm using that number instead of yours.");
--
help2("I can't work with sizes bigger than about 19 feet.")@/
("Continue and I'll use the largest value I can.");@/
--
help2("Where was the left brace? You said something like `\def\a}',")@/
("which I'm going to interpret as `\def\a{}'."); error; goto found;
--
help2("I've inserted the digit you should have used after the #.")@/
("Type `1' to delete what you did use."); back_error;
--
help2("I was looking for a control sequence whose")@/
("current meaning has been defined by \font.");
--
help2("To increase the number of font parameters, you must")@/
("use \texinfo immediately after the \font is loaded.");
--
help2("The page just created is more than 18 feet tall or")@/
("more than 18 feet wide, so I suspect something went wrong.");
--
help2("Hyphenation exceptions must contain only letters")@/
("and hyphens. But continue; I'll forgive and forget.");
--
help2("Letters in \hyphenation words must have \lccode>0.")@/
("Proceed; I'll ignore the character I just read.");
--
help2("The box you are trying to split is an \hbox.")@/
("I can't split such a box, so I'll leave it alone.");
--
help2("You shouldn't use \box255 except in \output routines.")@/
("Proceed, and I'll discard its present contents.");
--
help2("Your sneaky output routine has fewer real {'s than }'s.")@/
("I can't handle that very well; good luck."); error;
--
help2("I've inserted a begin-math/end-math symbol since I think")@/
("you left one out. Proceed, with fingers crossed."); ins_error;
--
help2("You've closed more groups than you opened.")@/
("Such booboos are generally harmless, so keep going."); error;
--
help2("Sorry...I'm usually unable to take things from the current")@/
("page. This \lastbox will therefore be void."); error;
--
help2("I'm working on `\vsplit<box number> to <dimen>';")@/
("will look for the <dimen> next."); error;
--
help2("To put a horizontal rule in an hbox or an alignment,")@/
("you should use \leaders or \hrulefill (see The TeXbook).");
--
help2("Sorry...I'm usually unable to take things from the current")@/
("page. Try `I\vskip\minusthe\lastskip' instead."); error;
--
help2("Sorry, Pandora. (You sneaky devil.)")@/
("I refuse to unbox an \hbox in vertical mode or vice versa.");@/
--
help2("Sorry: The third part of a discretionary break must be")@/
("empty, in math formulas. I had to delete your third part.");
--
help2("Wow---I never thought anybody would tweak me here.")@/
("You can't seriously need such a huge discretionary list?");
--
help2("I expect to see \noalign only after the \cr of")@/
("an alignment. Proceed, and I'll ignore this case."); error;
--
help2("I expect to see \omit only after tab marks or the \cr of")@/
("an alignment. Proceed, and I'll ignore this case."); error;
--
help2("I'm changing \accent to \mathaccent here; wish me luck.")@/
("(Accents are not the same in formulas as they are in text.)");
--
help2("The `$' that I just saw supposedly matches a previous `$$'.")@/
("So I shall assume that you typed `$$' both times.");
--
help2("Displays can use special alignments (like \eqalignno)")@/
("only if nothing but the alignment itself is between $$'s.");
--
help2("You should have said `\read<number> to \cs'.")@/
("I'm going to look for the \cs now."); error;
--
help2("I can't carry out that multiplication or division,")@/
("since the result is out of range.");
--
help2("I didn't do the arithmetic because you have to tell")@/
("me by what; e.g., `\advcount 0 by 1'.");
--
help2("I can only handle fonts at positive sizes that are")@/
("less than 2048pt, so I've changed what you said to 10pt.");
--
help2("You should say, e.g., `\font\ffn=fontfilename'.")@/
("(I'm going to ignore the \font command you just gave.)");
--
help2("On this page there's a \write with fewer real {'s than }'s.")@/
("I can't handle that very well; good luck."); error;
|help3("This is the first line of my offer to help.")|\cr
|("This is the second line. I'm trying to")|\cr
|("explain the best way for you to proceed.");|\cr
--
help3("You rang?")@/
("Try to insert some instructions for me (e.g.,`I\showlists'),")@/
("unless you just want to quit by typing `X'.");
--
help3("A forbidden control sequence occurred in skipped text.")@/
("This kind of error happens when you say `\if...' and forget")@/
("the matching `\fi'. I've inserted a `\fi'; this might work.");
--
help3("I suspect you've forgotten a `}', causing me to apply this")@/
("control sequence to too much text. How can we recover?")@/
("My plan is to forget the whole thing and hope for the best.");
--
help3("A number should have been here; I inserted `0'.")@/
("(If you can't figure out why I needed to see a number,")@/
("look up `weird error' in the index to The TeXbook.)");
--
help3("You meant to type ## instead of #, right?")@/
("Or maybe a } was forgotten somewhere earlier, and things")@/
("are all screwed up? I'm going to assume that you meant ##.");
--
help3("Displays can use special alignments (like \eqalignno)")@/
("only if nothing but the alignment itself is between $$'s.")@/
("So I've deleted the formulas that preceded this alignment.");
--
help3("There should be exactly one # between &'s, when an")@/
("\halign or \valign is being set up. In this case you had")@/
("none, so I've put one in; maybe that will work.");
--
help3("There should be exactly one # between &'s, when an")@/
("\halign or \valign is being set up. In this case you had")@/
("more than one, so I'm ignoring all but the first.");
--
help3("You have given more \span or & marks than there were")@/
("in the preamble to the \halign or \valign now in progress.")@/
("So I'll assume that you meant to type \cr instead.");
--
help3("I've concluded that your \output is awry; it never does a")@/
("\shipout, so I'm shipping \box255 out myself. Next time")@/
("increase \maxdeadcycles if you want me to be more patient!"); error;
--
help3("Your \output commands should empty \box255,")@/
("e.g., by saying `\shipout\box255'.")@/
("Proceed; I'll discard its present contents.");
--
help3("You should say `\leaders <box or rule><hskip or vskip>'.")@/
("I found the <box or rule>, but there's no suitable")@/
("<hskip or vskip>, so I'm ignoring these leaders."); error;
--
help3("I was expecting to see \hbox or \vbox or \copy or \box or")@/
("something like that. So you might find something missing in")@/
("your output. But keep trying; you can fix this later."); back_error;
--
help3("Please don't say \count or \dimen or \skip in the midst of")@/
("a paragraph or formula. I'm going to assume that you")@/
("meant to say `\the\count' or `\the\dimen' or `\the\skip'.");
--
help3("I've put in what seems to be necessary to fix")@/
("the current column of the current alignment.")@/
("Try to go on, since this might almost work."); ins_error;
--
help3("I'm ignoring this fraction specification, since I don't")@/
("know whether a construction like `x \over y \over z'")@/
("means `{x \over y} \over z' or `x \over {y \over z}'.");
--
help3("Sorry, but I can't typeset math unless \textfont 2")@/
("and \scriptfont 2 and \scriptscriptfont 2 have all")@/
("the texinfo needed in math symbol fonts.");
--
help3("Sorry, but I can't typeset math unless \textfont 3")@/
("and \scriptfont 3 and \scriptscriptfont 3 have all")@/
("the texinfo needed in math extension fonts.");
--
help3("This isn't an error message; I'm just \showing something.")
@t\4\4@>@/
("Type `I\show...' to show more (e.g., \show\cs,")@/
help4("Sorry, I already gave what help I could...")@/
("Maybe you should try asking a human?")@/
("An error might have occurred before I noticed any problems.")@/
("``If all else fails, read the instructions.''");
--
help4("I suspect you have forgotten a `}', causing me")@/
("to read past where you wanted me to stop.")@/
("I'll try to recover; but if the error is serious,")@/
("you'd better type `E' or `X' now and fix your file.");@/
--
help4("If you say, e.g., `\def\a1{...}', then you must always")@/
("put `1' after `\a', since control sequence names are")@/
("made up of letters only. The macro here has not been")@/
("followed by the required stuff, so I'm ignoring it.");
--
help4("A left brace was mandatory here, so I've put one in.")@/
("You might want to delete and/or insert some corrections")@/
("so that I will find a matching right brace soon.")@/
("(If you're confused by all this, try typing `I}' now.)");
--
help4("You can say \the\spacefactor only in horizontal mode,")@/
("and \the\prevdepth only in vertical mode; and")@/
("neither of these is meaningful inside \write. So")@/
("I'm forgetting what you said and using zero for this \the.");
--
help4("The unit of measurement in math glue must be mu.")@/
("To recover gracefully from this error, it's best to")@/
("delete the erroneous units; e.g., type `2' to delete")@/
("two letters. (See Chapter 27 of The TeXbook.)");
--
help4("I'm afraid I won't be able to make use of this font,")@/
("because my memory for character-size data is too small.")@/
("If you're really stuck, ask a wizard to enlarge me.")@/
("Or maybe try `I\font<same font id>=<name of loaded font>'.");
--
help4("Somewhere in the math formula just ended, you used the")@/
("stated character from an undefined font family. For example,")@/
("plain TeX doesn't allow \it or \sl in subscripts. Proceed,")@/
("and I'll try to forget that I needed that character.");
--
help4("The box you are \vsplitting contains some infinitely")@/
("shrinkable glue, e.g., `\vss' or `\vskip 0pt minus 1fil'.")@/
("Such glue doesn't belong there; but you can safely proceed,")@/
("since the offensive shrinkability has been made finite.");
--
help4("The page about to be output contains some infinitely")@/
("shrinkable glue, e.g., `\vss' or `\vskip 0pt minus 1fil'.")@/
("Such glue doesn't belong there; but you can safely proceed,")@/
("since ↓QQJA←→MK]g%mJAg!eS]W¬ESYSQrAQCLAEKK8A[CI∀AMS]%iJ\D$v~∀∩%Kee←Hv~∀∩%e?]K\1gaK QbRv↓gQeS9V1←e⊃KdQd%?]←e5CXvA⊃KYKi∀1OYk∀1eKL!bRv~(∩∪OYUJ1aiHQ`S?Hv~∀∩%K]Hv4∀∪K]⊂v~∃a¬OJ1i=iCY?ACOJ1Q←iCX-aCOJaIKai WoSIQPQbRlAaCO∀1IKaQQ>`~(~∃AyπQK
--
help4("Sorry, but I'm not programmed to handle this case;")@/
("I'll just pretend that you didn't ask for it.")@/
("If you're in the wrong mode, you might be able to")@/
("return to the right one by typing `I}' or `I$' or `I\par'.");@/
--
else help4("This error message was generated by an \errmessage")@/
("command, so I can't give any explicit help.")@/
("Pretend that you're Hercule Poirot, examine all clues,")@/
("and deduce the truth by order and method.");
help5("The control sequence at the end of the top line")@/
("of your error message was never \def'ed. If you have")@/
("misspelled it (e.g., `\hobx'), type `I' and the correct")@/
("spelling (e.g., `I\hbox'). Otherwise just continue,")@/
("and I'll forget about whatever was undefined.");
--
help5("I wasn't able to read the size data for this font,")@/
("so I will ignore the font specification.")@/
("[Wizards can fix TFM files using TFtoPL/PLtoTF.]")@/
("You might try inserting a different font spec;")@/
("e.g., type `I\font<same font id>=<substitute font name>'.");
--
help5("The paragraph just ended includes some glue that has")@/
("infinite shrinkability, e.g., `\hskip 0pt minus 1fil'.")@/
("Such glue doesn't belong there---it allows a paragraph")@/
("of any length to fit on one line. But it's safe to proceed,")@/
("since the offensive shrinkability has been made finite.");
--
help5("I've inserted something that you may have forgotten.")@/
("(See the <inserted text> above.)")@/
("With luck, this will get me unwedged. But if you")@/
("really didn't forget anything, try typing `2' now; then")@/
("my insertion and my current dilemma will both disappear.");
--
help5("I've deleted a group-closing symbol because it seems to be")@/
("spurious, as in `$x}$'. But perhaps the } is legitimate and")@/
("you forgot something else, as in `\hbox{$x}'. In such cases")@/
("the way to recover is to insert both the forgotten and the")@/
("deleted material, e.g., by typing `I$}'."); error;
--
else begin help5("I can't figure out why you would want to use a tab mark")@/
("or \cr or \span just now. If something like a right brace")@/
("up above has ended a previous alignment prematurely,")@/
("you're probably due for more error messages, and you")@/
("might try typing `S' now just to see what is salvageable.");
--
help5("Please don't say `\def cs{...}', say `\def\cs{...}'.")@/
("I've inserted an inaccessible control sequence so that your")@/
("definition will be completed without mixing me up too badly.")@/
("You can recover graciously from this error, if you're")@/
("careful; see exercise 27.xx in The TeXbook.");
--
help5("This isn't an error message; I'm just \showing something.")
@t\4\4@>@/
("Type `I\show...' to show more (e.g., \show\cs,")@/
("\showthe\count10, \showbox255, \showlists).")@/
("And type `I\tracingonline=1\show...' to show boxes and")@/
help6("I've run across a `}' that doesn't seem to match anything.")@/
("For example, `\def\a#1{...}' and `\a}' would produce")@/
("this error. If you simply proceed now, the `\par' that")@/
("I've just inserted will cause me to report a runaway")@/
("argument that might be the root of the problem. But if")@/
("your `}' was spurious, just type `2' and it will go away.");
--
help6("Dimensions can be in units of em, ex, dm, vu, wd, dp, ht,")@/
("pt, pc, in, cm, mm, bp, dd, cc, or sp; yours is a new one!")@/
("I'll assume that you meant to say pt, for printers' points.")@/
("To recover gracefully from this error, it's best to")@/
("delete the erroneous units; e.g., type `2' to delete")@/
("two letters. (See Chapter 27 of The TeXbook.)");
--
begin help6("I can't figure out why you would want to use a tab mark")@/
("here. If you just want an ampersand, the remedy is")@/
("simple: Just type `I\&' now. But if some right brace")@/
("up above has ended a previous alignment prematurely,")@/
("you're probably due for more error messages, and you")@/
("might try typing `S' now just to see what is salvageable.");
--
help6("I was expecting to see something like `(' or `\{' or")@/
("`\}' here. If you typed, e.g., `{' instead of `\{', you")@/
("should probably delete the `{' by typing `1' now, so that")@/
("braces don't get unbalanced. Otherwise just proceed.")@/
("Acceptable delimiters are characters whose \delcode is")@/
("nonnegative, or you can use `\delimiter <delimiter code>'.");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment