-
-
Notifications
You must be signed in to change notification settings - Fork 267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
warning for latex-provided ts1? #1518
Comments
To be honest I think it would perhaps better if we do collect the email addresses of the dozen or less people that produce font packages and write to them privately and ask them to please make that update (which is not that difficult I would say, given that there is the code to generate the right setting for you). Putting such warnings it each an every log file means a) a lot of noise for all users and b) it is actually not that easy to determine when it would be appropriate: the default may as well be the correct value c) I doubt that much is reaching the maintainers this way. It essentially just requires getting the right email addresses (or perhaps the github accounts and assign them here) ... once that happened I'm happy write that email. Any takers for the collection part? If not I may do it at some point myself, but right now I don't have the bandwidth. |
Had a moment so figured I'd write down those I could think of.
|
A few others come to mind (I feel weird writing out email addresses for
gh to harvest, but I guess all of them are publicly known already):
Boguslaw Jackowski (jacko at bop.com.pl)
https://ctan.org/author/jackowski
Arash Esbati (arash at gnu.org)
https://ctan.org/author/esbati
Mohamed El Morabity (melmorabity at fedoraproject.org)
https://ctan.org/author/morabity
Hirwen Harendal (harendalh at hotmail.com)
https://ctan.org/author/harendal
There are many more (dozens or hundreds, I would guess). I could
auto-extract the info from the Catalogue, but I suspect the people
mentioned already would cover a good portion of what's in use
nowadays. And once they start doing it, hopefully the idea will become
more widely known. So maybe it is better to start with those than worry
about a longer list up front.
I will also add a note to the TL package contribution page, and ask CTAN
to do the same on theirs, although I don't expect that to have any
particular effect. Last paragraph in:
https://tug.org/texlive/pkgcontrib.html#complex
kb
|
Some package authors do provide declarations, but they typically seem to be in
Packages I'm responsible have declarations in the various
Hirwen Harendal is not responsible for the LaTeX support, but for the fonts. This is explained in the packages' documentation, so that name shouldn't be on your list.
Note that tools which auto-generate There is also the question of what to then do with the result the test gives you, which is not so obvious, imho. 1Very few (probably none) are 'correct' according to the test. This is one reason I don't want them in the |
Many thanks, Clea, for all this e tra information: very useful. |
grep -l DeclareEncodingSubset tex/latex/*/*.sty tex/latex/*/*.fd > /tmp/ts1-decs on a very recently updated TeX Live produces: tex/latex/algolrevived/algolrevived.sty
tex/latex/baskervaldadf/baskervald.sty
tex/latex/berenisadf/berenis.sty
tex/latex/cfr-lm/cfr-lm.sty
tex/latex/chivo/Chivo.sty
tex/latex/cochineal/cochineal.sty
tex/latex/electrumadf/electrum.sty
tex/latex/erewhon/erewhon.sty
tex/latex/gfsdidot/gfsdidot.sty
tex/latex/libris/libris.sty
tex/latex/newpx/newpxtext.sty
tex/latex/newtx/newtxtext.sty
tex/latex/newtxtt/newtxtt.sty
tex/latex/romandeadf/romande.sty
tex/latex/scholax/scholax.sty
tex/latex/tudscr/tudscrfonts.sty
tex/latex/venturisadf/venturis.sty
tex/latex/venturisadf/venturis2.sty
tex/latex/venturisadf/venturisold.sty
tex/latex/xcharter/XCharter.sty
tex/latex/ysabeau/ysabeau.sty
tex/latex/zlmtt/zlmtt.sty [I removed results for |
Note that I initially put them in the So I don't think it should be surprising that authors who've done this have used |
well, the main reason is that it is technically the place where it belongs, meaning in many cases you can use fonts without an additional .sty support file, e.g., by just doing
Are you using the original fontinst of the tool my Marc? In either case, I agree with you that it would be best to have that automated as part of the autogeneration of the .fd files.
I'm sure, the script and documentation could be improved, but what exactly do you find difficult or non-obvious from, say, the output
It could spit out the full declaration line, which is probably better, but otherwise? |
It is always a bit difficult to figure out where people are going to look and how much you therefore should duplicate in the documentation. fntguide.pdf that contains the full description of what should go into an .fd file say
but yes perhaps it could be extended and explicitly say that this is the right place and not a .sty file, because the font could be used without that .sty file. I don't think the 2e sources use that declaration anywhere in a sty file, if we do it is a mistake. |
the only place we use it is in textcomp.sty (it's not in the ts1 fd files in base) in fact in texlive tex/latex area I only see it in packages
so while I agree with the argument that it's better to be in the fd files to allow direct use of the font, the current situation is rather different |
in textcomp it is setting overall defaults according to the package option not explicit settings for individual families and that is just a compatibility thing because that is what the package did in its early days. There are no declarations in ts1 fds in base because technically they don't have to (as the kernel has them and they are therefore alway present). However, I agree for consistency and to make a good example we should probably change that.
well, yes, most fonts have no settings and a few have them now in their support packages. But the main reason to write ltnews39 and also this issue here is to change that situation. |
Yes, I know that's the reason. (And in general I agree that's preferable.)
Sorry. I don't understand this question.
Yes, it could. If I was going to do it, I'd add it to
No, nothing. I didn't mean the output wasn't clear. The reason I don't want to put them in the |
\DeclareEncodingSubset{TS1}{?}{9}
\DeclareEncodingSubset{TS1}{ccr} {0}
\DeclareEncodingSubset{TS1}{cmbr} {0}
\DeclareEncodingSubset{TS1}{cmr} {0}
\DeclareEncodingSubset{TS1}{cmss} {0}
\DeclareEncodingSubset{TS1}{cmtl} {0}
\DeclareEncodingSubset{TS1}{cmtt} {0}
\DeclareEncodingSubset{TS1}{cmvtt} {0}
\DeclareEncodingSubset{TS1}{pxr} {0}
\DeclareEncodingSubset{TS1}{pxss} {0}
\DeclareEncodingSubset{TS1}{pxtt} {0}
\DeclareEncodingSubset{TS1}{qag} {0}
\DeclareEncodingSubset{TS1}{qbk} {0}
\DeclareEncodingSubset{TS1}{qcr} {0}
\DeclareEncodingSubset{TS1}{qcs} {0}
\DeclareEncodingSubset{TS1}{qhvc} {0}
\DeclareEncodingSubset{TS1}{qhv} {0}
\DeclareEncodingSubset{TS1}{qpl} {0}
\DeclareEncodingSubset{TS1}{qtm} {0}
\DeclareEncodingSubset{TS1}{qzc} {0}
\DeclareEncodingSubset{TS1}{txr} {0}
\DeclareEncodingSubset{TS1}{txss} {0}
\DeclareEncodingSubset{TS1}{txtt} {0}
\DeclareEncodingSubset{TS1}{lmr} {1}
\DeclareEncodingSubset{TS1}{lmdh} {1}
\DeclareEncodingSubset{TS1}{lmss} {1}
\DeclareEncodingSubset{TS1}{lmssq} {1}
\DeclareEncodingSubset{TS1}{lmvtt} {1}
\DeclareEncodingSubset{TS1}{lmtt} {1} % missing TM, SM and pertenthousand
\DeclareEncodingSubset{TS1}{ptmx} {2}
\DeclareEncodingSubset{TS1}{ptmj} {2}
\DeclareEncodingSubset{TS1}{ul8} {2}
\DeclareEncodingSubset{TS1}{bch} {5} % tofu for blank, ohm
\DeclareEncodingSubset{TS1}{futj}{5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{futs}{5} % tofu for blank, ohm
\DeclareEncodingSubset{TS1}{futx}{5} % probably (currently broken distrib)
\DeclareEncodingSubset{TS1}{pag} {5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{pbk} {5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{pcr} {5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{phv} {5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{pnc} {5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{pplj}{5} % tofu for blank
\DeclareEncodingSubset{TS1}{pplx}{5} % tofu for blank
\DeclareEncodingSubset{TS1}{ppl} {5} % tofu for blank interrobang/down
\DeclareEncodingSubset{TS1}{ptm} {5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{pzc} {5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{ul9} {5} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{dayroms}{6} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{dayrom} {6} % tofu for blank, interrobang/down, ohm
\DeclareEncodingSubset{TS1}{augie}{8} % really only missing euro
\DeclareEncodingSubset{TS1}{put} {8}
\DeclareEncodingSubset{TS1}{uag} {8} % probably (currently broken distrib)
\DeclareEncodingSubset{TS1}{ugq} {8}
\DeclareEncodingSubset{TS1}{zi4} {9}
\DeclareEncodingSubset{TS1}{hls} {5}
\DeclareEncodingSubset{TS1}{hlst} {5}
\DeclareEncodingSubset{TS1}{hlct} {5}
\DeclareEncodingSubset{TS1}{hlh} {5}
\DeclareEncodingSubset{TS1}{hlx} {8}
\DeclareEncodingSubset{TS1}{hlce} {8}
\DeclareEncodingSubset{TS1}{hlcn} {8}
\DeclareEncodingSubset{TS1}{hlcw} {8}
\DeclareEncodingSubset{TS1}{hlcf} {8}
\DeclareEncodingSubset{TS1}{lato-*} {0} % with a bunch of tofu inside
\DeclareEncodingSubset{TS1}{opensans-*} {0} % with a bunch of tofu inside
\DeclareEncodingSubset{TS1}{cantarell-*} {0} % with a bunch of tofu inside
\DeclareEncodingSubset{TS1}{tli} {1} % with lots of tofu inside
\DeclareEncodingSubset{TS1}{fbb-*} {2} % missing centoldstyle
\DeclareEncodingSubset{TS1}{Alegreya-*} {2}
\DeclareEncodingSubset{TS1}{AlegreyaSans-*} {2}
\DeclareEncodingSubset{TS1}{BaskervilleF-*} {2}
\DeclareEncodingSubset{TS1}{DejaVuSans-TLF} {2}
\DeclareEncodingSubset{TS1}{DejaVuSansCondensed-TLF} {2}
\DeclareEncodingSubset{TS1}{DejaVuSansMono-TLF} {2}
\DeclareEncodingSubset{TS1}{EBGaramond-*} {2}
\DeclareEncodingSubset{TS1}{Merriwthr-OsF} {2}
\DeclareEncodingSubset{TS1}{MerriwthrSans-OsF} {2}
\DeclareEncodingSubset{TS1}{Montserrat-*} {2}
\DeclareEncodingSubset{TS1}{MontserratAlternates-*} {2}
\DeclareEncodingSubset{TS1}{NotoSansMono-TLF} {2}
\DeclareEncodingSubset{TS1}{NotoSansMono-TOsF} {2}
\DeclareEncodingSubset{TS1}{Tempora-TLF} {2}
\DeclareEncodingSubset{TS1}{Tempora-TOsF} {2}
\DeclareEncodingSubset{TS1}{XCharter-TLF} {2}
\DeclareEncodingSubset{TS1}{XCharter-TOsF} {2}
\DeclareEncodingSubset{TS1}{erewhon-*} {2}
\DeclareEncodingSubset{TS1}{Arimo-TLF} {3}
\DeclareEncodingSubset{TS1}{Crlt-*} {3}
\DeclareEncodingSubset{TS1}{IBMPlexMono-TLF} {3}
\DeclareEncodingSubset{TS1}{IBMPlexSans-TLF} {3}
\DeclareEncodingSubset{TS1}{IBMPlexSerif-TLF} {3}
\DeclareEncodingSubset{TS1}{SourceCodePro-TLF} {3}
\DeclareEncodingSubset{TS1}{SourceCodePro-TOsF} {3}
\DeclareEncodingSubset{TS1}{SourceSansPro-*} {3}
\DeclareEncodingSubset{TS1}{SourceSerifPro-*} {3}
\DeclareEncodingSubset{TS1}{Tinos-TLF} {3}
\DeclareEncodingSubset{TS1}{AccanthisADFStdNoThree-LF}{4}
\DeclareEncodingSubset{TS1}{Cabin-TLF} {4}
\DeclareEncodingSubset{TS1}{Caladea-TLF} {4}
\DeclareEncodingSubset{TS1}{Chivo-*} {4}
\DeclareEncodingSubset{TS1}{ClearSans-TLF} {4}
\DeclareEncodingSubset{TS1}{Coelacanth-LF} {4}
\DeclareEncodingSubset{TS1}{CrimsonPro-*} {4}
\DeclareEncodingSubset{TS1}{FiraMono-TLF} {4}
\DeclareEncodingSubset{TS1}{FiraMono-TOsF} {4}
\DeclareEncodingSubset{TS1}{FiraSans-*} {4}
\DeclareEncodingSubset{TS1}{Go-TLF} {4}
\DeclareEncodingSubset{TS1}{GoMono-TLF} {4}
\DeclareEncodingSubset{TS1}{InriaSans-*} {4}
\DeclareEncodingSubset{TS1}{InriaSerif-*} {4}
\DeclareEncodingSubset{TS1}{LibertinusSans-*} {4}
\DeclareEncodingSubset{TS1}{LibertinusSerif-*} {4}
\DeclareEncodingSubset{TS1}{LibreBodoni-TLF} {4}
\DeclareEncodingSubset{TS1}{LibreFranklin-TLF} {4}
\DeclareEncodingSubset{TS1}{LinguisticsPro-LF} {4}
\DeclareEncodingSubset{TS1}{LinguisticsPro-OsF} {4}
\DeclareEncodingSubset{TS1}{LinuxBiolinumT-*} {4}
\DeclareEncodingSubset{TS1}{LinuxLibertineT-*} {4}
\DeclareEncodingSubset{TS1}{MintSpirit-*} {4}
\DeclareEncodingSubset{TS1}{MintSpiritNoTwo-*} {4}
\DeclareEncodingSubset{TS1}{PTMono-TLF} {4}
\DeclareEncodingSubset{TS1}{PTSans-TLF} {4}
\DeclareEncodingSubset{TS1}{PTSansCaption-TLF} {4}
\DeclareEncodingSubset{TS1}{PTSansNarrow-TLF} {4}
\DeclareEncodingSubset{TS1}{PTSerif-TLF} {4}
\DeclareEncodingSubset{TS1}{PTSerifCaption-TLF} {4}
\DeclareEncodingSubset{TS1}{Raleway-TLF} {4}
\DeclareEncodingSubset{TS1}{Raleway-TOsF} {4}
\DeclareEncodingSubset{TS1}{Roboto-*} {4}
\DeclareEncodingSubset{TS1}{RobotoMono-TLF} {4}
\DeclareEncodingSubset{TS1}{RobotoSlab-TLF} {4}
\DeclareEncodingSubset{TS1}{Rosario-*} {4}
\DeclareEncodingSubset{TS1}{SticksTooText-*} {4}
\DeclareEncodingSubset{TS1}{UniversalisADFStd-LF} {4}
\DeclareEncodingSubset{TS1}{Almndr-OsF} {5}
\DeclareEncodingSubset{TS1}{Baskervaldx-*} {5}
\DeclareEncodingSubset{TS1}{Bttr-TLF} {5}
\DeclareEncodingSubset{TS1}{Cinzel-LF} {5}
\DeclareEncodingSubset{TS1}{CinzelDecorative-LF} {5}
\DeclareEncodingSubset{TS1}{Cochineal-*} {5}
\DeclareEncodingSubset{TS1}{DejaVuSerif-TLF} {5}
\DeclareEncodingSubset{TS1}{DejaVuSerifCondensed-TLF} {5}
\DeclareEncodingSubset{TS1}{GilliusADF-LF} {5}
\DeclareEncodingSubset{TS1}{GilliusADFCond-LF} {5}
\DeclareEncodingSubset{TS1}{GilliusADFNoTwo-LF} {5}
\DeclareEncodingSubset{TS1}{GilliusADFNoTwoCond-LF} {5}
\DeclareEncodingSubset{TS1}{OldStandard-TLF} {5}
\DeclareEncodingSubset{TS1}{PlyfrDisplay-TLF} {5}
\DeclareEncodingSubset{TS1}{PlyfrDisplay-TOsF} {5}
\DeclareEncodingSubset{TS1}{TheanoDidot-TLF} {5}
\DeclareEncodingSubset{TS1}{TheanoDidot-TOsF} {5}
\DeclareEncodingSubset{TS1}{TheanoModern-TLF} {5}
\DeclareEncodingSubset{TS1}{TheanoModern-TOsF} {5}
\DeclareEncodingSubset{TS1}{TheanoOldStyle-TLF} {5}
\DeclareEncodingSubset{TS1}{TheanoOldStyle-TOsF} {5}
\DeclareEncodingSubset{TS1}{charssil-TLF} {5}
\DeclareEncodingSubset{TS1}{Crimson-TLF} {6}
\DeclareEncodingSubset{TS1}{LibertinusSerifDisplay-LF}{6}
\DeclareEncodingSubset{TS1}{LinuxLibertineDisplayT-*} {6}
\DeclareEncodingSubset{TS1}{LinuxLibertineMonoT-LF} {6}
\DeclareEncodingSubset{TS1}{LinuxLibertineMonoT-TLF} {6}
\DeclareEncodingSubset{TS1}{Ovrlck-LF} {6}
\DeclareEncodingSubset{TS1}{ComicNeue-TLF} {7}
\DeclareEncodingSubset{TS1}{ComicNeueAngular-TLF} {7}
\DeclareEncodingSubset{TS1}{CormorantGaramond-*} {7}
\DeclareEncodingSubset{TS1}{Heuristica-TLF} {7}
\DeclareEncodingSubset{TS1}{Heuristica-TOsF} {7}
\DeclareEncodingSubset{TS1}{IMFELLEnglish-TLF} {7}
\DeclareEncodingSubset{TS1}{LibreBskrvl-TLF} {7}
\DeclareEncodingSubset{TS1}{LibreCsln-*} {7}
\DeclareEncodingSubset{TS1}{Lbstr-LF} {7}
\DeclareEncodingSubset{TS1}{Mrcls-LF} {7}
\DeclareEncodingSubset{TS1}{NotoSans-*} {7}
\DeclareEncodingSubset{TS1}{NotoSerif-*} {7}
\DeclareEncodingSubset{TS1}{Quattro-LF} {7}
\DeclareEncodingSubset{TS1}{QuattroSans-LF} {7}
\DeclareEncodingSubset{TS1}{Frm-LF} {7} % the superiors are missing
\DeclareEncodingSubset{TS1}{LibertinusMono-TLF} {8}
\DeclareEncodingSubset{TS1}{AlgolRevived-TLF} {9} |
[Which is not the sources of 2e, but is source as opposed to documentation.] |
@cfr42 |
author of "autoinst", that's what Bob and I think Michael are using for their font packages. Anyway, I think you answered that you using a lua script
agreed, if the setting is wrong (which it shouldn't be if it is set by the font bundle maintainer) then it is slightly more convoluted to get it right as it has to be done after the .fd got loaded, but that's the same for any setting made in the .fd file and the solution then would be
so not too bad. |
I figured that out later, but my point was just that if you |
Oh, OK. Almost all of my font packages use |
@cfr42 Based on our other conversation, I wonder if we could look at having a generic version of your |
It is very messy and I don't even know how to isolate the process properly. |
@josephwright in theory, it is somewhat generic already in that you can adapt it to use whatever font creation recipe you want (which is what |
So I now think this is possibly possible. |
Apologies if my comment is off, but IIUC, putting
And save this snippet in the same directory:
and run
This is because of the following code in
IIUC, the "only preamble" restriction must be lifted before |
@dr-scsi Note that I don't think the result of the test is reliable if the fonts use |
@cfr42 - You mean the result of |
how embarrassing :-( ... I lobby for the change (because it is the right thing imho) and write articles and newsletters about it and then it doesn't actually work because of an oversight ... yes the |
@FrankMittelbach Are you aware |
If fontinst does add tofu glyphs for those that do not exist then this wouldn't be surprising (but unfortunate). Is that the reason for it? Or saying it differently, can you give me an example name so that I can see what is happening? |
Yes. Aside from the fact tofu is fantastic stuff,
So it is possible to tell what is missing from the log So I think you need to qualify your recommendation. Otherwise packages which currently fallback to subset Of course, ideally, |
So I think you need to qualify your recommendation. Otherwise packages
which currently fallback to subset |9| may suddenly produce black boxes
if their authors use |fontinst| and take your advice.
I already qualified that (at least in the newsletter, that there are
fonts which contain tofu (yes good stuff :-) if used in the kitchen).
What I wasn't aware of, is that it is a general "feature" for fonts
produced with fontinst, so that recommendation could and should be improved.
Not sure, but I wonder if checkencodingsubset could (and should) test if
there are chars with 5x5 size and in that case perhaps issue a warning
that there might be tofu inside.
|
\ProvidesFile{ts1yly.fd}
[2024/09/27 Fontinst v1.933 font definitions for TS1/yly.] so perhaps the test should check for that? |
maybe, the question is which has more false positives (or misses tofu that is inside). |
Well, if you check for 5x5 rules, you'll miss some missing glyphs,
This is from a |
Technically, it would be easy to stop |
On the other hand, putting tofu into fonts may have looked like a good idea back in the days when Alan and Sebastian produced the early versions of fontinst (or whoever was involved then) but it is not a good idea at all for the users, because in contrast of getting a missing glyph warning or error (depending on your setting) you only find out if you carefully scan your document visually. So yes, it is extra work for the font maintainers, but it would be in the interest of their users --- and it is somewhat unrelated to the discussion here, except that if the tofu is not there LaTeX could do corrective actions (assuming the subset information is correct for the font). |
ok, so if this varies from font to font then it is not a good idea to heuristically deduce tofu from glyph dimensions. So checking if the file info mentions fontinst and then put out a general warning might be the better choice. |
Assuming use of \setcommand\unfakable#1{
\setglyph{#1}
\glyphrule{500}{500}
\glyphwarning{missing glyph `#1'}
\endsetglyph
}
% \unfakableaccent is similar, but has an ``accent position''
\setcommand\unfakableaccent#1{
\setglyph{#1}
\moveup{\add{\int{xheight}}{50}}
\movert{\scale{\add{\int{xheight}}{50}}{\int{italicslant}}}
\glyphrule{250}{\sub{\sub{\int{ascender}}{\int{xheight}}}{100}}
\movert{\neg{\scale{\add{\int{xheight}}{50}}{\int{italicslant}}}}
\glyphwarning{missing glyph `#1'}
\endsetglyph
} But there are several ways in which these could fail to actually be the active definitions when the |
Technically, it is unrelated. But, in reality, if you wanted people to regenerate fonts, you might need to tell them that's possible. That would mean either telling them to use an updated version of Which is to say, it seemed relevant to point out that this feature/bug can be worked around quite easily without touching |
I think the idea was that users would also get a warning about the missing glyphs. Although comments are stripped, the |
As I said, looked like a good idea back then and probably was, with dvi -> dvips -> PS, but with pdftex and with nowadays generating an error or at least a log entry if a glyph is missing it isn't any longer. |
[Edit: yes, it does. Please ignore.] |
How is the
These are setup as distinct families, each with its own tex/latex/alegreya/TS1Alegreya-LF.fd tex/latex/alegreya/TS1Alegreya-OsF.fd tex/latex/alegreya/TS1Alegreya-TLF.fd tex/latex/alegreya/TS1Alegreya-TOsF.fd Moreover, as far as I know, they pretty much have to be set up as distinct families and each family has to have its own So I suspect the I suspect this also encouraged me to think the declarations should go in |
Perhaps I've misunderstood, but I thought the gravestones were a problem when determining the encoding. LaTeX then substitutes according to the declared subset. So people don't really need to regenerate the fonts, if they don't want to. It should work just as well if they add the declarations post hoc. Admittedly, they'll have to remember if they later update the fonts, so an automated way to generate the So you could provide something like the code @davidcarlisle posted or a script to extract |
I was looking at ltnews39 and was reminded of the need for font package maintainers to provide TS1 subset declarations. If that's started happening, fine. But if not (as I suspect), I wondered about having LaTeX emit a warning ("tell the font maintainer to update their package") when its subset declaration is used.
Just an idea. If this is already being done, sorry. I couldn't easily check right now.
The text was updated successfully, but these errors were encountered: