# odf files for arkandis fonts lack features in tex definitions

The Arkandis Digital Foundry publishes a variety of comprehensive font families, apparently expressing high artistic merit, under an open license.

Support in LaTeX through external packages has been submitted into CTAN.

For example, the `venturisadf` package has integrated the Venturis font family.

From the documentation for the CTAN package:

…condensed and standard-width Venturis regular and bold provide a choice of oldstyle and lining figures, upright and italic small capitals and alternate swash characters while the regular upright face also offers end-of-word swashes. All of these features are accessible in LaTeX through the included package files…

The same document shows examples of these features, including small capitals.

The CTAN index suggests, apparently incorrectly, that the package contains OTF representations of the fonts.

The greater discrepancy, however, is that the OTF representations available for general use directly from the foundry appear not to contain the `smcp` feature, as revealed by inspection through `otfinfo -f`. Indeed, when these files are used in XeLaTeX through the `fontspec` package, the small capitals are not displayed in blocks formatted using `\scshape`, and the engine warns about the appearance of the command.

The discrepancy is partly but inadequately resolved by a note, on the foundry’s site, seeming to indicate that most collections currently lack small-capital glyphs.

If the small-capital glyphs are seen in the LaTeX package, then the font collections must include them, and ideally general applications using OTF, including XeLaTeX, can use them.

From where are the small-capital glyphs being taken for the TeX font definitions? Can the glyphs also be used with the OTF files? If not, why?

• The small caps available with pdflatex seem indeed to be true small caps and not just scaled down capitals. I can't say what the source is, though. Oct 16 '19 at 22:30
• @egreg I can confirm that all Arkandis packages provided by me (including venturisadf) include only true small caps. The font designer does not support faked small caps and did not want TeX support packages to offer them. I support and respect this decision. If small caps are not available, an alternative shape is substituted (e.g. upright).
– cfr
Oct 17 '19 at 0:47
• In my packages, the small-caps glyphs and metrics are taken from the fonts from the foundry. There's nothing mysterious going on here.
– cfr
Oct 17 '19 at 0:48
• @cfr Ok, great, but it's mysterious to me because I can't find them. The OTF files don't show the `smcp` feature and XeLaTeX doesn't find the glyphs from those files. So my question seems to be how I, or the application, can find and use those glyphs.
– epl
Oct 17 '19 at 1:06
• @cfr On the author's site, first link in the post. Most of the fonts are found by following the menu Fonts / ADF Fonts. However, the fonts in this example (Venturis) are under Fonts / TUG Fonts, with the distribution file accessible from the ZIP icon on the right. (Direct link, in case needed.)
– epl
Oct 17 '19 at 1:23

LaTeX support packages authored by me include small-caps if, and only if, small-caps were available in the fonts at the time the packages were created.

venturisadf is a complicated case, because some glyphs are taken from different fonts roughly in accordance with the stated intentions of the fonts' designer. In essence, the LaTeX package provides three sets of font families. These do not map perfectly to the original designer's intentions, but I did my best to approximate those intentions as closely as possibly.

Generally speaking 'titling' fonts contain small-caps intended to complement the non-small-caps fonts. In order to make all this work seamlessly in LaTeX, the package defines a set of families, drawing glyphs and metrics from the appropriate underlying fonts. These are then grouped into three sets corresponding to the three `.sty` files included in the package. Some have small-caps (where there are small-caps intended to work with the base fonts) and some do not (where there aren't.)

To get this working with (pdf)LaTeX, all that is required is:

1. the glyphs
2. the metrics
3. knowledge of the font designer's intentions.

The rest of the work is done by the support files.

This is an entirely separate question from the issue of whether the OTF fonts support particular features. Basically, `fontspec` makes it possible to use a full range of opentype features if the opentype or truetype font is set up correctly by the font designer. If not, you are (absent special gymnastics) out of luck.

A traditional font support package can do more with less. I don't need font tables or features to be configured correctly to provide a package supporting end-of-word swashes or italic small-caps or whatever. I just need the glyphs and the metrics. Nor does it matter if the end-of-word swashes are in a different font from the regular characters. This means that what you can do with the font depends less on the font designer and more on the software using the font or, in the case of LaTeX, on the author of the support package.

Hence, in one sense, `fontspec` gives you greater flexibility. But, in another, it is more rigid. If everything is there in the font, great. No package author required. If it isn't there, tough. Where you have separate opentype fonts for small-caps, say, you can use `fontspec` to specify the font to use for small-caps. Otherwise, there's not much doing.

In the case of `venturisadf`, you can match fonts against the 'titling' families and specify those as the small-caps fonts. To find out how it is done for the LaTeX packages, look at the source files. `rename.*` shows you the mappings to Berry font names. The `*.etx`, `*-drv.tex` and `*.mtx` files show you how the characters from the raw fonts are encoded and combined to create the font families specified in the `*.fd` files used by LaTeX. But note there's a lot of combining going on here - the final font LaTeX uses is taking glyphs and metrics from multiple type1 postscript fonts. For example, 't' may be in one font, while swash 'w' is in another, but you can still write `twin` using the swash in LaTeX and have it all work, because LaTeX uses a 'virtual font', which doesn't include any glyphs at all. This just isn't how `fontspec` works.

• Trying to put it all together... the feature-system of OTF is such that fonts usually work out-of-the-box in an application, such as XeLaTeX, that has OTF support. However, the published OTF files in this case lack a layout that allows applications reliably to use all the glyphs as intended. Nevertheless the LaTeX package is designed such that the TeX engine is able to compose dynamically a particular view of the fonts by taking various glyphs from designated definitions files. The author supported use of glyphs from the titling fonts as stand-ins for small caps in the LaTeX package.
– epl
Oct 17 '19 at 21:51
• @epl Not 'stand-ins'. Closer to these are the intended small-caps. As you may know, postscript type1 fonts traditionally had small-caps, ligatures and certain symbols in separate font files. So, traditionally, you expected to find `fi` in a different file from `f` and `i`, for example.
– cfr
Oct 17 '19 at 22:28
• @epl TeX doesn't combine anything dynamically. TeX doesn't even know there are separate fonts. TeX doesn't use glyphs. It just typesets boxes. pdfTeX is different, but there's still nothing dynamic about it. The virtual fonts point to characters in the real fonts (usually - sometimes they do something else). The DVI viewer or converter or pdfTeX uses these instructions to find the glyphs (where appropriate). Nothing is done 'on-the-fly'. It is all done before hand. Some of my font packages use virtual fonts because I'd not figured out an alternative. Not so this one. Here, they're essential.
– cfr
Oct 17 '19 at 22:38
• That's what I meant. "Virtual fonts point to characters in the real fonts" = "compose dynamically a particular view of the fonts by taking various glyphs from designated definitions files".
– epl
Oct 18 '19 at 2:49
• @epl This used to be a much more standard setup and it was not originally designed for TeX. Rather, other applications used font layouts like this. Virtual fonts were designed partly to enable TeX to take advantage of existing postscript fonts, including those where some characters were provided in separate files. This isn't a TeX-centric font design. I never used that software, but that's they way commercial typesetting software (think Adobe) expected postscript fonts to be constructed.
– cfr
Oct 19 '19 at 0:58