Skip to content

Commit 4dd8c21

Browse files
author
cranko
committed
Release commit created with Cranko.
+++ cranko-release-info-v1 [[projects]] qnames = ["tectonic_xdv", "cargo"] version = "0.2.1" age = 1 [[projects]] qnames = ["tectonic_errors", "cargo"] version = "0.2.0" age = 31 [[projects]] qnames = ["tectonic_xetex_format", "cargo"] version = "0.3.0" age = 2 [[projects]] qnames = ["tectonic_status_base", "cargo"] version = "0.2.0" age = 25 [[projects]] qnames = ["tectonic_io_base", "cargo"] version = "0.4.1" age = 2 [[projects]] qnames = ["tectonic_geturl", "cargo"] version = "0.3.1" age = 10 [[projects]] qnames = ["tectonic_docmodel", "cargo"] version = "0.2.0" age = 2 [[projects]] qnames = ["tectonic_dep_support", "cargo"] version = "0.1.0" age = 35 [[projects]] qnames = ["tectonic_cfg_support", "cargo"] version = "0.1.4" age = 10 [[projects]] qnames = ["tectonic_bundles", "cargo"] version = "0.3.0" age = 5 [[projects]] qnames = ["tectonic_bridge_icu", "cargo"] version = "0.2.0" age = 31 [[projects]] qnames = ["tectonic_bridge_graphite2", "cargo"] version = "0.2.1" age = 13 [[projects]] qnames = ["tectonic_bridge_harfbuzz", "cargo"] version = "0.2.7" age = 1 [[projects]] qnames = ["tectonic_bridge_freetype2", "cargo"] version = "0.2.0" age = 31 [[projects]] qnames = ["tectonic_bridge_flate", "cargo"] version = "0.1.6" age = 2 [[projects]] qnames = ["tectonic_bridge_core", "cargo"] version = "0.3.1" age = 2 [[projects]] qnames = ["tectonic_xetex_layout", "cargo"] version = "0.2.1" age = 2 [[projects]] qnames = ["tectonic_pdf_io", "cargo"] version = "0.4.0" age = 0 [[projects]] qnames = ["tectonic_engine_xetex", "cargo"] version = "0.4.1" age = 1 [[projects]] qnames = ["tectonic_engine_xdvipdfmx", "cargo"] version = "0.4.0" age = 0 [[projects]] qnames = ["tectonic_engine_spx2html", "cargo"] version = "0.2.1" age = 0 [[projects]] qnames = ["tectonic_engine_bibtex", "cargo"] version = "0.1.4" age = 2 [[projects]] qnames = ["tectonic", "cargo"] version = "0.12.0" age = 0 +++
2 parents d752d29 + b580bc3 commit 4dd8c21

19 files changed

Lines changed: 369 additions & 57 deletions

File tree

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,40 @@
1+
# tectonic 0.12.0 (2022-10-27)
2+
3+
This release has only a few code updates:
4+
5+
- Partial support for the `dvipdfmx:config` special has been added (#953,
6+
@vlasakm). This should fix some aspects of PDF generation, including named
7+
anchors created by `hyperref`. Other fixes might help with the `attachfile`
8+
package, although that is awaiting further confirmation.
9+
- A dumb crash was fixed when attempting to create HTML output with an input
10+
that has not been set up for the Tectonic HTML compilation framework (#955,
11+
@pkgw). Note, however, that generic documents will still fail to build in HTML
12+
mode. The program just won't crash now. As of this release, the *only* example
13+
of working HTML output from Tectonic is the [tt-weave] system (see below).
14+
15+
More noteworthy are several non-code improvements!
16+
17+
- A preliminary official build for the Apple Metal platform
18+
(`aarch64-apple-darwin`) is now available (#959, @pkgw). Due to lack of
19+
support in the continuous integration system we can't test the build
20+
thoroughly, but it appears to work.
21+
- @KaranAhlawat contributed a [how-to guide for using Tectonic in Emacs AucTeX][auctex].
22+
- @mnrvwl has done a fantastic job reviewing our GitHub issues, gathering more
23+
information when needed, and closing out ones that have been solved.
24+
- @pkgw has published *[XeTeX: A Pseudoprogram][xap]*, a digital book that
25+
derives from Knuth's *[TeX: The Program][ttp]*. This book is generated from
26+
the reference XeTeX code underlaying Tectonic’s typesetting using a new
27+
processor called [tt-weave]. See [the book’s preface][xap] for more
28+
information.
29+
30+
Thank you to all of our contributors!
31+
32+
[auctex]: https://tectonic-typesetting.github.io/book/latest/howto/auctex-setup/
33+
[tt-weave]: https://github.com/tectonic-typesetting/tt-weave/
34+
[xap]: https://stacks.fullyjustified.net/xap/2022.0/
35+
[ttp]: https://www.worldcat.org/title/876762639
36+
37+
138
# tectonic 0.11.0 (2022-10-04)
239

340
- Many updates to the experimental, unstable `spx2html` engine for creating HTML

Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
[package]
66
name = "tectonic"
7-
version = "0.11.0"
7+
version = "0.12.0"
88
authors = ["Peter Williams <peter@newton.cx>"]
99
description = """
1010
A modernized, complete, embeddable TeX/LaTeX engine. Tectonic is forked from the XeTeX
@@ -120,7 +120,7 @@ tokio = "0.1.22"
120120

121121
[package.metadata.vcpkg]
122122
git = "https://github.com/microsoft/vcpkg"
123-
rev = "01b29f6d8212bc845da64773b18665d682f5ab66"
123+
rev = "1be5a98d090b1d2beeb63a48ba800fbf006e8aca"
124124

125125
[package.metadata.vcpkg.target]
126126
x86_64-apple-darwin = { install = ["freetype","harfbuzz[icu,graphite2]"] }

crates/engine_spx2html/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# tectonic_engine_spx2html 0.2.1 (2022-10-27)
2+
3+
- Avoid a dumb crash when attempting to compile documents that have not been
4+
set up for the Tectonic HTML compilation framework (#955, @pkgw). Note,
5+
however, that generic documents will still fail to build in HTML mode.
6+
7+
18
# tectonic_engine_spx2html 0.2.0 (2022-10-04)
29

310
- Many updates for [tt-weave] (#941, @pkgw). This crate is still highly unstable

crates/engine_spx2html/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
[package]
77
name = "tectonic_engine_spx2html"
8-
version = "0.2.0"
8+
version = "0.2.1"
99
authors = ["Peter Williams <peter@newton.cx>"]
1010
description = """
1111
The Tectonic engine that converts SPX output to HTML.

crates/engine_spx2html/src/lib.rs

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1657,16 +1657,27 @@ impl EmittingState {
16571657
)
16581658
};
16591659

