A The texmf.cnf file

2  % Public domain.

3  %

4  % What follows is a super-summary of what this .cnf file can

5  % contain. Please read the Kpathsea manual for more information.

6  %

7  % texmf.cnf is generated from texmf.cnf.in, by replacing @var@ with the

8  % value of the Make variable `var', via a sed file texmf.sed, generated

9  % (once) by kpathsea/Makefile (itself generated from kpathsea/Makefile.in

10  % by configure).

11  %

12  % Any identifier (sticking to A-Za-z_ for names is safest) can be assigned.

13  % The `=' (and surrounding spaces) is optional.

14  % No % or @ in texmf.cnf.in, for the sake of autogeneration.

15  % (However, %'s and @'s can be edited into texmf.cnf or put in envvar values.)

16  % $foo (or ${foo}) in a value expands to the envvar or cnf value of foo.

17  %

18  % Earlier entries (in the same or another file) override later ones, and

19  % an environment variable foo overrides any texmf.cnf definition of foo.

20  %

21  % All definitions are read before anything is expanded, so you can use

22  % variables before they are defined.

23  %

24  % If a variable assignment is qualified with `.PROGRAM', it is ignored

25  % unless the current executable (last filename component of argv[0]) is

26  % named PROGRAM.  This foo.PROGRAM construct is not recognized on the

27  % right-hand side. For environment variables, use FOO_PROGRAM.

28  %

29  % Which file formats use which paths for searches is described in the

30  % various programs' and the kpathsea documentation.

31  %

32  % // means to search subdirectories (recursively).

33  % A leading !! means to look only in the ls-R db, never on the disk.

34  % A leading/trailing/doubled ; in the paths will be expanded into the

35  %   compile-time default. Probably not what you want.

36  

37  %  Part 1; Search paths and directories.

38  

39  % You may wish to use one of the $SELFAUTO... variables here so TeX will

40  % find where to look dynamically.  See the manual and the definition

41  % below of TEXMFCNF.

42  %

43  % User texmf trees can be catered for like this...

44  % HOMETEXMF = $HOME/texmf

45  

46  % Now, list all the texmf trees. If you have multiple trees,

47  % use shell brace notation, like this:

48  % TEXMF = {$HOMETEXMF;!!$TEXMFLOCAL;!!$TEXMFMAIN}

49  

50  TEXMFMAIN = $SELFAUTOPARENT/texmf

51  TEXMFLOCAL=/usr/TeX.local

52  TEXMF = {$TEXMFLOCAL;!!$TEXMFMAIN}

53  

54  % The system trees.  These are the trees that are shared by all the users.

55  SYSTEXMF = $TEXMF

56  

57  % Where generated fonts may be written.  This tree is used when the sources

58  % were found in a system tree and either that tree wasn't writable, or the

59  % varfonts feature was enabled in MT_FEATURES in mktex.cnf.

60  VARTEXFONTS = /var/tmp/fonts

61  

62  % Where to look for ls-R files.  There need not be an ls-R in the

63  % directories in this path, but if there is one, Kpathsea will use it.

64  TEXMFDBS = $TEXMF;$VARTEXFONTS

65  

66  % It may be convenient to define TEXMF like this:

67  %   TEXMF = {$HOMETEXMF:!!$TEXMFLOCAL:!!$TEXMFMAIN:$HOME}

68  % which allows users to set up entire texmf trees, and tells TeX to

69  % look in places like ~/tex and ~/bibtex.  If you do this, define TEXMFDBS

70  % like this:

71  %   TEXMFDBS = $HOMETEXMF:$TEXMFLOCAL:$TEXMFMAIN:$VARTEXFONTS

72  % or mktexlsr will generate an ls-R file for $HOME when called, which is

73  % rarely desirable.  If you do this you'll want to define SYSTEXMF like

74  % this:

75  %   SYSTEXMF = $TEXMFLOCAL:$TEXMFMAIN

76  % so that fonts from a user's tree won't escape into the global trees.

77  %

78  % On some systems, there will be a third system tree which contains all

79  % the font files that may be created as well as the formats.  For

80  % example

81  %   VARTEXMF = /var/lib/texmf

82  % is used on many Linux systems.  In this case, set VARTEXFONTS like this

83  %   VARTEXFONTS = $VARTEXMF/fonts

84  % and do not mention it in TEXMFDBS (but _do_ mention VARTEXMF).

85  

86  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

87  % Usually you will not need to edit any of the other variables in part 1. %

88  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

89  

90  % WEB2C is for Web2C specific files.  The current directory may not be

91  % a good place to look for them.

92  WEB2C = $TEXMF/web2c

93  

94  % TEXINPUTS is for TeX input files -- i.e., anything to be found by \input

95  % or \openin, including .sty, .eps, etc.

96  

97  % LaTeX 2e specific macros are stored in latex.

98  % latex209 is not supported, at the request of the authors of LaTeX

99  TEXINPUTS.latex = .;$TEXMF/tex/{latex;generic;}//

100  

101  % Fontinst needs to read afm files.

102  TEXINPUTS.fontinst = .;$TEXMF/tex//;$TEXMF/fonts/afm//

103  

104  % plain based

105  TEXINPUTS.texinfo = .;$TEXMF/tex/{texinfo;plain;generic;}//

106  TEXINPUTS.amstex = .;$TEXMF/tex/{amstex;plain;generic;}//

107  

108  % ConTeXt

109  TEXINPUTS.context = .;$TEXMF/tex/{context;plain;generic;}//

110  

111  % Omega

112  TEXINPUTS.omega = .;$TEXMF/{omega;tex}/{plain;generic;}/

113  TEXINPUTS.lambda = .;$TEXMF/{omega;tex}/{lambda;latex;generic;}//

114  

115  % MLTeX.

116  TEXINPUTS.mltex = .;$TEXMF/{mltex;tex}/{plain;generic;}//

117  TEXINPUTS.mllatex = .;$TEXMF/{mltex;tex}/{latex;generic;}//

118  

119  % e-TeX.

120  TEXINPUTS.elatex   = .;$TEXMF/{etex;tex}/{latex;generic;}//

121  TEXINPUTS.etex     = .;$TEXMF/{etex;tex}/{eplain;plain;generic;}//

122  

123  % pdftex.

124  TEXINPUTS.pdftexinfo = .;$TEXMF/{pdftex;tex}/{texinfo;generic;plain;}//

125  TEXINPUTS.pdftex   = .;$TEXMF/{pdftex;tex}/{plain;generic;}//

126  TEXINPUTS.pdflatex = .;$TEXMF/{pdftex;tex}/{latex;generic;}//

127  

128  % Fontinst needs to read afm files.

129  TEXINPUTS.fontinst = .;$TEXMF/tex//;$TEXMF/fonts/afm//

130  

131  % Plain. Have the command tex check all directories as a last

132  % resort, we may have plain-compatible stuff anywhere.

133  TEXINPUTS.tex = .;$TEXMF/tex/{plain;generic;}//

134  

135  % INITEX. May as well make this separate so it can search on disk;

136  % initex is seldom run, and might be used directly after files have been

137  % added, when ls-R may not up be to date.

138  TEXINPUTS.initex = .;$TEXMFMAIN/tex//;$TEXMFLOCAL/tex//

139  

140  % Earlier entries override later ones, so put this last.

141  TEXINPUTS = .;$TEXMF/tex//

142  

143  % Dump files (fmt/base/mem) for vir{tex,mf,mp} to read (see

144  % web2c/INSTALL), and string pools (.pool) for ini{tex,mf,mp}.  It is

145  % silly that we have six paths and directories here (they all resolve to

146  % a single place by default), but historically ...

147  TEXFORMATS = .;$TEXMF/web2c

148  MFBASES = .;$TEXMF/web2c

149  MPMEMS = .;$TEXMF/web2c

150  TEXPOOL = .;$TEXMF/web2c

151  MFPOOL = .;$TEXMF/web2c

152  MPPOOL = .;$TEXMF/web2c

153  

154  % Metafont, MetaPost inputs.

155  MFINPUTS = .;$TEXMF/metafont//;{$TEXMF/fonts;$VARTEXFONTS}/source//

156  MPINPUTS = .;$TEXMF/metapost//

157  

158  % Device-independent font metric files.

159  VFFONTS = .;$TEXMF/fonts/vf//

160  TFMFONTS = .;$TEXMF/fonts/tfm//;$VARTEXFONTS/tfm//

161  

162  % The $MAKETEX_MODE below means the drivers will not use a cx font when

163  % the mode is ricoh.  If no mode is explicitly specified, kpse_prog_init

164  % sets MAKETEX_MODE to /, so all subdirectories are searched.  See the manual.

165  PKFONTS = .;{$TEXMF/fonts;$VARTEXFONTS}/pk/{$MAKETEX_MODE;modeless}//

166  

167  % Similarly for the GF format, which only remains in existence because

168  % Metafont outputs it (and MF isn't going to change).

169  GFFONTS = .;$TEXMF/fonts/gf/$MAKETEX_MODE//

170  

171  % A backup for PKFONTS and GFFONTS. Not used for anything.

172  GLYPHFONTS = .;$TEXMF/fonts

173  

174  % For texfonts.map and included map files used by MakeTeXPK.

175  % See ftp://ftp.tug.org/tex/fontname.tar.gz.

176  TEXFONTMAPS = .;$TEXMF/fontname

177  

178  % BibTeX bibliographies and style files.

179  BIBINPUTS = .;$TEXMF/bibtex/bib//

180  BSTINPUTS = .;$TEXMF/bibtex/bst//

181  

182  % MFT style files.

183  MFTINPUTS = .;$TEXMF/mft//

184  

185  % PostScript headers, prologues (.pro), encodings (.enc) and fonts.

186  TEXPSHEADERS = .;$TEXMF/dvips//;$TEXMF/pdftex//;$TEXMF/fonts/type1//

187  

188  % PostScript Type 1 outline fonts.

189  T1FONTS = .;$TEXMF/fonts/type1//;$TEXMF/dvips//

190  

191  % TrueType fonts

192  TTFONTS = .;$TEXMF/fonts/truetype//

193  

194  % Type 42 outline fonts.

195  T42FONTS = .;$TEXMF/fonts/type42//

196  

197  % PostScript AFM metric files.

198  AFMFONTS = .;$TEXMF/fonts/afm//

199  

200  % Dvips' config.* files (this name should not start with `TEX'!).

