Hi,

On Tuesday 31 August 2010 11:32:53 Achim Blumensath wrote:
> Hello,
> 
> Sebastian Schubert wrote:
> > I'd like to adjust the accents over swash letters. For my taste, the ~
> > is too far left. As far as I can see, adjustments can be done in
> > adjust-oml.mtx, right?
> 
> No, the swash letters are not in the OML encoding.
> I think the easiest way is to modify the kerning files.

Thank you for your hint.

Ok, following TeXbook, the kerning with the skewchar definies the placement of 
the accents. In the fontinst/mn-oml-*.etx I found
\nextslot{255}
\setslot{skew}
\endsetslot
Looking in enc/mn-t1.enc, /germandbls is the last glyph. So the kerning pairs 
X.swash and germandbls define the placements of glyphs. And there are already 
kerning pairs like this in kerning/*It*.kern. Fine. (Although they are for 
Germandbls so upper case, I guess it's ok.) But running maketfm, I get  
warnings like this:

otftotfm: ./enc/mn-It-t1.enckern:169: warning: 'A.swash' has no encoding, 
ignoring '{180}'

running eg

otftotfm --tfm-directory=tfm --vf-directory=vf --encoding-directory=dvips --
no-type1 --no-updmap --no-dotlessj --warn-missing -fkern   -fliga -flnum -
fpnum --include-alternates '*.swash' -faalt -e 'enc/mn-It-t1.enckern' 
'otf/MinionPro-It.otf' 'MinionPro-It-lf-swash-t1'

It seems that the kerning pair and all other swash ones are ignored, because 
they are not included in the encoding. So I modified the maketfm script to use 
different enckern files for the swash letters where each X.swash kerning pair 
is replaced by a X pair (as far as I can see, otftotfm just treats X.swash as 
X) and all other uppercase X pairs are removed. And this works! Now, the 
accents look nice!

Still, there still a lot of other warnings of this kind, different ones for 
different encodings so there might at least one which uses the pairs...

What do you think?
Sebastian

PS:  I use the latest version of lcdf-typetools, that still works with the 
scripts (2.69). If you had a hint how to get a list of all the changed glyph 
names, I could have a look at this. I had a look at the sources of lcdf and I 
was not able to retrieve that information.
diff --git a/scripts/maketfm b/scripts/maketfm
index edb653b..a9c38fd 100755
--- a/scripts/maketfm
+++ b/scripts/maketfm
@@ -225,6 +225,11 @@ make_enckern() {
         else
           cp $e enc/mn-$1$l-$enc.enckern
         fi
+	# need to remove uppercase letter kerning and .swash in metric files
+	if $create_swash
+	then
+	    sed -e "s/.*LIGKERN [A-Z] {.*//g" -e "s/\.swash//g" enc/mn-$1$l-$enc.enckern > enc/mn-$1$l-$enc-swash.enckern
+	fi
       done
     done
   fi
