@Section @Title { Errors } @Tag { grerrors } @Begin @PP Lout normally produces output that will print without mishap on any PostScript device. However, some of the options of @Code "@Graph" and all of the data and labels are passed through Lout without checking. Any errors in this material will not be detected until the file is printed. @PP The most likely errors are @I { rangecheck errors}, for example if an attempt is made to divide by zero or take the square root of a negative number, and @I { undefined errors }, arising from symbols misspelt, use of @Code "x" outside an {@Code "xloop"}, etc. Less commonly, everything may be correct but the graph is too large in some way: too much data, expression too deeply nested, and so on. @PP When an error is detected, @Code "@Graph" arranges for the offending page to be printed up to the point where the error occurred, with a message nearby describing the error. Printing of the document is then aborted. The problem is usually easy to locate since it lies in whatever should have been printed next. @PP If you see @Code VMerror in an error message, it means that the printer has run out of memory. All the data is stored in the printer while the graph is being printed, and it remains there until the end of the current page, when it is discarded and all memory consumed by the graph is reclaimed. If you do run out of memory, one option is to try @ID @Code { "@Graph" " save { yes }" "..." } This causes the memory used by the graph to be reclaimed as soon as the graph is printed, which might well solve your problem if you have several graphs on one page. However, if the graph is nested inside some other major Lout package, notably {@Code "@Diag"}, this option could cause PostScript errors in that package. @End @Section