11

When I typeset my free physics textbook, I get a microtype warning

Unknown slot number of character `\j'  

(It happens only for this character, no other one.) I get this message since many years, both on my 2008 tex system and in my new, fully updated 2014 texlive system. The older system says microtype.cfg/183(protrusion), the newer one microtype.cfg/201(protrusion).

The systems use MinionPro, microtype and many other packages with latex2e. How can I get rid of the message? The message only appears when microtype and MinionPro are used together.

Here is a minimal working example that triggers the error:

\documentclass{book} 
\usepackage{MinionPro}
\usepackage{microtype}
\usepackage[T1]{fontenc}

\begin{document}
Hallo.
\end{document} 

In fact, the error disappears if microtype is loaded first. But I read that this is not allowed with MinionPro. What can be done?

  • I have the same warning myself. I have found no solution. – Sveinung Jan 5 '15 at 20:48
  • @Sveinung Better than what happens if you add \i to your document! (At least, better than what happens if I add \i to my document.) I'm almost certain this is a duplicate. – cfr Jan 6 '15 at 0:01
  • @Sveinung Are these related: tex.stackexchange.com/questions/50145/…, tex.stackexchange.com/questions/42764/…. But no mention of what I see with dotless i. Does anybody else get that? – cfr Jan 6 '15 at 2:15
  • I only remember that MinionPro does something to the dotless i and dotless j. – Motion Mountain Jan 6 '15 at 8:28
  • @cfr Probably. I have used MinionPro for years and lived with the error (I never use dotless j). I looked into the type1-directory today. I have only eight MinionPro .pfb there. There are four pairs, the stem of the names are the same, but four has LCDFJ in addition. The four *LCDFJ.pfb are 0 byte files. I only use pdflatex. If I use \i, I get a dotless i, if I use \j, pdflatex fails with the following message: !pdfTeX error: pdflatex.EXE (file C:/texmf-local/fonts/type1/adobe/MinionPro/MinionPro-RegularLCDFJ.pfb): unexpected end of file. – Sveinung Jan 6 '15 at 10:44
11

EDIT: Thanks to @sebschub this is fixed now.


This warning means that microtype, while reading (protrusion) settings, is unable to translate the command \j into a slot number of the font. Since there is indeed no dotless j in MinionPro, this message is harmless and can be ignored -- it's not an error.

Given the harmless nature of this warning, the simplest solution would probably be to just load microtype before MinionPro, which will, as you say, make the message disappear. (I don't see why this should be a problem.) Another solution would be to load microtype with verbose=silent, which will turn all warnings into mere info messages, so that they will only show in the log file, not on the console (but this would apply to all warnings, so relevant ones might go unnoticed).

Now to explain what's happening: MinionPro undeclares the command \j because there is no dotless j in the font (or the slot is used for another glyph). But microtype's default inheritance settings still contain the inheritance pair j = \j. Therefore, when parsing these settings, microtype stumbles over the non-defined \j. This also explains why the message disappears when you load microtype first: at that point, the \j is still defined.

So the proper solution would be to add custom inheritance settings for MinionPro to mt-MinionPro.cfg, containing everything from the default settings (from microtype.cfg) except the j:

\DeclareCharacterInheritance
   { encoding = T1,
     family = {MinionPro-OsF,MinionPro-LF,MinionPro-TOsF,MinionPro-TLF} }
   { A = {\`A,\'A,\^A,\~A,\"A,\r A,\k A,\u A},
     a = {\`a,\'a,\^a,\~a,\"a,\r a,\k a,\u a},
% ...
%     j = {\j},
% ...
     Z = {\'Z,\.Z,\v Z},
     z = {\'z,\.z,\v z}
   }

(If protrusion settings existed for LY1 encoding, its inheritance settings would have to be adjusted accordingly.)

|improve this answer|||||
  • @cfr But MinionPro makes provisions for both cases, whether microtype be loaded before or after, so there should be no difference. And microtype is in fact not designed to be loaded late, but to be loaded anytime (see e.g. here). – Robert Jan 10 '15 at 4:25
  • 2
    It seems that MinionPro is indeed not maintained at present. That is a great pity! Together with the MinionMath font, it probably provides the best text and math typography for LaTeX. If anybody would take up the task to maintain MinionPro, it would be a great present to all if us. – Motion Mountain Jan 10 '15 at 6:56
  • @Robert Interesting. Thanks. I'm obviously very out of date! – cfr Jan 10 '15 at 11:54
  • 2
    @MotionMountain Or, rather, to those of you in possession of the fonts?! Don't get me wrong: MinionPro is nice. But what most people have access to is extremely restricted (2 weights, no opticals etc., no maths). So the audience is somewhat restricted. Moreover, it isn't possible to put together a one-size-fits-all package because of variations in the particular fonts people have purchased and the versions of those fonts they have. And the fonts cannot be distributed as part of a TeX distribution... – cfr Jan 10 '15 at 11:58
  • 2
    @MotionMountain I kind of maintain the MinionPro package within FontPro. My knowledge and time is limited so please don't expect any wonder (such as done by the original authors). Anyway, I've just included the above answer. Please try it. – sebschub Jan 10 '15 at 18:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.