Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Please see the following screen shots.

enter image description here

As you can see there are two "overfull" hbox there. However, LaTeX does not produced any overfull box warning at all. I tried to produce a minimal working example but without exactly the same layout, and fonts, and line breaks, it cannot be reproduced. So sorry that I cannot include a MWE in this question.

However I tried to diagnose the problem. Since LaTeX does not see these as overfull box, it could be protrusion problem I guess. I setup the Minion fonts with fontspec (LuaLaTeX) as following,

\setmainfont[
UprightFeatures    = {RawFeature = {protrusion = mnr}},
BoldFeatures       = {RawFeature = {protrusion = mnr}},
ItalicFeatures     = {RawFeature = {protrusion = mni}},
BoldItalicFeatures = {RawFeature = {protrusion = mni}},
RawFeature = {expansion  = default},
Ligatures = {Required, Common, Contextual, TeX},
Numbers = {OldStyle, Proportional},
SizeFeatures = {
  {Size =      -8.41,  OpticalSize = 8},
  {Size =  8.41-13.01, OpticalSize = 11},
  {Size = 13.01-19.91, OpticalSize = 19},
  {Size = 19.91-,      OpticalSize = 72}},
]{Minion Pro}

Ignoring the other things (for example the SizeFeatures is used to work around the problem that fontspec/luaotfload cannot select the right optical sizes). The problems appeared to the line

ItalicFeatures = {RawFeature = {protrusion = mmi}},

Where protrusion is turned on before the fonts setup by \pdfprotrudechars2 and mni is the protrusion setting for Minion Pro Italic. I translated the setting in MinionPro package to be used with LuaLaTeX (as the official release of microtype do not support LuaTeX with opentype fonts loaded by fontspec yet). A portion of the Lua file that setup the protrusion can be found below,

fonts                    = fonts                    or { }
fonts.protrusions        = fonts.protrusions        or { }
fonts.protrusions.setups = fonts.protrusions.setups or { }

--omitted codes--

fonts.protrusions.setups["mni"] = { -- Minion Pro Italic

      factor = 1, left = 1, right = 1,

  -- omitted code--
  [0x0067] = {-0.070, -0.070}, -- g
  [0x0069] = { 0.000, -0.110}, -- i
  [0x006A] = {-0.090, -0.150}, -- j
  [0x0070] = {-0.040,  0.000}, -- p
  [0x0072] = { 0.000,  0.080}, -- r
  -- omitted --
}

I I change the protrusion factor of letter g and p, which are the breaking points in the picture above, then the problem solved.

Can anyone explain the problem? Is there something wrong with my fonts setup (the use RawFeatures) or the protrusion setup file (the codes omitted in the above code snipes are just setting for other letters, which I assume should be independent from each other)?

It seems that whenever a linebreak happens at a italic character and protrusion is activated for that character, then the problems always happen. This does not happen for roman fonts.

Edits: Further experiments showing that assigning positive values instead of negative values to the protrusion factors does not cause any problem for the italic fonts. I guess the problem is not with Italic font, but with the negative value of protrusion factors. The reason no such problem for roman fonts is that there are no negative values assigned for any roman characters. But some italic characters has negative protrusion values so that they don't reach out the boundary too much.

share|improve this question
add comment

1 Answer

up vote 13 down vote accepted

This could be related to a bug with negative protrusion values that I reported a year ago and which is obviously still open. Which luatex version are you using?

share|improve this answer
    
I have found the bug issue, which is indeed still open. I am using tl2011, updated –  Yan Zhou Sep 17 '11 at 18:07
1  
Have you tried using the latest version, 2.5, of microtype? It's still in beta, but it supports lua and xetex according to the package's header info. –  Mico Sep 18 '11 at 11:09
    
@Mico I don't use the microtype package at all and this is not a issue with any latex package but with how the luatex engine handle negative values (as quoted in Robert's answer) –  Yan Zhou Sep 18 '11 at 15:33
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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