@@ -622,18 +627,18 @@ make_swash_metrics() {
 
     local swash="--include-alternates '*.swash' -faalt"
 
-    make_tfm   "$1" t1  lf-swash-t1    "-fliga -flnum -fpnum $swash"
-    make_tfm   "$1" t1  osf-swash-t1   "-fliga -fonum -fpnum $swash"
-    make_tfm   "$1" t1  tlf-swash-t1   "-fliga -flnum -ftnum $swash"
-    make_tfm   "$1" t1  tosf-swash-t1  "-fliga -fonum -ftnum $swash"
-    make_tfm   "$1" ot1 lf-swash-ot1   "-fliga -flnum -fpnum $it_ot1_flags $swash"
-    make_tfm   "$1" ot1 osf-swash-ot1  "-fliga -fonum -fpnum $it_ot1_flags $swash"
-    make_tfm   "$1" ot1 tlf-swash-ot1  "-fliga -flnum -ftnum $it_ot1_flags $swash"
-    make_tfm   "$1" ot1 tosf-swash-ot1 "-fliga -fonum -ftnum $it_ot1_flags $swash"
-    make_tfm   "$1" ly1 lf-swash-ly1   "-fliga -flnum -fpnum $swash"
-    make_tfm   "$1" ly1 osf-swash-ly1  "-fliga -fonum -fpnum $swash"
-    make_tfm   "$1" ly1 tlf-swash-ly1  "-fliga -flnum -ftnum $swash"
-    make_tfm   "$1" ly1 tosf-swash-ly1 "-fliga -fonum -ftnum $swash"
+    make_tfm   "$1" t1-swash  lf-swash-t1    "-fliga -flnum -fpnum $swash"
+    make_tfm   "$1" t1-swash  osf-swash-t1   "-fliga -fonum -fpnum $swash"
+    make_tfm   "$1" t1-swash  tlf-swash-t1   "-fliga -flnum -ftnum $swash"
+    make_tfm   "$1" t1-swash  tosf-swash-t1  "-fliga -fonum -ftnum $swash"
+    make_tfm   "$1" ot1-swash lf-swash-ot1   "-fliga -flnum -fpnum $it_ot1_flags $swash"
+    make_tfm   "$1" ot1-swash osf-swash-ot1  "-fliga -fonum -fpnum $it_ot1_flags $swash"
+    make_tfm   "$1" ot1-swash tlf-swash-ot1  "-fliga -flnum -ftnum $it_ot1_flags $swash"
+    make_tfm   "$1" ot1-swash tosf-swash-ot1 "-fliga -fonum -ftnum $it_ot1_flags $swash"
+    make_tfm   "$1" ly1-swash lf-swash-ly1   "-fliga -flnum -fpnum $swash"
+    make_tfm   "$1" ly1-swash osf-swash-ly1  "-fliga -fonum -fpnum $swash"
+    make_tfm   "$1" ly1-swash tlf-swash-ly1  "-fliga -flnum -ftnum $swash"
+    make_tfm   "$1" ly1-swash tosf-swash-ly1 "-fliga -fonum -ftnum $swash"
 
     if $create_vietnamese
     then
@@ -657,25 +662,25 @@ make_spaced_swash_metrics() {
 
     local swash="--include-alternates '*.swash' -faalt"
 
-    make_tfm   "$1" t1  lf-swash-l1-t1    "-L 40 -flnum -fpnum $swash"
-    make_tfm   "$1" t1  osf-swash-l1-t1   "-L 40 -fonum -fpnum $swash"
-    make_tfm   "$1" t1  tlf-swash-l1-t1   "-L 40 -flnum -ftnum $swash"
-    make_tfm   "$1" t1  tosf-swash-l1-t1  "-L 40 -fonum -ftnum $swash"
-    make_tfm   "$1" ot1 lf-swash-l1-ot1   "-L 40 -flnum -fpnum $it_ot1_flags $swash"
-    make_tfm   "$1" ot1 osf-swash-l1-ot1  "-L 40 -fonum -fpnum $it_ot1_flags $swash"
-    make_tfm   "$1" ot1 tlf-swash-l1-ot1  "-L 40 -flnum -ftnum $it_ot1_flags $swash"
-    make_tfm   "$1" ot1 tosf-swash-l1-ot1 "-L 40 -fonum -ftnum $it_ot1_flags $swash"
-    make_tfm   "$1" ly1 lf-swash-l1-ly1   "-L 40 -flnum -fpnum $swash"
-    make_tfm   "$1" ly1 osf-swash-l1-ly1  "-L 40 -fonum -fpnum $swash"
-    make_tfm   "$1" ly1 tlf-swash-l1-ly1  "-L 40 -flnum -ftnum $swash"
-    make_tfm   "$1" ly1 tosf-swash-l1-ly1 "-L 40 -fonum -ftnum $swash"
+    make_tfm   "$1" t1-swash  lf-swash-l1-t1    "-L 40 -flnum -fpnum $swash"
+    make_tfm   "$1" t1-swash  osf-swash-l1-t1   "-L 40 -fonum -fpnum $swash"
+    make_tfm   "$1" t1-swash  tlf-swash-l1-t1   "-L 40 -flnum -ftnum $swash"
+    make_tfm   "$1" t1-swash  tosf-swash-l1-t1  "-L 40 -fonum -ftnum $swash"
+    make_tfm   "$1" ot1-swash lf-swash-l1-ot1   "-L 40 -flnum -fpnum $it_ot1_flags $swash"
+    make_tfm   "$1" ot1-swash osf-swash-l1-ot1  "-L 40 -fonum -fpnum $it_ot1_flags $swash"
+    make_tfm   "$1" ot1-swash tlf-swash-l1-ot1  "-L 40 -flnum -ftnum $it_ot1_flags $swash"
+    make_tfm   "$1" ot1-swash tosf-swash-l1-ot1 "-L 40 -fonum -ftnum $it_ot1_flags $swash"
+    make_tfm   "$1" ly1-swash lf-swash-l1-ly1   "-L 40 -flnum -fpnum $swash"
+    make_tfm   "$1" ly1-swash osf-swash-l1-ly1  "-L 40 -fonum -fpnum $swash"
+    make_tfm   "$1" ly1-swash tlf-swash-l1-ly1  "-L 40 -flnum -ftnum $swash"
+    make_tfm   "$1" ly1-swash tosf-swash-l1-ly1 "-L 40 -fonum -ftnum $swash"
 
     if $create_vietnamese
     then
-      make_tfm "$1" t5  lf-swash-l1-t5    "-L 40 -flnum -fpnum $swash"
-      make_tfm "$1" t5  osf-swash-l1-t5   "-L 40 -fonum -fpnum $swash"
-      make_tfm "$1" t5  tlf-swash-l1-t5   "-L 40 -flnum -ftnum $swash"
-      make_tfm "$1" t5  tosf-swash-l1-t5  "-L 40 -fonum -ftnum $swash"
+      make_tfm "$1" t5-swash  lf-swash-l1-t5    "-L 40 -flnum -fpnum $swash"
+      make_tfm "$1" t5-swash  osf-swash-l1-t5   "-L 40 -fonum -fpnum $swash"
+      make_tfm "$1" t5-swash  tlf-swash-l1-t5   "-L 40 -flnum -ftnum $swash"
+      make_tfm "$1" t5-swash  tosf-swash-l1-t5  "-L 40 -fonum -ftnum $swash"
     fi
 
     progress " done."

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Minionpro-devel mailing list
Minionpro-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/minionpro-devel

Reply via email to