201  TEXCONFIG = .;$TEXMF/dvips//

202  

203  % Makeindex style (.ist) files.

204  INDEXSTYLE = .;$TEXMF/makeindex//

205  

206  % Used by DMP (ditroff-to-mpx), called by makempx -troff.

207  TRFONTS = /usr/lib/font/devpost

208  MPSUPPORT = .;$TEXMF/metapost/support

209  

210  % For xdvi to find mime.types and .mailcap, if they do not exist in

211  % $HOME.  These are single directories, not paths.

212  % (But the default mime.types, at least, may well suffice.)

213  MIMELIBDIR = $TEXMFMAIN/etc

214  MAILCAPLIBDIR = $TEXMFMAIN/etc

215  

216  XDVIINPUTS=.;$TEXMF/{xdvi,web2c}

217  

218  TEX4HTINPUTS=.;$TEXMF/tex4ht//

219  

220  % TeX documentation and source files, for use with kpsewhich.

221  TEXDOCS = .;$TEXMF/doc//

222  TEXSOURCES = .;$TEXMF/source//

223  

224  % Omega-related fonts and other files.

225  OFMFONTS = .;{$TEXMF/fonts;$VARTEXFONTS}/{ofm;tfm}//;$TFMFONTS

226  OPLFONTS = .;{$TEXMF/fonts;$VARTEXFONTS}/opl//

