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