summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/configure-pfaedit.h
blob: 3126010ac558b244b440f73f530ba1e43819b552 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
/* Copyright (C) 2002-2008 by George Williams */
/*
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:

 * Redistributions of source code must retain the above copyright notice, this
 * list of conditions and the following disclaimer.

 * Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.

 * The name of the author may not be used to endorse or promote products
 * derived from this software without specific prior written permission.

 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
#ifndef _CONFIG_FONTFORGE_H_
#define _CONFIG_FONTFORGE_H_


#include "ff-config.h"

/* Making FontForge handle more of the capabilities of type3 & svg fonts is not*/
/*  something most people will want. It wastes space too. So I thought I'd    */
/*  make it conditional. 						      */
/*									      */
/* #define FONTFORGE_CONFIG_TYPE3					      */
/*									      */
/* It allows people to have images in a font, multiple layers, strokes, fills */
/*  transparencies, etc. (type3 doesn't support transparency, svg doesn't do  */
/*  images)								      */
/* Can be set from configure --with-multilayer				      */


/* Making FontForge handle device tables uses up more space, so I want        */
/*  people to be able to turn it off if space is an issue and device tables   */
/*  (ability to correct rounding errors in spacing, ie. kerning, at small     */
/*  point sizes) aren't important.					      */
/*									      */
/* #define FONTFORGE_CONFIG_DEVICETABLES				      */
/*									      */
/* Can be set from configure --with-devicetables			      */


/* Apple suggests using a sfnt version of 'true' for fonts designed for use   */
/*  only on a mac (windows refuses such fonts). I generally prefer to have a  */
/*  font work everywhere, so normally ff produces fonts with version 1.0      */
/*  Set this if you want Apple only fonts (produced when Apple mode is set and*/
/*  Opentype mode is unset in the Generate Fonts-Options dialog).	      */
/*									      */
/* #define FONTFORGE_CONFIG_APPLE_ONLY_TTF				      */
/*									      */


/* Nobody else puts apple unicode encodings into the name table. So I probably*/
/*  shouldn't either.  But if someone wants them...			      */
/*									      */
/* #define FONTFORGE_CONFIG_APPLE_UNICODE_NAMES				      */
/*									      */


/* Sometimes I want to create a glyph which is a word, and this command       */
/*  makes that easy                                                           */
/*									      */
/* #define FONTFORGE_CONFIG_PASTEAFTER					      */
/*									      */
/* The paste after command pastes the contents of the clipboard into the      */
/*  current glyph, translates that by the advance width of the current glyph  */
/*  and increments the advance width by the advance width of the clipboard    */
/*									      */
/* Can be set from configure --enable-pasteafter			      */



/* Someone asked for encoding GB12345. Neither libiconv nor iconv supports it.*/
/*									      */
/* #define FONTFORGE_CONFIG_GB12345					      */
/*									      */
/* Can be set from configure --enable-gb12345				      */


/* I doubt anyone but me will be interested in the tile path command, so I    */
/*  don't include code for it by default, but if you do want it simply define */
/*  the following macro							      */
/*									      */
/* #define FONTFORGE_CONFIG_TILEPATH					      */
/*									      */
/* The tile path command lets you specify a tile which will then be laid out  */
/*  along a path. It could be used to make a font whose stems were filled with*/
/*  celtic knotwork, or bamboo segments, for example.			      */
/* It's sort of an extension to the Expand Stroke command, only it strokes    */
/*  with a pattern */
/*									      */
/* Can be set from configure --enable-tilepath				      */


/* There used to be a property _XFREE86_GLYPH_RANGES (in bdf/pcf) fonts which */
/*  gave a quick view about what glyphs were in a bdf font. From what I gather*/
/*  this property has been dropped because it was redundant.  If you would    */
/*  like FontForge to generate it					      */
/*									      */
/* #define FONTFORGE_CONFIG_BDF_GLYPH_RANGES				      */
/*									      */


