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
// src/lib.rs -- main module file for the Tectonic library.
// Copyright 2016-2017 the Tectonic Project
// Licensed under the MIT License.
// "error_chain can recurse deeply"
//! Tectonic is a complete
//! [TeX](https://www.tug.org/)/[LaTeX](https://www.latex-project.org/) engine
//! converted into a standalone library. It is derived from the
//! [XeTeX](http://xetex.sourceforge.net/) variant of TeX and uses the support
//! files packages by the [TeX Live](https://www.tug.org/texlive/) project.
//! Tectonic would not be possible without the hard work that has gone into
//! these projects.
//!
//! Because Tectonic is based on the XeTeX engine, it can take advantage of
//! the features of modern fonts (TrueType, OpenType, etc.), outputs directly
//! to the PDF file format, and supports Unicode inputs. Tectonic differs from
//! other TeX engines in the following ways:
//!
//! - Dependencies on environment variables and configuration files have been
//! eliminated.
//! - All I/O is routed through pluggable backends. Support data can be fetched
//! from a single “bundle” file, and the engine’s (copious) output can be
//! hidden or postprocessed.
//! - The command-line frontend, `tectonic`, has a modernized user interface that
//! never asks for user input.
//! - The frontend is just a thin shim over the Tectonic Rust crate, so that
//! the full engine can be embedded anywhere you can run Rust code.
//!
//! Rust API documentation for Tectonic is currently very incomplete. As a
//! stopgap, please see [the source to the CLI
//! frontend](https://github.com/tectonic-typesetting/tectonic/blob/master/src/cli_driver.rs)
//! for a demonstration of how to run the engine.
extern crate app_dirs;
extern crate crypto;
extern crate error_chain;
extern crate flate2;
extern crate hyper;
extern crate libc;
extern crate md5; // TODO: eliminate in favor of just crypto
extern crate mkstemp;
extern crate serde_derive;
extern crate serde;
extern crate termcolor;
extern crate toml;
extern crate zip;
pub use ;
pub use XdvipdfmxEngine;
pub use BibtexEngine;
pub use ;
const APP_INFO: AppInfo = AppInfo ;