Tectonic: a modernized, self-contained TeX/LaTeX engine
users.rust-lang.org
users.rust-lang.org
But what about my overfull hboxes???
d o c u m e n t s w i t h h u g e s p a c e s.> Number of underfull warnings : 5 > Number of overfull warnings : 0 > Number of undefined references : 0 > Number of missing citations : 0
We've come a long way since the original literate TeX program.
Yes, it is massive and complex.
Fortunately, the core engine is essentially self-contained. Almost all of the things that make the TeX frustrating come from the UX, or the difficulty of adding new capabilities that call for somewhat more modern C code. By compiling all of the C with a Rust wrapper, we get a single binary out in the end, plus the ability to extend the engine in ways that were just not feasible before.
Revamping the core engine code from C to Rust would be nice, because it could be cleaner and more comprehensible, but it actually doesn't buy you anything in terms of the UX.
Edit: also, I didn't realize this when I made the decision to fork XeTeX, but LuaTeX has shifted to a C implementation that is more or less detached from the original WEB code.
Which is ultimately frustrating if you ever try to go back to an old document, and realize you don't have the exact markup engine that you used back then, so that you can't actually rerender it.
Now, to be fair, often this is ok. In particular, you might not care about how it rendered before, and a minimal markdown is fine.
However, if you do care about presentation, it is maddening.
If you who want something 100% compatible with TeX, you already have it, and it's not clear why you'd care about the implementation language.
Seriously, even if you are not familiar with Pascal, it is not as unapproachable as could be imagined.
This looks great, although I do wonder to what degree the automated downloading of dependencies limits off-line work. I'm not sure how widespread this is, but one of my biggest productivity hacks is writing with the wifi turned off (I go for pencil and paper for first drafts if possible, but editing, figures and references all require the computer).
— The author (https://www.reddit.com/r/rust/comments/6e2x6m/tectonic_a_com...)
XeTeX and LuaTeX deal with Unicode properly and can use normal fonts. Both of these output PDF files directly, like PDFTeX, but have the above advantages over it (+more). LuaTeX, as the name suggests, embeds a Lua interpreter which enables far more sophisticated and performant programmatical things (at the cost of compatibility). XeTeX can cope with legacy Postscript things like PSTricks (ick!) by generating the Postscript and automatically converting it, but that's a slow process, and I often rewrite PSTricks pictures in TikZ or Asymptote when I have to deal with them.
I generally use XeTeX, or LuaTeX when I'm okay with sacrificing compatibility for programmability.
When I wrote my diploma thesis in 2010, I was given the thesis template that the whole working group were using. It was a steaming pile of hacks that had accumulated over the years, with the recommended compilation method being latex -> dvips -> ps2pdf, and only using graphics in EPS format (IIRC). And people were still writing `\"{a}` instead of `ä`. I replaced it with a new template for use with pdflatex that took advantage of such new-fangled stuff as inputenc, cmap, pdfx and hyperref, and committed it together with a long rant of a README that started with something along the lines of "When I looked on my watch, it was the fucking 21st century."
It takes me to a "subscription required" page for an article titled "What's new in gnuplot 5.2"
Only downside is its cloud based so I can't be productive on an airplane.
When I need that with a LaTeX document, I have vim with the TeX sources open on one half on the screen, and mupdf showing the compiled PDF on the other half, and a terminal in the background is running
while inotifywait *.tex *.bib; do
sleep 0.2
pdflatex main && killall -HUP mupdf
done
The sleep ensures that vim is finished writing the file before pdflatex runs. pdflatex is sometimes substituted for make or latexmk or whatever. SIGHUP makes mupdf reload the PDF. (If you're using e.g. Okular, it will pick up the changed PDF automatically, so that step can be skipped.)(My intention is not to belittle cloud solutions, although maybe a little. :) Just to show how you can implement the real-time-preview feature with a very small shell script.)
inotifywait -e move_self,close_write *.tex *.bib
and drop the sleep. This also means you will not needlessly recompile the pdf if you re-open the source file in your editor.Side note: Only one of move_self and close_write is actually required, depending on your editor. Some editors (e.g. vim, emacs), will write the modified content to a separate file, then rename it to the real file name (in order to make it atomic) => move_self. Others will overwrite the file in-place (e.g. gedit, nano) => close_write.
I also have a makefile to intelligently include custom macro files and run multiple passes when needed.
Couldn't be happier.
https://www.overleaf.com/blog/195-new-collaborate-online-and...
Other downside is that in-browser text editing sucks compared to what you can do (e.g.) with vim.
Edit: Also Sharelatex leaves me wanting for more editing features. Most commonly, autocompletion for reference-tags based on labels in project. Kile does this perfectly, but it's a hassle to get it running everywhere.
Soon ;)
Looks like OP's project started around November. I believe that's around when CoreOS Tectonic was released as well.
Does XeTeX support microtype these days? It is important if you want "best-in-the-world output" to PDF.
The hope is that the easier development process will make it easier to add fancy features like microtypography ... but for me the real prize is HTML output that doesn't suck, so that's going to be the focus of my work.
It is a registered "computer software" trademark as well:
http://tmsearch.uspto.gov/bin/showfield?f=doc&state=4805:npp...
(USPTO trademark search doesn’t really use URLs; it just encodes the transient server state in what passes for a URL, so it expires in a very short time. That’s why your link is dead.)
https://en.wikipedia.org/wiki/TeX#Pronunciation_and_spelling
(Of course, "textonic" is also the name of another open source project...)
This means that the name should be changed voluntarily or CoreOS will be obligated to ask them to change it.
Word Mark TECTONIC
Goods and Services IC 009. US 021 023 026 036 038. G & S: Computer software, namely, software for developing, managing, updating, and maintaining online server instances and clusters hosted by third parties; computer operating system software; computer operating system software for distributed systems. FIRST USE: 20150406. FIRST USE IN COMMERCE: 20150406
IC 038. US 100 101 104. G & S: Providing access to hosted computer operating systems and computer applications through the Internet; Peer-to- peer network computer services, namely, electronic transmission of audio, video and other data and documents among computers. FIRST USE: 20150406. FIRST USE IN COMMERCE: 20150406
Standard Characters Claimed
Mark Drawing Code (4) STANDARD CHARACTER MARK
Serial Number 86560796
Filing Date March 11, 2015
Current Basis 1A
Original Filing Basis 1B
Published for Opposition December 22, 2015
Registration Number 5013800
Registration Date August 2, 2016
Owner (REGISTRANT) CoreOS, Inc. CORPORATION DELAWARE 3043 Mission Stret San Francisco CALIFORNIA 94110
Attorney of Record Brian R. Coleman
Type of Mark TRADEMARK. SERVICE MARK
Register PRINCIPAL
Live/Dead Indicator LIVE
Courtesy of http://tmsearch.uspto.gov TESS search for Serial 86560796That being said, I wouldn't say that the `latexmk`-type functionality is the thing that is going to make Tectonic unique. Hopefully that will be the HTML output, but I have to implement that first ...
> The name of the project is “Tectonic,” spelled and pronounced like a regular word because it is one. Enough with the cutesy obscurantism. In cases where the name might lead to ambiguities, it should be expanded to “Tectonic typesetting.”
> If you’re feeling expansive, you can interpret the name as suggesting a large change in the TeX world. Or you can think of it as suggesting a salubrious offering for weary TeX users. Either way, the root of the word does go back to the ancient Greek τέκτων, ”carpenter,” which Donald Knuth — the creator of TeX and a devout Christian — might appreciate.
- Downloads resource files from the internet on-the-fly, preventing the need for a massive install tree of TeX files
- Automatically and intelligently loops TeX and BibTeX to produce finished documents repeatably
- Has a command-line program that is quiet and never stops to ask for input
My understanding is that both MikTex for Windows, as well as Texlive for Linux, allow users to install packages on the fly. To compile a file with BibTex, a user just needs to run TeX twice. And finally, TeX will only ask for a user input if there is an error.
Can a variant of an already somewhat fringe piece of software really become a killer app?
Anecdotally: when giving a presentation last week, the event organiser was surprised that my slides were HTML (from pandoc; I'm an ex-Web dev), as she'd never seen such a thing. Everyone else used beamer (TeX slideshow package).
Simply awesome.
Anecdotally: in the 20+ years I've been out of school I've sat through hundreds of presentations. I don't think any of them were created with TeX (unless TeX is the underlying technology of PowerPoint, Keynote, Prezi, Impress, etc...).
IMO the ways in which it is still special are: (1) good math typography; (2) integration with automated bibliography systems; (3) easily generatable by other tools. (Lots of things that eventually turn into HTML hit #3, but not lots of things that eventually turn into really good-looking PDFs do.)
These points certainly aren't important in all cases ... but for what it's worth, arxiv.org hosts more than a million scientific papers, the vast majority of which are written in TeX.
One of the most significant advantages it has over other systems is sensible defaults. Everything from the choice of default fonts down to the margin sizes are chosen to look well enough from the beginning.