1660-
let cur_fam = self.font_families.get(&cur_ffid).unwrap();
1660+
let (path, desired_af) = if let Some(cur_fam) = self.font_families.get(&cur_ffid) {
1661+
// Already set up for the right font? If so, great!
1662+
if cur_fam.relative_id_to_font_num(cur_af) == fnum {
1663+
return;
1664+
}
16611665

1662-
// Already set up for the right font? If so, great!
1663-
if cur_fam.relative_id_to_font_num(cur_af) == fnum {
1664-
return;
1665-
}
1666+
// No. Figure out what we need to do.
1667+
let desired_af = cur_fam.font_num_to_relative_id(fnum);
1668+
(cur_fam.path_to_new_font(cur_af, desired_af), desired_af)
1669+
} else {
1670+
// We don't seem to be in a defined "family". So we have to
1671+
// select it explicitly.
1672+
let path = PathToNewFont {
1673+
close_all: true,
1674+
select_explicitly: true,
1675+
..Default::default()
1676+
};
16661677

1667-
// No. Figure out what we need to do.
1668-
let desired_af = cur_fam.font_num_to_relative_id(fnum);
1669-
let path = cur_fam.path_to_new_font(cur_af, desired_af);
1678+
let desired_af = FamilyRelativeFontId::Other(fnum);
1679+
(path, desired_af)
1680+
};
16701681