/* I used to use an approximation method when converting cubic to quadratic   */
/*  splines which was non-symmetric. In some cases it produced better results */
/*  than the current approach. This flag restores the old algorithm.	      */
/*									      */
/* #define FONTFORGE_CONFIG_NON_SYMMETRIC_QUADRATIC_CONVERSION		      */
/*									      */


/* Harald Harders would like to be able to generate a PFM file without        */
/*  creating a font along with it. I don't see the need for this, but he pro- */
/*  vided a patch. Setting this flag will enable his patch		      */
/*									      */
/* #define FONTFORGE_CONFIG_WRITE_PFM					      */
/*									      */


/* Prior to late Sept of 2003 FontForge converted certain mac feature/settings*/
/*  into opentype-like tags. Some features could be converted directly but for*/
/*  a few I made up tags.  Now FontForge is capable of using the mac feature  */
/*  settings directly. If you set this flag then when FontForge loads in an sfd*/
/*  file with these non-standard opentype tags, it will convert them into the */
/*  appropriate mac feature/setting combinations.                             */
/*									      */
/* #define FONTFORGE_CONFIG_CVT_OLD_MAC_FEATURES			      */
/*									      */


/* Normally fontforge uses float (32 bit real data type) to store position    */
/*  and transformation data. If you prefer you may use double (64 bit real)   */
/*  instead.  The extra precision is usually not needed, but the extra space  */
/*  can be a problem with large (CJK, UNICODE) fonts.                         */
/*									      */
#define FONTFORGE_CONFIG_USE_DOUBLE					      
/* #define FONTFORGE_CONFIG_USE_LONGDOUBLE				      */
/*									      */


/* In addition to placing snippets of charstrings into subrs, I tried adding  */
/*  whole glyphs (when that was possible). To my surprise, it made things     */
/*  worse in one of my test cases, and barely registered an improvement in    */
/*  another.   So I think we're better off without it. But I don't understand */
/*  why things are worse so I'm leaving the code in to play with              */
/*									      */
/* #define FONTFORGE_CONFIG_PS_REFS_GET_SUBRS				      */
/*									      */


/* Werner wants to be able to see the raw (unscaled) data for the location of */
/*  points (in the points window of the debugger). I'm not sure that is       */
/*  generally a good idea (I think it makes the dlg look unsymetric).         */
/*									      */
/* #define FONTFORGE_CONFIG_SHOW_RAW_POINTS				      */
/*									      */

/* On most systems fontforge uses the alt or meta key as a mouse press modifier*/
/*  on the mac that would mean the option key. But the mac usually uses option*/
/*  keypress to mean mouse button 2, and so option isn't available. Let's use */
/*  capslock instead.					                      */
/*									      */
/* #define FONTFORGE_CONFIG_CAPSLOCK_FOR_ALT				      */
/*									      */
/* This has three states:						      */
/*	Undefined (or 0) => use meta/alt key				      */
/*	2		 => Use either meta/alt or capslock		      */
/*	otherwise	 => use capslock				      */
/*									      */
/* Can be set from configure --with-capslock-for-alt			      */


/* Use horizontal, rather than vertical, tabsets for the Font and glyph Info  */
/*  dialogs. This is what things used to look like.                           */
/*									      */
/* #define FONTFORGE_CONFIG_INFO_HORIZONTAL				      */
/*									      */

/* ************************************************************************** */
/* *********************** Set by configure script ************************** */
/* ************************************************************************** */

/* The following are expected to be set by the configure script, but I suppose*/
/*  you could set them here too 					      */

/* If your system does not have a working ldopen (to do dynamic binding of    */
/*  shared libaries) then set NODYNAMIC					      */

/* If you are on a Mac then set __Mac					      */
/* If you are on a windows box with cygwin set __CygWin			      */

/* If you are on a Mac where cursors are restricted to 16x16 pixel boxes then */
/*  set _CursorsMustBe16x16						      */

