[luatex] Modifying protrusion default.

john Culleton John at wexfordpress.com
Tue Sep 3 16:08:32 CEST 2013


On Tue, 3 Sep 2013 10:57:59 +0200
Philipp Gesang <Philipp.Gesang at alumni.uni-heidelberg.de> wrote:

> ···<date: 2013-08-29, Thursday>···<from: john Culleton>···
> 
> > On Mon, 26 Aug 2013 00:31:07 +0200
> > Philipp Gesang <Philipp.Gesang at alumni.uni-heidelberg.de> wrote:
> > 
> > > ···<date: 2013-08-24, Saturday>···<from: john Culleton>···
> > > 
> > > >                    These factors are too large for use in e.g.,
> > > > a novel. I can of course modify this file for my own use. But
> > > > if I want to send the modified file to a client to use is it
> > > > sufficient to just include a modified otfl-font-dum.lua file in
> > > > the batch of macros I send to the customer? Or can I put the
> > > > modified table in a my luatex template source document and
> > > > expect it to override the original table?
> > > >
> > > > Or is there another way to use a modified protrusion table that
> > > > is easily transportable to customers who aren't into replacing
> > > > files in the innards of TeX?
> > >  
> > > I’ve added some example code to the test repo:
> > > 
> > >   https://bitbucket.org/phg/lua-la-tex-tests/src/tip/pln-expansion-protrusion-1.lua
> > >   https://bitbucket.org/phg/lua-la-tex-tests/src/tip/pln-expansion-protrusion-1.tex
> > > 
> > > This should work with both luaotfload and luatex-fonts.
> > > 
> > > Basically, your options include a) manipulating the scale factors
> > > of the default vector or b) making up your own vector. New
> > > vectors, if added to the table fonts.protrusions.setups, can be
> > > referred to by their name when defining a font just like the
> > > default. E. g. create a vector
> > > 
> > >     fonts.protrusions.setups.myvector = {
> > >       factor = 1,
> > >       left   = 1,
> > >       right  = 1,
> > > 
> > >       --- map code points to protrusion values
> > >       --- [1] is  left, [2] is right
> > >       [string.byte ","] = { 0, 0.4 },
> > >       [string.byte "."] = { 0, 0.4 },
> > >       ....
> > >     }
> > > 
> > > and then in your document define a font like so:
> > > 
> > >   \pdfprotrudechars2
> > >   \font \mainfont = "file:Iwona-Regular.otf:protrusion=myvector"
> > > 
> > > It’s not hard, except for coming up with sane values ;-)
> 
> > The hard part is adding either approach to the zip file I will send
> > my customers.  Remember, my audience is not into modifying code in
> > their TeX installation, whether it is TeXLive or Context minimal. Is
> > there a way to add a macro to that zip file that will override the 
> > code already embedded in the TeX installation? 
> 
> Not sure about a macro, but you can use the functions in the
> example I linked to overwrite the “default” values. Otoh, if you
> ship your own texlive tree and don’t require the flexibility of
> multiple vectors, then you can probably live with modifying the
> defaults directly. In a recent luaotfload they reside in here:
> 
>     https://github.com/lualatex/luaotfload/blob/master/luaotfload-merged.lua#L13160
> 
> If you have a modified version of this file in the texmf-local/
> tree, it should override the distribution default.
> 
> > And is there a plan to add the protrusion features already found in
> > pdftex and Context MKIV to plain Luatex?
> 
> They are already there, in a sense. If you have a suggestion as
> to how luaotfload should be expanded, it might be worthwhile to
> file a feature request on the tracker [1]. Regarding the
> fontloader (luatex-fonts) itself, it is up to Hans.
> 
> Good luck with your project,
> Philipp
> 
> 
> [1] https://github.com/lualatex/luaotfload/issues
> 


OK lets go back to your earlier solution:
 https://bitbucket.org/phg/lua-la-tex-tests/src/tip/pln-expansion-protrusion-1.tex
Is this a complete solution or must I run the other program first?

When I tried to run this file under luatex it blew up on the \jobname.
So  I defined \jobname to be the name of the file and it blew up again,
treating \jobname as a module. Clearly I am misunderstanding
something. Please educate me a bit further. What is \jobname?

I am running plain luatex, not Context or lualatex. 


-- 
John Culleton
Wexford Press
Free list of books for self-publishers:
http://wexfordpress.net/shortlist.html
PDF e-book: "Create Book Covers with Scribus"
available at http://www.booklocker.com/books/4055.html



More information about the luatex mailing list