16711682
if path.close_one_and_retry {
16721683
if cur_is_autofont {
@@ -1969,7 +1980,13 @@ impl EmittingState {
19691980
}
19701981

19711982
// Read in the template. Let's not cache it, in case someone wants to do
1972-
// something fancy with rewriting it.
1983+
// something fancy with rewriting it. If that setting is empty, probably
1984+
// the user is compiling the document in HTML mode without all of the
1985+
// TeX infrastructure that Tectonic needs to make it work.
1986+
1987+
if self.next_template_path.is_empty() {
1988+
bail!("need to emit HTML content but no template has been specified; is your document HTML-compatible?");
1989+
}
19731990

19741991
let mut ih = atry!(
19751992
common.hooks.io().input_open_name(&self.next_template_path, common.status).must_exist();

crates/engine_xdvipdfmx/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
# tectonic_engine_xdvipdfmx 0.4.0 (2022-10-27)
2+
3+
- Use new support in the `pdf_io` backend to handle the `dvipdfmx:config`
4+
special (#904, #953, @vlasakm). This should fix some aspects of PDF generation,
5+
including named anchors created by `hyperref`.
6+
7+
18
# tectonic_engine_xdvipdfmx 0.3.0 (2022-10-03)
29

310
- Synchronize with TeXLive 2022.0 (#936, @pkgw). There are no changes in this

crates/engine_xdvipdfmx/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# Copyright 2021 the Tectonic Project
1+
# Copyright 2021-2022 the Tectonic Project
22
# Licensed under the MIT License.
33

44
# See README.md for discussion of features (or lack thereof) in this crate.
55

66
[package]
77
name = "tectonic_engine_xdvipdfmx"
8-
version = "0.3.0"
8+
version = "0.4.0"
99
authors = ["Peter Williams <peter@newton.cx>"]
1010
description = """
1111
The `xdvipdfmx` program as a reusable crate.
@@ -22,12 +22,12 @@ links = "tectonic_engine_xdvipdfmx"
2222
libc = "^0.2"
2323
tectonic_bridge_core = { path = "../bridge_core", version =">=0.1.0,<1"}
2424
tectonic_errors = { path = "../errors", version =">=0.2.0,<1"}
25-
tectonic_pdf_io = { path = "../pdf_io", version =">=0.2.0,<1"}
25+
tectonic_pdf_io = { path = "../pdf_io", version =">=0.4.0,<1"}
2626

2727
[build-dependencies]
2828
cc = "^1.0.66"
2929

3030
[package.metadata.internal_dep_versions]
3131
tectonic_bridge_core = "thiscommit:2021-01-17:fohCh1sh"
3232
tectonic_errors = "5c9ba661edf5ef669f24f9904f99cca369d999e7"
33-
tectonic_pdf_io = "thiscommit:2022-03-29:6nizWic"
33+
tectonic_pdf_io = "thiscommit:2022-10-21:pkYKcMI"

crates/engine_xdvipdfmx/xdvipdfmx/dvipdfmx.c

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,14 @@ typedef struct page_range
6666
int last;
6767
} PageRange;
6868

69+
/* Compatibility options */
6970
#define OPT_TPIC_TRANSPARENT_FILL (1 << 1)
7071
#define OPT_CIDFONT_FIXEDPITCH (1 << 2)
7172
#define OPT_FONTMAP_FIRST_MATCH (1 << 3)
7273
#define OPT_PDFDOC_NO_DEST_REMOVE (1 << 4)
7374
#define OPT_PDFOBJ_NO_PREDICTOR (1 << 5)
7475
#define OPT_PDFOBJ_NO_OBJSTM (1 << 6)
7576

76-
static int pdf_version_major = 1;
77-
static int pdf_version_minor = 5;
78-
static int compression_level = 9;
79-
80-
static double annot_grow_x = 0.0;
81-
static double annot_grow_y = 0.0;
8277
static char ignore_colors = 0;
8378
static int bookmark_open = 0;
8479
static double mag = 1.0;
@@ -248,10 +243,18 @@ do_dvi_pages (void)
248243
xo = x_offset; yo = y_offset;
249244
dvi_scan_specials(page_no,
250245
&w, &h, &xo, &yo, &lm,
246+
/* No PDF version */
247+
NULL, NULL,
248+
/* No compression */
249+
NULL,
250+
/* No annotation grow */
251+
NULL, NULL,
251252
/* No need for encryption options */
252-
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
253+
NULL, NULL, NULL, NULL, NULL,
253254
/* No trailer IDs */
254-
NULL, NULL, NULL);
255+
NULL, NULL, NULL,
256+
/* No opt_flags */
257+
NULL);
255258
if (lm != landscape_mode) { /* already swapped for the first page */
256259
SWAP(w, h);
257260
landscape_mode = lm;
@@ -336,6 +339,11 @@ dvipdfmx_main (
336339
int has_id = 0;
337340
unsigned char id1[16], id2[16];
338341
struct pdf_setting settings;
342+
int pdf_version_major = 1;
343+
int pdf_version_minor = 5;
344+
int compression_level = 9;
345+
double annot_grow_x = 0;
346+
double annot_grow_y = 0;
339347

340348
assert(pdf_filename);
341349
assert(dvi_filename);
@@ -369,8 +377,7 @@ dvipdfmx_main (
369377
* code bits. */
370378

371379
select_paper(paperspec);
372-
annot_grow_x = 0;
373-
annot_grow_y = 0;
380+
374381
bookmark_open = 0;
375382
key_bits = 40;
376383
permission = 0x003C;
@@ -397,8 +404,10 @@ dvipdfmx_main (
397404
&paper_width, &paper_height,
398405
&x_offset, &y_offset, &landscape_mode,
399406
&pdf_version_major, &pdf_version_minor,
407+
&compression_level,
408+
&annot_grow_x, &annot_grow_y,
400409
&do_encryption, &key_bits, &permission, oplain, uplain,
401-
&has_id, id1, id2);
410+
&has_id, id1, id2, &opt_flags);
402411
}
403412

404413
/*kpse_init_prog("", font_dpi, NULL, NULL);
@@ -518,4 +527,4 @@ tt_engine_xdvipdfmx_main(
518527

519528
ttbc_global_engine_exit();
520529
return rv;
521-
}
530+
}

crates/pdf_io/CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
# tectonic_pdf_io 0.4.0 (2022-10-27)
2+
3+
- Make it possible to semi-properly handle the `dvipdfmx:config` special (#904,
4+
#953, @vlasakm). This should fix some aspects of PDF generation, including
5+
named anchors created by `hyperref`.
6+
- Fix loading of image stream references (#935, #953, @vlasakm). This should
7+
help with the `attachfile` package although we are not sure if it is a
8+
complete fix.
9+
10+
111
# tectonic_pdf_io 0.3.0 (2022-10-03)
212

313
- Update for TeXLive 2022.0 (#936, @pkgw)! Mostly very minor changes, with the

0 commit comments

Comments
 (0)