/* If you are on cygwin where even the modifier keys autorepeat then set      */
/*  _ModKeysAutoRepeat							      */

/* If you are on cygwin where some of the drawmode funtions (like AND) don't  */
/*  work then set _BrokenBitmapImages					      */

/* FontForge knows about 4 different keyboard settings, a windows keyboard, a */
/*  mac keyboard, a mac keyboard under SUSE linux, and a sun keyboard	      */
/*  When it starts up FontForge assumes that the keyboard is some default type*/
/*  You can override the type by setting _Keyboard to			      */
/* 0 -- windows								      */
/* 1 -- mac running mac osx						      */
/* 3 -- mac running SUSE linux (7.1)					      */
/* 2 -- sparc								      */
/* Basically this affects the text that appears in menus. The sun keyboard    */
/*  uses meta where the windows one uses alt, and the mac use command and     */
/*  option.								      */

/* If there are no freetype header files then define _NO_FREETYPE	      */
/* If the freetype library has the bytecode debugger then define FREETYPE_HAS_DEBUGGER */
/* If there is no mmap system call then define _NO_MMAP			      */

/* If there is no ungif library (or if it is out of date) define _NO_LIBUNGIF */
/* If there is no png (or z) library define _NO_LIBPNG			      */
/* If there libpng is version 1.2 define _LIBPNG12			      */
/* If there is no jpeg library define _NO_LIBJPEG			      */
/* If there is no tiff library define _NO_LIBTIFF			      */
/* If there is no xml2 library define _NO_LIBXML			      */
/* If there is no uninameslist library define _NO_LIBUNINAMESLIST	      */

/* If any of the above libraries exists, but only in static form (on a system */
/*  with a dynamic loader) then define _STATIC_LIBUNGIF, etc.		      */

/* If there is no snprintf define _NO_SNPRINTF				      */

/* If the XInput extension is not available define _NO_XINPUT		      */
/* If the Xkb extension is not available define _NO_XKB			      */

/* If the compiler supports long long define _HAS_LONGLONG		      */


/* ************************************************************************** */
/* ******************************** Obsolete ******************************** */
/* ************************************************************************** */

/******* I decided to turn this on and remove all uses of the flag ************/
/* I thought it would be fun to write a generalized non linear transformation */
/*  routine. I'm not sure that it's very useful though. It can be used to do  */
/*  perspective transformations and such				      */
/*									      */
/* #define FONTFORGE_CONFIG_NONLINEAR					      */
/*									      */
/* This command takes two strings which specify general expressions in x and y*/
/*  and applies the specified transformations to the splines.  Note: Each     */
/*  spline is transformed into a new spline, but some transformations require */
/*  that a spline be broken into components and each of those transformed eg: */
/*  "x' = x, y' = y+sin(x)" would not produce anything useful when applied to */
/*  a long line segment like [0,100]...[100,100], but if that were broken up  */
/*  into sub-segments each pi long the results would be much better */


/******* Don't need this any longer as copy layer 2 layer is always available */
/* Yoshiki Hayashi wants a copy background to foreground command in the       */
/*  outline view. Setting this flag will enable his patch		      */
/*									      */
/* #define FONTFORGE_CONFIG_COPY_BG_TO_FG				      */
/*									      */


/* ************************************************************************** */
/* **************************** Numeric Settings **************************** */
/* ************************************************************************** */


/* The number of files displayed in the "File->Recent" menu */
#define RECENT_MAX	10

/* The number of tabs allowed in the outline glyph view of former glyphs */
#define FORMER_MAX	10

/* The maximum number of layers allowed in a normal font (this includes the */
/*  default foreground and background layers) -- this does not limit type3  */
/*  fonts */
#define BACK_LAYER_MAX	256



#ifdef _WIN32
#include <stdio.h>
extern FILE *_cairo_win_tmpfile( void );
#define tmpfile() _cairo_win_tmpfile()
#endif /* _WIN32 */


#endif