In PDF/X-1a, a tagged gray JPEG that the Compression settings keep as
JPEG was decoded and written with Flate. It is now written with its
JPEG data unchanged, in DeviceGray without its profile.
A PNG or JPEG embedded as it is now has its gray or RGB profile checked
with valid_icc, like the images the recoder writes: a malformed profile
is left out, the JPEG keeping its JPEG data and the PNG decoded.
The Links panel menu gets Sort by Size beside Sort by Name, Kind and
Status, and links.list takes sort: "size". A row's size is the file size
Link Info shows: the file's size now, else the size the document keeps
of it. Rows without a size (embedded images, a missing file whose size
is not kept) come last, and equal sizes go by name. The size is read
only when sorting by it, and under automation read roots a file outside
them is not read.
Every catalog with Sort by Status gets a Sort by Size row; the Ukrainian
Sort by Status row, which read "Sort by:", now says "Sort by Status".
Create Sub-folders and Open Location after Export are check items that set
the settings the panel shares with Export for Screens, and the panel's
Export follows them. Create Sub-folders is checked as the dialog opens on
it: on for a document without export settings, and on for remembered
folders per row, format or item, which the panel's Export now uses too.
Format Settings... opens Export for Screens on the Assets tab showing the
first row's format settings.
assets.settings.set takes openLocation (kept in document.exportSettings,
not in presets), refuses a subfolders or openLocation value that is not
true, false or null, and with subfolders false given alone also ends a
remembered folder per format or item. Export for Screens reads remembered
empty folders as none, as an export does.
usvg copies the element a <use> shows, and every copy gets its own copy of
the declarations its style attribute and matching style sheet rules give
it. A chain of <use>s that doubles at each level made usvg build those
copies before the import's object limit was checked: a 101 kB file whose
rectangle has a 100 kB style took 4.7 GB at 14 levels, and one 100 kB
style sheet rule on 16,000 groups took 1.5 GB without any <use>. A plain
chain stopped at usvg's own 1,000,000-node limit with a parse error.
The import now measures, before usvg reads the SVG, how many elements it
expands to and how many bytes of style values those elements copy, each
element measured once and each <use> counted as one addition. References
follow usvg's rules: first element of an id, href before xlink:href, and
the self and back references usvg leaves out. An SVG past 999,999
elements (500,000 on the web) is refused as too large, a loop of <use>
references usvg would copy without end is refused too, and one past 64 MB
of copied style values is refused with the new SvgError::StylesTooLarge.
SVG images count toward the same 64 MB as the SVG showing them, an image
past either limit refuses the whole import, and an image that doesn't
decode does not count.
The progress-doc line for gray and RGB image profiles in PDF export now
states that PDF/X-1a, which allows no ICC-based color spaces, writes a
gray image with a gray profile in DeviceGray without the profile, and
converts RGB images to CMYK as before.
With a Type tool and exactly one character selected, the canvas shows up
to five of that character's alternate glyphs in a row beside it. A click
runs the command the Glyphs panel's double-click runs, as one undo step;
an arrow at the end opens the Glyphs panel on Alternates for Current
Selection when the character has more. Preferences > Type > Show
Character Alternates (showCharacterAlternates, on by default) turns the
row off.
An image or a gradient mesh with a visible Crop Marks effect, or with a
Vector Halftone effect that makes dots, is measured in a plot of the art's
bounds. A halftone that makes no dots, such as one past the effect's cell
limit, leaves the image out as before.