227  OVFFONTS = .;{$TEXMF/fonts;$VARTEXFONTS}/ovf//

228  OVPFONTS = .;{$TEXMF/fonts;$VARTEXFONTS}/ovp//

229  OTPINPUTS = .;$TEXMF/omega/otp//

230  OCPINPUTS = .;$TEXMF/omega/ocp//

231  

232  % Where the support for the mktex scripts is found.  A single directory,

233  % not a path.

234  MKTEXSCRIPT = $TEXMFMAIN/web2c

235  

236  %% The mktex* scripts rely on KPSE_DOT. Do not change it.

237  KPSE_DOT = .

238  

239  % This definition isn't used from this .cnf file itself (that would be

240  % paradoxical), but the compile-time default in paths.h is built from it.

241  % The SELFAUTO* variables are set automatically from the location of

242  % argv[0], in kpse_set_progname.

243  %

244  % About the /. construction;

245  % 1) if the variable is undefined, we'd otherwise have an empty path

246  %    element in the compile-time path.  This is not meaningful.

247  % 2) if we used /$VARIABLE, we'd end up with // if VARIABLE is defined,

248  %    which would search the entire world.

249  %

250  % The TETEXDIR stuff isn't likely to relevant unless you're using teTeX,

251  % but it doesn't hurt.

