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