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