252  TEXMFCNF = .:{$SELFAUTOLOC:$SELFAUTODIR:$SELFAUTOPARENT}

253       {:{/share:}/texmf/web2c}:/.$TETEXDIR:/.$TEXMF/web2c:$TEXMF/web2c

254  

255  %  Part 2; Non-path options.

256  

257  % Write .log/.dvi/etc. files here, if the current directory is unwritable.

258  % TEXMFOUTPUT = /tmp

259  

260  % If a dynamic file creation fails, log the command to this file, in

261  % either the current directory or TEXMFOUTPUT.  Set to the

262  % empty string or  0  to avoid logging.

263  MISSFONT_LOG = missfont.log

264  

265  % Set to a colon-separated list of words specifying warnings to suppress.

266  % To suppress everything, use TEX_HUSH = all; this is equivalent to

267  % TEX_HUSH = checksum;lostchar;readable;special

268  TEX_HUSH = none

269  

270  % Enable system commands via \write18{...}?

271  shell_escape = f

272  

273  % Allow TeX \openout on filenames starting with `.' (e.g., .rhosts)?

274  % a (any)        : any file can be opened.

275  % r (restricted) : disallow opening "dotfiles".

276  % p (paranoid)   : as 'r' and disallow going to parent directories, and

277  %                  restrict absolute paths to be under $TEXMFOUTPUT.

278  openout_any = p

279  

280  % Enable the mktex... scripts by default?  These must be set to 0 or 1.

281  % Particular programs can and do override these settings, for example

282  % dvips's -M option.  Your first chance to specify whether the scripts

283  % are invoked by default is at configure time.

284  %

285  % These values are ignored if the script names are changed; e.g., if you

286  % set DVIPSMAKEPK to `foo', what counts is the value of the environment

287  % variable/config value `FOO', not the `MKTEXPK' value.

288  %

289  % MKTEXTEX = 0

290  % MKTEXPK = 0

291  % MKTEXMF = 0

292  % MKTEXTFM = 0

293  

294  % What MetaPost runs to make MPX files.  This is passed an option -troff

