]>
Commit | Line | Data |
---|---|---|
1 | ///////////////////////////////////////////////////////////////////////////// | |
2 | // Name: tex2any.h | |
3 | // Purpose: Latex conversion header | |
4 | // Author: Julian Smart | |
5 | // Modified by: | |
6 | // Created: 7.9.93 | |
7 | // RCS-ID: $Id$ | |
8 | // Copyright: (c) Julian Smart | |
9 | // Licence: wxWindows licence | |
10 | ///////////////////////////////////////////////////////////////////////////// | |
11 | ||
12 | #include <stdio.h> | |
13 | #include "wx/wx.h" | |
14 | #include "wx/utils.h" | |
15 | #include "wx/list.h" | |
16 | #include "wx/hash.h" | |
17 | #include "wxhlpblk.h" | |
18 | ||
19 | /* | |
20 | * Conversion modes | |
21 | * | |
22 | */ | |
23 | ||
24 | #define TEX_RTF 1 | |
25 | #define TEX_XLP 2 | |
26 | #define TEX_HTML 3 | |
27 | ||
28 | /* | |
29 | * We have a list of macro definitions which we must define | |
30 | * in advance to enable the parsing to recognize macros. | |
31 | */ | |
32 | ||
33 | #define FORBID_OK 0 | |
34 | #define FORBID_WARN 1 | |
35 | #define FORBID_ABSOLUTELY 2 | |
36 | ||
37 | ||
38 | #ifdef __WXMSW__ | |
39 | const int MAX_LINE_BUFFER_SIZE = 600; | |
40 | #else | |
41 | const int MAX_LINE_BUFFER_SIZE = 11000; | |
42 | #endif | |
43 | ||
44 | class TexMacroDef: public wxObject | |
45 | { | |
46 | public: | |
47 | int no_args; | |
48 | char *name; | |
49 | bool ignore; | |
50 | int forbidden; | |
51 | int macroId; | |
52 | ||
53 | TexMacroDef(int the_id, char *the_name, int n, bool ig, bool forbidLevel = FORBID_OK); | |
54 | ~TexMacroDef(void); | |
55 | }; | |
56 | ||
57 | #define CHUNK_TYPE_MACRO 1 | |
58 | #define CHUNK_TYPE_ARG 2 | |
59 | #define CHUNK_TYPE_STRING 3 | |
60 | ||
61 | /* | |
62 | We have nested lists to represent the Tex document. | |
63 | Each element of a list of chunks can be one of: | |
64 | - a plain string | |
65 | - a macro with/without arguments. Arguments are lists of TexChunks. | |
66 | ||
67 | Example (\toplevel is implicit but made explicit here): | |
68 | ||
69 | AddMacroDef(ltMYMAT, "mymat", 2); | |
70 | ||
71 | \toplevel{The cat sat on the \mymat{very coarse and {\it cheap}}{mat}}. | |
72 | ||
73 | Parsed as: | |
74 | ||
75 | TexChunk: type = macro, name = toplevel, no_args = 1 | |
76 | Children: | |
77 | ||
78 | TexChunk: type = argument | |
79 | ||
80 | Children: | |
81 | TexChunk: type = string, value = "The cat sat on the " | |
82 | TexChunk: type = macro, name = mymat, no_args = 2 | |
83 | ||
84 | Children: | |
85 | TexChunk: type = argument | |
86 | ||
87 | Children: | |
88 | TexChunk: type = string, value = "very coarse and " | |
89 | TexChunk: type = macro, name = it, no_args = 1 | |
90 | ||
91 | Children: | |
92 | TexChunk: type = argument | |
93 | ||
94 | Children: | |
95 | TexChunk: type = string, value = "cheap" | |
96 | ||
97 | TexChunk: type = argument | |
98 | ||
99 | Children: | |
100 | TexChunk: type = string, value = mat | |
101 | */ | |
102 | ||
103 | class TexChunk | |
104 | { | |
105 | public: | |
106 | int type; | |
107 | // char *name; | |
108 | TexMacroDef *def; | |
109 | char *value; | |
110 | int macroId; | |
111 | int no_args; | |
112 | int argn; | |
113 | bool optional; // Is an optional argument | |
114 | ||
115 | wxList children; | |
116 | TexChunk(int the_type, TexMacroDef *the_def = NULL); | |
117 | TexChunk(TexChunk& toCopy); | |
118 | virtual ~TexChunk(void); | |
119 | }; | |
120 | ||
121 | // Represents a topic, used for generating a table of contents file (.cnt). | |
122 | // Also for storing keywords found in a topic, a list of which is then inserted | |
123 | // into the topic in the next pass. | |
124 | class TexTopic: public wxObject | |
125 | { | |
126 | public: | |
127 | // This flag is set to indicate that the topic has children. | |
128 | // If this is the case, we know to insert a 'book' icon at this level, | |
129 | // not just a 'page' icon. We don't want to have to open a book only | |
130 | // to find there's only one page in it. We might force a book to be used if | |
131 | // a top-level topic has no children (?) | |
132 | bool hasChildren; | |
133 | char *filename; | |
134 | wxStringList *keywords; | |
135 | TexTopic(char *f = NULL); | |
136 | ~TexTopic(void); | |
137 | }; | |
138 | extern wxHashTable TopicTable; | |
139 | void AddKeyWordForTopic(char *topic, char *entry, char *filename = NULL); | |
140 | void ClearKeyWordTable(void); | |
141 | ||
142 | extern TexChunk *TopLevel; | |
143 | extern wxHashTable MacroDefs; | |
144 | extern wxStringList IgnorableInputFiles; // Ignorable \input files, e.g. psbox.tex | |
145 | ||
146 | bool read_a_line(char *buf); | |
147 | bool TexLoadFile(char *filename); | |
148 | int ParseArg(TexChunk *thisArg, wxList& children, char *buffer, int pos, | |
149 | char *environment = NULL, bool parseArgToBrace = TRUE, TexChunk *customMacroArgs = NULL); | |
150 | int ParseMacroBody(char *macro_name, TexChunk *parent, int no_args, | |
151 | char *buffer, int pos, char *environment = NULL, bool parseArgToBrace = TRUE, TexChunk *customMacroArgs = NULL); | |
152 | void TraverseDocument(void); | |
153 | void TraverseFromChunk(TexChunk *chunk, wxNode *thisNode = NULL, bool childrenOnly = FALSE); | |
154 | #define TraverseChildrenFromChunk(arg) TraverseFromChunk(arg, NULL, TRUE) | |
155 | void SetCurrentOutput(FILE *fd); | |
156 | void SetCurrentOutputs(FILE *fd1, FILE *fd2); | |
157 | extern FILE *CurrentOutput1; | |
158 | extern FILE *CurrentOutput2; | |
159 | void AddMacroDef(int the_id, char *name, int n, bool ignore = FALSE, bool forbidden = FALSE); | |
160 | void TexInitialize(int bufSize); | |
161 | void TexCleanUp(void); | |
162 | void TexOutput(char *s, bool ordinaryText = FALSE); | |
163 | char *GetArgData(TexChunk *chunk); | |
164 | char *GetArgData(void); // Get the string for the current argument | |
165 | int GetNoArgs(void); // Get the number of arguments for the current macro | |
166 | TexChunk *GetArgChunk(void); // Get the chunk for the current argument | |
167 | TexChunk *GetTopLevelChunk(void); // Get the chunk for the top level | |
168 | TexChunk *GetNextChunk(void); // Look ahead to the next chunk | |
169 | bool IsArgOptional(void); // Is this argument an optional argument? | |
170 | void DefineDefaultMacros(void); // Optional set of default macros | |
171 | int GetCurrentColumn(void); // number of characters on current line | |
172 | char *ConvertCase(char *s); // Convert case, according to upperCaseNames setting. | |
173 | extern wxPathList TexPathList; // Path list, can be used for file searching. | |
174 | ||
175 | // Define a variable value from the .ini file | |
176 | char *RegisterSetting(char *settingName, char *settingValue, bool interactive = TRUE); | |
177 | ||
178 | // Major document styles | |
179 | #define LATEX_REPORT 1 | |
180 | #define LATEX_ARTICLE 2 | |
181 | #define LATEX_LETTER 3 | |
182 | #define LATEX_BOOK 4 | |
183 | #define LATEX_SLIDES 5 | |
184 | ||
185 | extern TexChunk *DocumentTitle; | |
186 | extern TexChunk *DocumentAuthor; | |
187 | extern TexChunk *DocumentDate; | |
188 | extern int DocumentStyle; | |
189 | extern int MinorDocumentStyle; | |
190 | extern char *BibliographyStyleString; | |
191 | extern char *DocumentStyleString; | |
192 | extern char *MinorDocumentStyleString; | |
193 | ||
194 | extern int normalFont; | |
195 | extern int smallFont; | |
196 | extern int tinyFont; | |
197 | extern int largeFont1; | |
198 | extern int LargeFont2; | |
199 | extern int LARGEFont3; | |
200 | extern int hugeFont1; | |
201 | extern int HugeFont2; | |
202 | extern int HUGEFont3; | |
203 | ||
204 | /* | |
205 | * USER-ADJUSTABLE SETTINGS | |
206 | * | |
207 | */ | |
208 | ||
209 | // Section font sizes | |
210 | extern int chapterFont; | |
211 | extern int sectionFont; | |
212 | extern int subsectionFont; | |
213 | extern int titleFont; | |
214 | extern int authorFont; | |
215 | extern bool winHelp; // Output in Windows Help format if TRUE, linear otherwise | |
216 | extern bool isInteractive; | |
217 | extern bool runTwice; | |
218 | extern int convertMode; | |
219 | extern bool stopRunning; | |
220 | extern int mirrorMargins; | |
221 | extern bool headerRule; | |
222 | extern bool footerRule; | |
223 | extern int labelIndentTab; // From left indent to item label (points) | |
224 | extern int itemIndentTab; // From left indent to item (points) | |
225 | extern bool useUpButton; | |
226 | extern int htmlBrowseButtons; | |
227 | extern bool useHeadingStyles; // Insert \s1, s2 etc. | |
228 | extern bool useWord; // Insert Word table of contents, etc. etc. | |
229 | extern bool indexSubsections; // put subsections in index | |
230 | extern bool compatibilityMode; | |
231 | extern bool generateHPJ; // Generate WinHelp HPJ file | |
232 | extern char *winHelpTitle; // Title for Windows Help file | |
233 | extern int defaultTableColumnWidth; | |
234 | extern char *bitmapMethod; | |
235 | extern bool truncateFilenames; // Truncate for DOS | |
236 | extern int winHelpVersion; // Version e.g. 4 for Win95 | |
237 | extern bool winHelpContents; // Generate .cnt file | |
238 | extern bool htmlIndex; // Generate .htx HTML index file | |
239 | extern bool htmlFrameContents; // Use frames for HTML contents page | |
240 | extern int contentsDepth; // Depth of contents for linear RTF files | |
241 | extern bool upperCaseNames; // Filenames; default is lower case | |
242 | extern char *backgroundImageString; // HTML background image | |
243 | extern char *backgroundColourString; // HTML background colour | |
244 | extern char *textColourString; // HTML text colour | |
245 | extern char *linkColourString; // HTML link colour | |
246 | extern char *followedLinkColourString; // HTML followed link colour | |
247 | extern bool combineSubSections; // Stop splitting files below section | |
248 | extern bool htmlWorkshopFiles; // generate HTML Help Workshop project files | |
249 | ||
250 | // Names to help with internationalisation | |
251 | extern char *ContentsNameString; | |
252 | extern char *AbstractNameString; | |
253 | extern char *GlossaryNameString; | |
254 | extern char *ReferencesNameString; | |
255 | extern char *FiguresNameString; | |
256 | extern char *TablesNameString; | |
257 | extern char *FigureNameString; | |
258 | extern char *TableNameString; | |
259 | extern char *IndexNameString; | |
260 | extern char *ChapterNameString; | |
261 | extern char *SectionNameString; | |
262 | extern char *SubsectionNameString; | |
263 | extern char *SubsubsectionNameString; | |
264 | extern char *UpNameString; | |
265 | ||
266 | /* | |
267 | * HTML button identifiers: what kind of browse buttons | |
268 | * are placed in HTML files, if any. | |
269 | * | |
270 | */ | |
271 | ||
272 | #define HTML_BUTTONS_NONE 0 | |
273 | #define HTML_BUTTONS_BITMAP 1 | |
274 | #define HTML_BUTTONS_TEXT 2 | |
275 | ||
276 | /* | |
277 | * Section numbering | |
278 | * | |
279 | */ | |
280 | ||
281 | extern int chapterNo; | |
282 | extern int sectionNo; | |
283 | extern int subsectionNo; | |
284 | extern int subsubsectionNo; | |
285 | extern int figureNo; | |
286 | extern int tableNo; | |
287 | ||
288 | extern int ParSkip; | |
289 | extern int ParIndent; | |
290 | ||
291 | extern bool isSync; | |
292 | ||
293 | // Set by client and by Tex2Any | |
294 | extern TexChunk *currentSection; | |
295 | ||
296 | // Header/footers/pagestyle | |
297 | extern TexChunk * LeftHeaderOdd; | |
298 | extern TexChunk * LeftFooterOdd; | |
299 | extern TexChunk * CentreHeaderOdd; | |
300 | extern TexChunk * CentreFooterOdd; | |
301 | extern TexChunk * RightHeaderOdd; | |
302 | extern TexChunk * RightFooterOdd; | |
303 | extern TexChunk * LeftHeaderEven; | |
304 | extern TexChunk * LeftFooterEven; | |
305 | extern TexChunk * CentreHeaderEven; | |
306 | extern TexChunk * CentreFooterEven; | |
307 | extern TexChunk * RightHeaderEven; | |
308 | extern TexChunk * RightFooterEven; | |
309 | extern char * PageStyle; | |
310 | ||
311 | // Repeat the currentSection, either real (Chapter) or simulated (References) | |
312 | extern void OutputCurrentSection(void); | |
313 | extern void OutputCurrentSectionToString(char *buf); | |
314 | extern void OutputChunkToString(TexChunk *chunk, char *buf); | |
315 | ||
316 | extern char *fakeCurrentSection; | |
317 | ||
318 | // Called by Tex2Any to simulate a section | |
319 | extern void FakeCurrentSection(char *fakeSection, bool addToContents = TRUE); | |
320 | ||
321 | /* | |
322 | * Local to Tex2Any library | |
323 | * | |
324 | */ | |
325 | ||
326 | extern char *currentArgData; | |
327 | extern bool haveArgData; // If TRUE, we're simulating the data. | |
328 | void StartSimulateArgument(char *data); | |
329 | void EndSimulateArgument(void); | |
330 | ||
331 | /* | |
332 | * Client-defined | |
333 | * | |
334 | */ | |
335 | ||
336 | // Called on start/end of macro examination | |
337 | void OnMacro(int macroId, int no_args, bool start); | |
338 | ||
339 | // Called on start/end of argument examination. | |
340 | // Return TRUE at the start of an argument to traverse | |
341 | // (output) the argument. | |
342 | bool OnArgument(int macroId, int arg_no, bool start); | |
343 | ||
344 | // Default: library-defined | |
345 | void DefaultOnMacro(int macroId, int no_args, bool start); | |
346 | ||
347 | // Default: library-defined | |
348 | bool DefaultOnArgument(int macroId, int arg_no, bool start); | |
349 | ||
350 | // Called on error | |
351 | void OnError(char *msg); | |
352 | ||
353 | // Called for information | |
354 | void OnInform(char *msg); | |
355 | ||
356 | // Special yield wrapper | |
357 | void Tex2RTFYield(bool force = FALSE); | |
358 | ||
359 | /* | |
360 | * Useful utilities | |
361 | * | |
362 | */ | |
363 | ||
364 | // Look for \label macro, use this ref name if found or | |
365 | // make up a topic name otherwise. | |
366 | char *FindTopicName(TexChunk *chunk); | |
367 | // Force the current topic to be this (e.g. force 'references' label). | |
368 | void ForceTopicName(char *name); | |
369 | void ResetTopicCounter(void); | |
370 | ||
371 | // Parse unit eg. 14, 12pt, 34cm and return value in points. | |
372 | int ParseUnitArgument(char *unitArg); | |
373 | ||
374 | // Set small, large, normal etc. point sizes for reference size | |
375 | void SetFontSizes(int pointSize); | |
376 | ||
377 | /* | |
378 | * Strip off any extension (dot something) from end of file, | |
379 | * IF one exists. Inserts zero into buffer. | |
380 | * | |
381 | */ | |
382 | ||
383 | void StripExtension(char *buffer); | |
384 | ||
385 | /* | |
386 | * Reference structure | |
387 | * | |
388 | */ | |
389 | ||
390 | class TexRef: public wxObject | |
391 | { | |
392 | public: | |
393 | char *refLabel; // Reference label | |
394 | char *refFile; // Reference filename (can be NULL) | |
395 | char *sectionNumber; // Section or figure number (as a string) | |
396 | char *sectionName; // name e.g. 'section' | |
397 | TexRef(char *label, char *file, char *section, char *sectionN = NULL); | |
398 | ~TexRef(void); | |
399 | }; | |
400 | ||
401 | /* | |
402 | * Add a reference | |
403 | * | |
404 | */ | |
405 | ||
406 | void AddTexRef(char *name, char *file = NULL, char *sectionName = NULL, | |
407 | int chapter = 0, int section = 0, int subsection = 0, int subsubsection = 0); | |
408 | ||
409 | /* | |
410 | * Read and write reference file (.ref), to resolve refs for second pass. | |
411 | * | |
412 | */ | |
413 | void WriteTexReferences(char *filename); | |
414 | void ReadTexReferences(char *filename); | |
415 | ||
416 | /* | |
417 | * Bibliography stuff | |
418 | * | |
419 | */ | |
420 | ||
421 | class BibEntry: public wxObject | |
422 | { | |
423 | public: | |
424 | char *key; | |
425 | ||
426 | /* | |
427 | * book, inbook, article, phdthesis, inproceedings, techreport | |
428 | */ | |
429 | char *type; | |
430 | ||
431 | /* | |
432 | * Possible fields | |
433 | * | |
434 | */ | |
435 | char *editor; | |
436 | char *title; | |
437 | char *booktitle; | |
438 | char *author; | |
439 | char *journal; | |
440 | char *volume; | |
441 | char *number; | |
442 | char *year; | |
443 | char *month; | |
444 | char *pages; | |
445 | char *chapter; | |
446 | char *publisher; | |
447 | char *address; | |
448 | char *institution; | |
449 | char *organization; | |
450 | char *comment; | |
451 | ||
452 | inline BibEntry(void) | |
453 | { | |
454 | key = NULL; | |
455 | type = NULL; | |
456 | editor = NULL; | |
457 | title = NULL; | |
458 | booktitle = NULL; | |
459 | author = NULL; | |
460 | journal = NULL; | |
461 | volume = NULL; | |
462 | number = NULL; | |
463 | chapter = NULL; | |
464 | year = NULL; | |
465 | month = NULL; | |
466 | pages = NULL; | |
467 | publisher = NULL; | |
468 | address = NULL; | |
469 | institution = NULL; | |
470 | organization = NULL; | |
471 | comment = NULL; | |
472 | } | |
473 | }; | |
474 | ||
475 | extern wxList BibList; | |
476 | extern wxStringList CitationList; | |
477 | ||
478 | bool ReadBib(char *filename); | |
479 | void OutputBib(void); | |
480 | void ResolveBibReferences(void); | |
481 | void AddCitation(char *citeKey); | |
482 | TexRef *FindReference(char *key); | |
483 | ||
484 | /* | |
485 | * Ability to customize, or at least suppress unknown macro errors | |
486 | * | |
487 | */ | |
488 | ||
489 | extern wxList CustomMacroList; | |
490 | ||
491 | #define CUSTOM_MACRO_IGNORE 0 | |
492 | #define CUSTOM_MACRO_OUTPUT 1 | |
493 | #define CUSTOM_MACRO_MARK 2 | |
494 | ||
495 | class CustomMacro: public wxObject | |
496 | { | |
497 | public: | |
498 | char *macroName; | |
499 | char *macroBody; | |
500 | int noArgs; | |
501 | inline CustomMacro(char *name, int args, char *body) | |
502 | { | |
503 | noArgs = args; | |
504 | macroName = copystring(name); | |
505 | if (body) | |
506 | macroBody = copystring(body); | |
507 | else | |
508 | macroBody = NULL; | |
509 | } | |
510 | ~CustomMacro(); | |
511 | }; | |
512 | ||
513 | bool ReadCustomMacros(char *filename); | |
514 | void ShowCustomMacros(void); | |
515 | CustomMacro *FindCustomMacro(char *name); | |
516 | char *ParseMultifieldString(char *s, int *pos); | |
517 | ||
518 | /* | |
519 | * Colour table stuff | |
520 | * | |
521 | */ | |
522 | ||
523 | class ColourTableEntry: public wxObject | |
524 | { | |
525 | public: | |
526 | char *name; | |
527 | unsigned int red; | |
528 | unsigned int green; | |
529 | unsigned int blue; | |
530 | ||
531 | ColourTableEntry(char *theName, unsigned int r, unsigned int g, unsigned int b); | |
532 | ~ColourTableEntry(void); | |
533 | }; | |
534 | ||
535 | extern wxList ColourTable; | |
536 | extern void AddColour(char *theName, unsigned int r, unsigned int g, unsigned int b); | |
537 | extern int FindColourPosition(char *theName); | |
538 | // Converts e.g. "red" -> "#FF0000" | |
539 | extern bool FindColourHTMLString(char *theName, char *buf); | |
540 | extern void InitialiseColourTable(void); | |
541 | ||
542 | #define ltABSTRACT 1 | |
543 | #define ltADDCONTENTSLINE 2 | |
544 | #define ltADDTOCOUNTER 3 | |
545 | #define ltALPH1 4 | |
546 | #define ltALPH2 5 | |
547 | #define ltAPPENDIX 6 | |
548 | #define ltARABIC 7 | |
549 | #define ltARRAY 8 | |
550 | #define ltAUTHOR 9 | |
551 | ||
552 | #define ltBACKSLASH 30 | |
553 | #define ltBASELINESKIP 31 | |
554 | #define ltBF 32 | |
555 | #define ltBIBITEM 33 | |
556 | #define ltBIBLIOGRAPHYSTYLE 34 | |
557 | #define ltBIBLIOGRAPHY 35 | |
558 | #define ltBOXIT 36 | |
559 | #define ltBACKSLASHRAW 37 | |
560 | #define ltBACKGROUND 38 | |
561 | #define ltBACKGROUNDCOLOUR 39 | |
562 | #define ltBACKGROUNDIMAGE 40 | |
563 | #define ltBRCLEAR 41 | |
564 | ||
565 | #define ltCAPTIONSTAR 50 | |
566 | #define ltCAPTION 51 | |
567 | #define ltCDOTS 52 | |
568 | #define ltCENTERLINE 53 | |
569 | #define ltCENTERING 54 | |
570 | #define ltCENTER 55 | |
571 | #define ltCEXTRACT 56 | |
572 | #define ltCHAPTERHEADING 57 | |
573 | #define ltCHAPTERSTAR 58 | |
574 | #define ltCHAPTER 59 | |
575 | #define ltCINSERT 60 | |
576 | #define ltCITE 61 | |
577 | #define ltCLASS 62 | |
578 | #define ltCLEARDOUBLEPAGE 63 | |
579 | #define ltCLEARPAGE 64 | |
580 | #define ltCLINE 65 | |
581 | #define ltCLIPSFUNC 66 | |
582 | #define ltCOLUMNSEP 67 | |
583 | #define ltCOMMENT 68 | |
584 | #define ltCOPYRIGHT 69 | |
585 | #define ltCPARAM 70 | |
586 | ||
587 | #define ltCHEAD 71 | |
588 | #define ltCFOOT 72 | |
589 | ||
590 | #define ltCHAPTERHEADINGSTAR 73 | |
591 | ||
592 | #define ltDATE 90 | |
593 | #define ltDESCRIPTION 91 | |
594 | #define ltDESTRUCT 92 | |
595 | #define ltDOCUMENTSTYLE 93 | |
596 | #define ltDOCUMENT 94 | |
597 | #define ltDOUBLESPACE 95 | |
598 | #define ltDEFINECOLOUR 96 | |
599 | #define ltDEFINECOLOR 97 | |
600 | ||
601 | #define ltEM 120 | |
602 | #define ltENUMERATE 121 | |
603 | #define ltEQUATION 122 | |
604 | #define ltEVENSIDEMARGIN 123 | |
605 | ||
606 | #define ltFBOX 150 | |
607 | #define ltFIGURE 151 | |
608 | #define ltFLUSHLEFT 152 | |
609 | #define ltFLUSHRIGHT 153 | |
610 | #define ltFOOTHEIGHT 154 | |
611 | #define ltFOOTNOTE 155 | |
612 | #define ltFOOTSKIP 156 | |
613 | #define ltFRAMEBOX 157 | |
614 | #define ltFUNCTIONSECTION 158 | |
615 | #define ltFUNC 159 | |
616 | #define ltFIGURESTAR 160 | |
617 | #define ltFOOTNOTESIZE 161 | |
618 | #define ltFOOTNOTEPOPUP 162 | |
619 | #define ltFANCYPLAIN 163 | |
620 | #define ltFCOL 164 | |
621 | #define ltBCOL 165 | |
622 | #define ltFOLLOWEDLINKCOLOUR 166 | |
623 | ||
624 | #define ltGLOSSARY 180 | |
625 | #define ltGLOSS 181 | |
626 | ||
627 | #define ltHEADHEIGHT 200 | |
628 | #define ltHELPGLOSSARY 201 | |
629 | #define ltHELPIGNORE 202 | |
630 | #define ltHELPONLY 203 | |
631 | #define ltHELPINPUT 204 | |
632 | #define ltHELPFONTFAMILY 205 | |
633 | #define ltHELPFONTSIZE 206 | |
634 | #define ltHELPREFN 207 | |
635 | #define ltHELPREF 208 | |
636 | #define ltHFILL 209 | |
637 | #define ltHLINE 210 | |
638 | #define ltHRULE 211 | |
639 | #define ltHSPACESTAR 212 | |
640 | #define ltHSPACE 213 | |
641 | #define ltHSKIPSTAR 214 | |
642 | #define ltHSKIP 215 | |
643 | #define lthuge 216 | |
644 | #define ltHuge 217 | |
645 | #define ltHUGE 218 | |
646 | #define ltHTMLIGNORE 219 | |
647 | #define ltHTMLONLY 220 | |
648 | ||
649 | #define ltINCLUDEONLY 240 | |
650 | #define ltINCLUDE 241 | |
651 | #define ltINDEX 242 | |
652 | #define ltINPUT 243 | |
653 | #define ltITEMIZE 244 | |
654 | #define ltITEM 245 | |
655 | #define ltIMAGE 246 | |
656 | #define ltIT 247 | |
657 | #define ltITEMSEP 248 | |
658 | #define ltINDENTED 249 | |
659 | #define ltIMAGEMAP 250 | |
660 | #define ltIMAGER 251 | |
661 | #define ltIMAGEL 252 | |
662 | #define ltINSERTATLEVEL 253 | |
663 | ||
664 | #define ltKILL 260 | |
665 | ||
666 | #define ltLABEL 280 | |
667 | #define ltlarge 281 | |
668 | #define ltLarge 282 | |
669 | #define ltLARGE 283 | |
670 | #define ltLATEX 284 | |
671 | #define ltLBOX 285 | |
672 | #define ltLDOTS 286 | |
673 | #define ltLINEBREAK 287 | |
674 | #define ltLISTOFFIGURES 288 | |
675 | #define ltLISTOFTABLES 289 | |
676 | #define ltLHEAD 290 | |
677 | #define ltLFOOT 291 | |
678 | #define ltLATEXIGNORE 292 | |
679 | #define ltLATEXONLY 293 | |
680 | #define ltLOWERCASE 294 | |
681 | #define ltLBRACERAW 295 | |
682 | #define ltLINKCOLOUR 296 | |
683 | ||
684 | #define ltMAKEGLOSSARY 300 | |
685 | #define ltMAKEINDEX 301 | |
686 | #define ltMAKETITLE 302 | |
687 | #define ltMARKRIGHT 303 | |
688 | #define ltMARKBOTH 304 | |
689 | #define ltMARGINPARWIDTH 305 | |
690 | #define ltMARGINPAR 306 | |
691 | #define ltMARGINPARODD 307 | |
692 | #define ltMARGINPAREVEN 308 | |
693 | #define ltMBOX 309 | |
694 | #define ltMEMBERSECTION 310 | |
695 | #define ltMEMBER 311 | |
696 | #define ltMULTICOLUMN 312 | |
697 | #define ltMARGINPARSEP 313 | |
698 | ||
699 | #define ltNEWCOUNTER 330 | |
700 | #define ltNEWLINE 331 | |
701 | #define ltNEWPAGE 332 | |
702 | #define ltNOCITE 333 | |
703 | #define ltNOINDENT 334 | |
704 | #define ltNOLINEBREAK 335 | |
705 | #define ltNOPAGEBREAK 336 | |
706 | #define ltNORMALSIZE 337 | |
707 | #define ltNORMALBOX 338 | |
708 | #define ltNORMALBOXD 339 | |
709 | #define ltNUMBEREDBIBITEM 340 | |
710 | ||
711 | #define ltONECOLUMN 360 | |
712 | #define ltODDSIDEMARGIN 361 | |
713 | ||
714 | #define ltPAGEBREAK 380 | |
715 | #define ltPAGEREF 381 | |
716 | #define ltPAGESTYLE 382 | |
717 | #define ltPAGENUMBERING 383 | |
718 | #define ltPARAGRAPHSTAR 384 | |
719 | #define ltPARAGRAPH 385 | |
720 | #define ltPARAM 386 | |
721 | #define ltPARINDENT 387 | |
722 | #define ltPARSKIP 388 | |
723 | #define ltPARTSTAR 389 | |
724 | #define ltPART 390 | |
725 | #define ltPAR 391 | |
726 | #define ltPFUNC 392 | |
727 | #define ltPICTURE 393 | |
728 | #define ltPOPREF 394 | |
729 | #define ltPOUNDS 395 | |
730 | #define ltPRINTINDEX 396 | |
731 | #define ltPSBOXTO 397 | |
732 | #define ltPSBOX 398 | |
733 | #define ltPOPREFONLY 399 | |
734 | ||
735 | #define ltQUOTE 420 | |
736 | #define ltQUOTATION 421 | |
737 | ||
738 | #define ltRAGGEDBOTTOM 440 | |
739 | #define ltRAGGEDLEFT 441 | |
740 | #define ltRAGGEDRIGHT 442 | |
741 | #define ltREF 443 | |
742 | #define ltRM 444 | |
743 | #define ltROMAN 445 | |
744 | #define ltROMAN2 446 | |
745 | #define ltRTFSP 447 | |
746 | #define ltRULE 448 | |
747 | #define ltRULEDROW 449 | |
748 | #define ltDRULED 450 | |
749 | #define ltRHEAD 451 | |
750 | #define ltRFOOT 452 | |
751 | #define ltROW 453 | |
752 | #define ltRTFIGNORE 454 | |
753 | #define ltRTFONLY 455 | |
754 | #define ltRBRACERAW 456 | |
755 | #define ltREGISTERED 457 | |
756 | ||
757 | #define ltSC 470 | |
758 | #define ltSECTIONHEADING 471 | |
759 | #define ltSECTIONSTAR 472 | |
760 | #define ltSECTION 473 | |
761 | #define ltSETCOUNTER 474 | |
762 | #define ltSF 475 | |
763 | #define ltSHORTCITE 476 | |
764 | #define ltSINGLESPACE 477 | |
765 | #define ltSLOPPYPAR 478 | |
766 | #define ltSLOPPY 479 | |
767 | #define ltSL 480 | |
768 | #define ltSMALL 481 | |
769 | #define ltSUBITEM 482 | |
770 | #define ltSUBPARAGRAPHSTAR 483 | |
771 | #define ltSUBPARAGRAPH 484 | |
772 | #define ltSPECIAL 485 | |
773 | #define ltSUBSECTIONSTAR 486 | |
774 | #define ltSUBSECTION 487 | |
775 | #define ltSUBSUBSECTIONSTAR 488 | |
776 | #define ltSUBSUBSECTION 489 | |
777 | #define ltSCRIPTSIZE 490 | |
778 | #define ltSETHEADER 491 | |
779 | #define ltSETFOOTER 492 | |
780 | #define ltSIZEDBOX 493 | |
781 | #define ltSIZEDBOXD 494 | |
782 | #define ltSECTIONHEADINGSTAR 495 | |
783 | #define ltSS 496 | |
784 | #define ltSETHOTSPOTCOLOUR 497 | |
785 | #define ltSETHOTSPOTCOLOR 498 | |
786 | #define ltSETHOTSPOTUNDERLINE 499 | |
787 | #define ltSETTRANSPARENCY 500 | |
788 | ||
789 | #define ltTABBING 510 | |
790 | #define ltTABLEOFCONTENTS 511 | |
791 | #define ltTABLE 512 | |
792 | #define ltTABULAR 513 | |
793 | #define ltTAB 514 | |
794 | #define ltTEX 515 | |
795 | #define ltTEXTWIDTH 516 | |
796 | #define ltTEXTHEIGHT 517 | |
797 | #define ltTHEBIBLIOGRAPHY 518 | |
798 | #define ltTITLEPAGE 519 | |
799 | #define ltTITLE 520 | |
800 | #define ltTINY 521 | |
801 | #define ltTODAY 522 | |
802 | #define ltTOPMARGIN 523 | |
803 | #define ltTOPSKIP 524 | |
804 | #define ltTT 525 | |
805 | #define ltTYPEIN 526 | |
806 | #define ltTYPEOUT 527 | |
807 | #define ltTWOCOLUMN 528 | |
808 | #define ltTHEPAGE 529 | |
809 | #define ltTHECHAPTER 530 | |
810 | #define ltTHESECTION 531 | |
811 | #define ltTHISPAGESTYLE 532 | |
812 | ||
813 | #define ltTWOCOLWIDTHA 533 | |
814 | #define ltTWOCOLWIDTHB 534 | |
815 | #define ltTWOCOLSPACING 535 | |
816 | #define ltTWOCOLITEM 536 | |
817 | #define ltTWOCOLITEMRULED 537 | |
818 | #define ltTWOCOLLIST 538 | |
819 | #define ltTEXTCOLOUR 539 | |
820 | ||
821 | #define ltUNDERLINE 550 | |
822 | #define ltURLREF 551 | |
823 | #define ltUPPERCASE 552 | |
824 | #define ltUSEPACKAGE 553 | |
825 | ||
826 | #define ltVDOTS 570 | |
827 | #define ltVERBATIMINPUT 571 | |
828 | #define ltVERBATIM 572 | |
829 | #define ltVERB 573 | |
830 | #define ltVERSE 574 | |
831 | #define ltVFILL 575 | |
832 | #define ltVLINE 576 | |
833 | #define ltVOID 577 | |
834 | #define ltVRULE 578 | |
835 | #define ltVSPACESTAR 579 | |
836 | #define ltVSKIPSTAR 580 | |
837 | #define ltVSPACE 581 | |
838 | #define ltVSKIP 582 | |
839 | #define ltVERBSTAR 583 | |
840 | ||
841 | #define ltWXCLIPS 600 | |
842 | #define ltWINHELPIGNORE 601 | |
843 | #define ltWINHELPONLY 602 | |
844 | ||
845 | #define ltXLPIGNORE 603 | |
846 | #define ltXLPONLY 604 | |
847 | ||
848 | #define ltSPACE 620 | |
849 | #define ltBACKSLASHCHAR 621 | |
850 | #define ltPIPE 622 | |
851 | #define ltFORWARDSLASH 623 | |
852 | #define ltUNDERSCORE 624 | |
853 | #define ltAMPERSAND 625 | |
854 | #define ltPERCENT 626 | |
855 | #define ltDOLLAR 627 | |
856 | #define ltHASH 628 | |
857 | #define ltLPARENTH 629 | |
858 | #define ltRPARENTH 630 | |
859 | #define ltLBRACE 631 | |
860 | #define ltRBRACE 632 | |
861 | #define ltEQUALS 633 | |
862 | #define ltRANGLEBRA 634 | |
863 | #define ltLANGLEBRA 635 | |
864 | #define ltPLUS 636 | |
865 | #define ltDASH 637 | |
866 | #define ltSINGLEQUOTE 638 | |
867 | #define ltBACKQUOTE 639 | |
868 | #define ltTILDE 640 | |
869 | #define ltAT_SYMBOL 641 | |
870 | ||
871 | // Characters, not macros but with special Latex significance | |
872 | #define ltSPECIALDOLLAR 660 | |
873 | #define ltSPECIALDOUBLEDOLLAR 661 | |
874 | #define ltSPECIALTILDE 662 | |
875 | #define ltSPECIALHASH 663 | |
876 | #define ltSPECIALAMPERSAND 664 | |
877 | #define ltSUPERTABULAR 665 | |
878 | ||
879 | // Accents | |
880 | #define ltACCENT_GRAVE 700 | |
881 | #define ltACCENT_ACUTE 701 | |
882 | #define ltACCENT_CARET 702 | |
883 | #define ltACCENT_UMLAUT 703 | |
884 | #define ltACCENT_TILDE 704 | |
885 | #define ltACCENT_DOT 705 | |
886 | #define ltACCENT_CADILLA 706 | |
887 | ||
888 | // Symbols | |
889 | #define ltALPHA 800 | |
890 | #define ltBETA 801 | |
891 | #define ltGAMMA 802 | |
892 | #define ltDELTA 803 | |
893 | #define ltEPSILON 804 | |
894 | #define ltVAREPSILON 805 | |
895 | #define ltZETA 806 | |
896 | #define ltETA 807 | |
897 | #define ltTHETA 808 | |
898 | #define ltVARTHETA 809 | |
899 | #define ltIOTA 810 | |
900 | #define ltKAPPA 811 | |
901 | #define ltLAMBDA 812 | |
902 | #define ltMU 813 | |
903 | #define ltNU 814 | |
904 | #define ltXI 815 | |
905 | #define ltPI 816 | |
906 | #define ltVARPI 817 | |
907 | #define ltRHO 818 | |
908 | #define ltVARRHO 819 | |
909 | #define ltSIGMA 820 | |
910 | #define ltVARSIGMA 821 | |
911 | #define ltTAU 822 | |
912 | #define ltUPSILON 823 | |
913 | #define ltPHI 824 | |
914 | #define ltVARPHI 825 | |
915 | #define ltCHI 826 | |
916 | #define ltPSI 827 | |
917 | #define ltOMEGA 828 | |
918 | ||
919 | #define ltCAP_GAMMA 830 | |
920 | #define ltCAP_DELTA 831 | |
921 | #define ltCAP_THETA 832 | |
922 | #define ltCAP_LAMBDA 833 | |
923 | #define ltCAP_XI 834 | |
924 | #define ltCAP_PI 835 | |
925 | #define ltCAP_SIGMA 836 | |
926 | #define ltCAP_UPSILON 837 | |
927 | #define ltCAP_PHI 838 | |
928 | #define ltCAP_PSI 839 | |
929 | #define ltCAP_OMEGA 840 | |
930 | ||
931 | // Binary operation symbols | |
932 | #define ltLE 850 | |
933 | #define ltLEQ 851 | |
934 | #define ltLL 852 | |
935 | #define ltSUBSET 853 | |
936 | #define ltSUBSETEQ 854 | |
937 | #define ltSQSUBSET 855 | |
938 | #define ltSQSUBSETEQ 856 | |
939 | #define ltIN 857 | |
940 | #define ltVDASH 858 | |
941 | #define ltMODELS 859 | |
942 | #define ltGE 860 | |
943 | #define ltGEQ 861 | |
944 | #define ltGG 862 | |
945 | #define ltSUPSET 863 | |
946 | #define ltSUPSETEQ 864 | |
947 | #define ltSQSUPSET 865 | |
948 | #define ltSQSUPSETEQ 866 | |
949 | #define ltNI 867 | |
950 | #define ltDASHV 868 | |
951 | #define ltPERP 869 | |
952 | #define ltNEQ 870 | |
953 | #define ltDOTEQ 871 | |
954 | #define ltAPPROX 872 | |
955 | #define ltCONG 873 | |
956 | #define ltEQUIV 874 | |
957 | #define ltPROPTO 875 | |
958 | #define ltPREC 876 | |
959 | #define ltPRECEQ 877 | |
960 | #define ltPARALLEL 878 | |
961 | #define ltSIM 879 | |
962 | #define ltSIMEQ 880 | |
963 | #define ltASYMP 881 | |
964 | #define ltSMILE 882 | |
965 | #define ltFROWN 883 | |
966 | #define ltBOWTIE 884 | |
967 | #define ltSUCC 885 | |
968 | #define ltSUCCEQ 886 | |
969 | #define ltMID 887 | |
970 | ||
971 | // Negated relation symbols (selected) | |
972 | #define ltNOTEQ 890 | |
973 | #define ltNOTIN 891 | |
974 | #define ltNOTSUBSET 892 | |
975 | ||
976 | // Arrows | |
977 | #define ltLEFTARROW 900 | |
978 | #define ltLEFTARROW2 901 | |
979 | #define ltRIGHTARROW 902 | |
980 | #define ltRIGHTARROW2 903 | |
981 | #define ltLEFTRIGHTARROW 904 | |
982 | #define ltLEFTRIGHTARROW2 905 | |
983 | #define ltUPARROW 906 | |
984 | #define ltUPARROW2 907 | |
985 | #define ltDOWNARROW 908 | |
986 | #define ltDOWNARROW2 909 | |
987 | ||
988 | // Miscellaneous symbols | |
989 | #define ltALEPH 1000 | |
990 | #define ltWP 1001 | |
991 | #define ltRE 1002 | |
992 | #define ltIM 1003 | |
993 | #define ltEMPTYSET 1004 | |
994 | #define ltNABLA 1005 | |
995 | #define ltSURD 1006 | |
996 | #define ltPARTIAL 1007 | |
997 | #define ltBOT 1008 | |
998 | #define ltFORALL 1009 | |
999 | #define ltEXISTS 1010 | |
1000 | #define ltNEG 1011 | |
1001 | #define ltSHARP 1012 | |
1002 | #define ltANGLE 1013 | |
1003 | #define ltTRIANGLE 1014 | |
1004 | #define ltCLUBSUIT 1015 | |
1005 | #define ltDIAMONDSUIT 1016 | |
1006 | #define ltHEARTSUIT 1017 | |
1007 | #define ltSPADESUIT 1018 | |
1008 | #define ltINFTY 1019 | |
1009 | ||
1010 | // Binary operation symbols | |
1011 | #define ltPM 1030 | |
1012 | #define ltMP 1031 | |
1013 | #define ltTIMES 1032 | |
1014 | #define ltDIV 1033 | |
1015 | #define ltCDOT 1034 | |
1016 | #define ltAST 1035 | |
1017 | #define ltSTAR 1036 | |
1018 | #define ltCAP 1037 | |
1019 | #define ltCUP 1038 | |
1020 | #define ltVEE 1039 | |
1021 | #define ltWEDGE 1040 | |
1022 | #define ltCIRC 1041 | |
1023 | #define ltBULLET 1042 | |
1024 | #define ltDIAMOND 1043 | |
1025 | #define ltOSLASH 1044 | |
1026 | #define ltBOX 1045 | |
1027 | #define ltDIAMOND2 1046 | |
1028 | #define ltBIGTRIANGLEDOWN 1047 | |
1029 | #define ltOPLUS 1048 | |
1030 | #define ltOTIMES 1049 | |
1031 | ||
1032 | // Latex2e commands | |
1033 | #define ltRMFAMILY 1200 | |
1034 | #define ltSFFAMILY 1201 | |
1035 | #define ltTTFAMILY 1202 | |
1036 | #define ltBFSERIES 1203 | |
1037 | #define ltITSHAPE 1204 | |
1038 | #define ltSLSHAPE 1205 | |
1039 | #define ltSCSHAPE 1206 | |
1040 | ||
1041 | #define ltMDSERIES 1207 | |
1042 | #define ltUPSHAPE 1208 | |
1043 | ||
1044 | #define ltTEXTRM 1209 | |
1045 | #define ltTEXTSF 1210 | |
1046 | #define ltTEXTTT 1211 | |
1047 | #define ltTEXTBF 1212 | |
1048 | #define ltTEXTIT 1213 | |
1049 | #define ltTEXTSL 1214 | |
1050 | #define ltTEXTSC 1215 | |
1051 | #define ltEMPH 1216 | |
1052 | ||
1053 | #define ltDOCUMENTCLASS 1217 | |
1054 | ||
1055 | // Space macros | |
1056 | #define ltSMALLSPACE1 1250 | |
1057 | #define ltSMALLSPACE2 1251 | |
1058 | ||
1059 | // Pseudo-macros | |
1060 | #define ltTOPLEVEL 15000 | |
1061 | #define ltCUSTOM_MACRO 15001 | |
1062 | #define ltSOLO_BLOCK 15002 | |
1063 | ||
1064 | ||
1065 |