39 releases (6 breaking)
0.7.2 | Apr 29, 2023 |
---|---|
0.6.1 | Mar 23, 2023 |
0.3.3 | Dec 6, 2022 |
0.3.0 | Nov 30, 2022 |
0.1.0 | Jul 19, 2022 |
#661 in Text processing
Used in 4 crates
69KB
2K
SLoC
TexCore
The TexCore library is under the MIT License
TexCore is a library that allows a developer to write LaTeX
using native Rust
types. We also provide functions
to compile the code using a Rust built LaTeX compiler, tectonic
.
To add to your project:
[dependencies]
texcore = "0.7"
The Compile Feature
To allow this library to be able to run on Windows systems, I have made the tectonic
dependency optional and only
available under the compile
feature. This means that the function, texcore::compile()
and ElementList::compile()
are hidden under this feature.
[dependencies]
texcore = { version = "0.7", features = ["compile"] }
The TexCreate Template Feature
To allow easier development with the TexCreate project, I have decided to add the texcreate-templates
portion under
the texcreate_template
feature.
texcore = { version = "0.7", features = ["texcreate_template"] }
The Async Feature
This feature provides asynchronous options using the type, TexAsync
which isn't a trait but a generic struct that
requires T
to implement Tex
. The reason of not using a trait is that asynchronous methods in a trait isn't stable
yet.
Most importantly we get the following functions from the future
module:
async_latex_string<T: Tex>(t: &T) -> impl Future<Output=String> + Send
Element<Any>::async_latex_string()
ElementList::async_latex_string()
ElementList::async_latex_split_string()
ElementList::async_write()
ElementList::async_split_write()
Advantages of using the asynchronous writing operations is because they are done so concurrently, and in terms of
async_split_write()
, the task of writing to each file is done in parallel.
texcore = { version = "0.7", features = ["async"] }
The Parallel Feature
This features utilizes the rayon
crate to allow ElementList
to contain the following functions:
ElementList::par_write()
ElementList::par_write_split()
ElementList::par_iter()
ElementList::par_iter_mut()
texcore = { version = "0.7", features = ["parallel"] }
The Full Feature
To enable all features seen above , you may use the full
feature.
texcore = { version = "0.7", features = ["full"] }
Added Modules in 0.7
- The
bundle
module provides types to easily add into your document:- Add images using the
graphicx
package under the module,texcore::bundle::graphicx
- Add mathematical symbols or equations under the module,
texcore::bundle::math
- Add images using the
- Be able to add extra parameters to elements using the
modify_element()
function- This is under the
texcore::extra_ops
module
- This is under the
Read documentation here
Dependencies
~1–16MB
~239K SLoC