295  % if MP is in troff mode.  Set to `0' to disable this feature.

296  MPXCOMMAND = makempx

297  

298  %  Part 3; Array and other sizes for TeX (and Metafont and MetaPost).

299  %

300  % If you want to change some of these sizes only for a certain TeX

301  % variant, the usual dot notation works, e.g.,

302  % main_memory.hugetex = 20000000

303  %

304  % If a change here appears to be ignored, try redumping the format file.

305  

306  % Memory. Must be less than 8,000,000.

307  %

308  % main_memory is relevant only to initex, extra_mem_* only to non-ini.

309  % Thus, have to redump the .fmt file after changing main_memory; to add

310  % to existing fmt files, increase the other. (To get an idea of how

311  % much, try \tracingstats=2 in your TeX source file;

312  % web2c/tests/memtest.tex might also be interesting.)

313  %

314  % To increase space for boxes (as might be needed by, e.g., PiCTeX),

315  % increase extra_mem_bot.

316  %

317  % max length of input lines or control sequence names

318  buf_size = 50000

319  buf_size.context = 50000

320  %

321  % extra low memory for boxes, glue, breakpoints, etc.

322  extra_mem_bot = 0

323  %

324  % extra high memory for chars, tokens, etc.

325  extra_mem_top = 0

326  %

327  % Total number of fonts. Must be >= 50 and <= 2000 (without tex.ch changes).

328  font_max = 1000

329  %

330  % Words of font info for TeX (total size of all TFM files, approximately).

331  font_mem_size = 200000

332  font_mem_size.hugetex = 400000

333  %

334  % Extra space for the hash table of control sequences

335  hash_extra = 0

336  hash_extra.context = 15000

337  hash_extra.hugetex = 10000

338  hash_extra.pdftex = 10000

339  hash_extra.pdflatex = 10000

340  %

341  % number of hyphenation exceptions, >610 and <32767.

342  hyph_size = 1000

343  %

344  % words of memory available; also applies to mf&mp

345  main_memory = 263000

346  main_memory.context = 1100000

347  main_memory.hugetex = 1100000

348  %

349  % simultaneous input files and error insertions

350  max_in_open = 15

351  %

352  % max number of strings

353  max_strings = 15000

354  max_strings.context = 55000

355  max_strings.hugetex = 55000

356  max_strings.pdftex = 20000

357  max_strings.pdflatex = 20000

358  %

359  % simultaneous semantic levels (e.g., groups)

360  nest_size = 100

361  nest_size.context = 500

362  %

363  % simultaneous macro parameters

364  param_size = 500

365  param_size.context = 1500

366  %

367  % min pool space left after loading .fmt

368  pool_free = 5000

369  pool_free.context = 47500

370  %

371  % Max number of characters in all strings

372  pool_size = 125000

373  pool_size.context = 500000

374  pool_size.hugetex = 500000

375  pool_size.pdftex = 200000

376  pool_size.pdflatex = 200000

377  %

378  % for saving values outside current group

379  save_size = 4000

380  save_size.context = 5000

381  save_size.hugetex = 30000

382  %

383  % simultaneous input sources

384  stack_size = 300

385  stack_size.context = 1500

386  %

387  % Minimum pool space after TeX/MP's own strings;

388  % must be at least 25000 less than pool_size,

389  % but doesn't need to be nearly that large.

390  string_vacancies = 25000

391  string_vacancies.hugetex = 45000

392  string_vacancies.context = 45000

393  %

394  % Hyphenation trie. As distributed, the maximum is 65535; this should

395  % work unless `unsigned short' is not supported or is smaller than 16

396  % bits. This value should suffice for UK English, US English, French,

397  % and German (for example). To increase, you must change

398  % `ssup_trie_opcode' and `ssup_trie_size' in tex.ch (and rebuild TeX);

399  % the trie will then consume four bytes per entry, instead of two.

400  %

401  % US English, German, and Portuguese; 30000.

402  % German; 14000.

403  % US English; 10000.

404  %

405  trie_size = 64000

406  

407  % for Omega

408  ocp_buf_size = 20000 % character buffers for ocp filters.

409  ocp_stack_size = 10000 % stacks for ocp computations.

410  ocp_list_size = 1000 % control for multiplce ocps.

411  

412  % These work best if they are the same as the I/O buffer size, but it

413  % doesn't matter much. Must be a multiple of 8.

414  dvi_buf_size = 16384 % TeX

415  gf_buf_size = 16384 % MF

416  

417  % It's probably inadvisable to change these. At any rate, we must have;

418  % 45 < error_line < 255;

419  % 30 < half_error_line < error_line - 15;

420  % 60 <= max_print_line;

421  % These apply to Metafont and MetaPost as well.

422  error_line = 79

423  half_error_line = 50

424  max_print_line = 79