Re: [NTG-context] Selectively supressing ligatures

2015-08-11 Thread Jan U. Hasecke
Hi,

I want to follow up on my own message below.

I got the hint offlist that it should not be too difficult to convert a
LaTeX package into a ConTeXt module.

So I guess that there is no built-in functionality of semantical
switching between ligatures and normal characters.

I am not a typographer – maybe I am wrong – but I don't like ligatures
in the wrong places. Inserting ligature stoppers by hand is a tedious work.

The latex package selnoligs was beneficial to me when I made a book with
more than 1000 pages, where I would never managed to stop ligatures by
hand.

So what is your opinion about such a feature?

juh

Am 30.07.2015 um 15:10 schrieb juh:
 Hi,
 
 I use the package selnoligs.sty in LuaLaTeX to selectively suppress
 ligatures.
 
 From the selnolig package description:
 
 The selnolig package suppresses typographic ligatures selectively,
 i.e., based on predefined search patterns. The search patterns focus on
 ligatures deemed inappropriate because they span morpheme boundaries.
 For example, the word shelfful, which is mentioned in the TEXbook as a
 word for which the ff ligature might be inappropriate, is automatically
 typeset as shelfful rather than as shelfful.
 
 
 This works with LuaLaTeX:
 
 \documentclass{article}
 \usepackage{fontspec}
 \usepackage[ngerman]{selnolig}
 
 \begin{document}
 
 Auflage (no ligature)
 
 Abfluss (ligature)
 
 Auffahrt (no ligature)
 
 Schiffe (ligature)
 
 \end{document}
 
 
 How can I achieve the same in ConTeXt?
 
 
 This does not work:
 
 \mainlanguage[de]
 
 \starttext
 \language[de]
 
 Auflage
 
 Abfluss
 
 Auffahrt
 
 Schiffe
 
 \stoptext
 
 
 TIA
 juh
 ___
 If your question is of interest to others as well, please add an entry to the 
 Wiki!
 
 maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
 webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
 archive  : http://foundry.supelec.fr/projects/contextrev/
 wiki : http://contextgarden.net
 ___
 

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] Selectively supressing ligatures

2015-08-11 Thread Hans Hagen

On 8/11/2015 8:25 AM, Jan U. Hasecke wrote:

Hi,

I want to follow up on my own message below.

I got the hint offlist that it should not be too difficult to convert a
LaTeX package into a ConTeXt module.


I don't know but it would probably be a bit alien approach in the 
context code base



So I guess that there is no built-in functionality of semantical
switching between ligatures and normal characters.


The official way to do this is:

\starttext
shel\noligature{ff}ul
\stoptext

which also preserves hyphenation and kerning as well as other tricky 
features that a font provides.


The best place to incorporate such a feature is in the hyphenator but I 
have no time now to do that. So, instead I added a few lines to an 
existing (probably unknown) mechanism:


\replaceword[more][shelfful] [shel{ff}ul]
\replaceword[more][shifffahrt][shi{ff}fahrt]

\starttext
shel\noligature{ff}ul

\setreplacements[more]

shelfful
\stoptext

The downside of the 10 line extension is that it's not the most 
efficient implementation but probably still fast enough.



I am not a typographer – maybe I am wrong – but I don't like ligatures
in the wrong places. Inserting ligature stoppers by hand is a tedious work.


I don't like ligatures in most places (why only the few famous ones ... 
a bit imposed tradition limited to old constraints)



The latex package selnoligs was beneficial to me when I made a book with
more than 1000 pages, where I would never managed to stop ligatures by
hand.

So what is your opinion about such a feature?


You can probably make a list of special words and adding that to a 
module is no big deal. I have no time to look into what is around and do 
that myself.


I uploaded a beta.

Hans

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] Selectively supressing ligatures

2015-08-11 Thread Hans Hagen

On 8/11/2015 11:12 AM, Jan U. Hasecke wrote:


As far as I understood selnoligs works with regular expressions (black
magic!). It is very time consuming, but CPU time is cheap. ;-)


sure but life is still short so i prefer less runtime over cheap runtime

Hans

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] Selectively supressing ligatures

2015-08-11 Thread Jan U. Hasecke
Hello Hans,

thank you very much for this quick fix.

I'll have to switch to the beta branch to try it out. At least I can now
suppress ligatures with a replacement list, which is enough for now.

As far as I understood selnoligs works with regular expressions (black
magic!). It is very time consuming, but CPU time is cheap. ;-)

Thanks a lot and a nice sunny day.
juh

Am 11.08.15 um 10:19 schrieb Hans Hagen:
 On 8/11/2015 8:25 AM, Jan U. Hasecke wrote:
 Hi,

 I want to follow up on my own message below.

 I got the hint offlist that it should not be too difficult to convert a
 LaTeX package into a ConTeXt module.
 
 I don't know but it would probably be a bit alien approach in the
 context code base
 
 So I guess that there is no built-in functionality of semantical
 switching between ligatures and normal characters.
 
 The official way to do this is:
 
 \starttext
 shel\noligature{ff}ul
 \stoptext
 
 which also preserves hyphenation and kerning as well as other tricky
 features that a font provides.
 
 The best place to incorporate such a feature is in the hyphenator but I
 have no time now to do that. So, instead I added a few lines to an
 existing (probably unknown) mechanism:
 
 \replaceword[more][shelfful] [shel{ff}ul]
 \replaceword[more][shifffahrt][shi{ff}fahrt]
 
 \starttext
 shel\noligature{ff}ul
 
 \setreplacements[more]
 
 shelfful
 \stoptext
 
 The downside of the 10 line extension is that it's not the most
 efficient implementation but probably still fast enough.
 
 I am not a typographer – maybe I am wrong – but I don't like ligatures
 in the wrong places. Inserting ligature stoppers by hand is a tedious
 work.
 
 I don't like ligatures in most places (why only the few famous ones ...
 a bit imposed tradition limited to old constraints)
 
 The latex package selnoligs was beneficial to me when I made a book with
 more than 1000 pages, where I would never managed to stop ligatures by
 hand.

 So what is your opinion about such a feature?
 
 You can probably make a list of special words and adding that to a
 module is no big deal. I have no time to look into what is around and do
 that myself.
 
 I uploaded a beta.
 
 Hans
 
 -
   Hans Hagen | PRAGMA ADE
   Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
 tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
  | www.pragma-pod.nl
 -
 ___
 
 If your question is of interest to others as well, please add an entry
 to the Wiki!
 
 maillist : ntg-context@ntg.nl /
 http://www.ntg.nl/mailman/listinfo/ntg-context
 webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
 archive  : http://foundry.supelec.fr/projects/contextrev/
 wiki : http://contextgarden.net
 ___
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] Selectively supressing ligatures

2015-08-11 Thread Jan U. Hasecke
Hans,

it works for me, thank you!

Am 11.08.2015 um 13:22 schrieb Hans Hagen:
 Btw, a 11 minutes baseline sounds like a lot to me.

Yes indeed, xelatex and pdflatex from the same distribution are faster.
I only use lualatex because it is needed for selnoligs. Generally I used
pdflatex or xelatex.

But it looks like I am going to skip to ConTeXt anyway. ;-)

juh


-- 
Das ZEN von Pandoc
Bücher und E-Books einfach und professionell produzieren
http://www.amazon.de/Das-ZEN-von-Pandoc-professionell/dp/1505218799/
Paperback (232 Seiten) und E-Book
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] Selectively supressing ligatures

2015-08-11 Thread Jan U. Hasecke
Am 11.08.2015 um 11:46 schrieb Hans Hagen:
 On 8/11/2015 11:12 AM, Jan U. Hasecke wrote:
 
 As far as I understood selnoligs works with regular expressions (black
 magic!). It is very time consuming, but CPU time is cheap. ;-)
 
 sure but life is still short so i prefer less runtime over cheap runtime

Absolutely right:

LuaLaTeX run with selnoligs:

real18m39.101s
user18m40.335s
sys   0m1.624s


LuaLaTeX run without selnoligs:

real11m50.577s
user11m51.438s
sys   0m1.783s

But as I used pandoc in this project I had no chance to correct the
ligatures by hand. And if I had I would have needed seven days instead
of seven minutes more runtime.

But I am offtopic.

Thanks again for the solution.

juh

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] Selectively supressing ligatures

2015-08-11 Thread Hans Hagen

On 8/11/2015 12:41 PM, Jan U. Hasecke wrote:

Am 11.08.2015 um 11:46 schrieb Hans Hagen:

On 8/11/2015 11:12 AM, Jan U. Hasecke wrote:


As far as I understood selnoligs works with regular expressions (black
magic!). It is very time consuming, but CPU time is cheap. ;-)


sure but life is still short so i prefer less runtime over cheap runtime


Absolutely right:

LuaLaTeX run with selnoligs:

real18m39.101s
user18m40.335s
sys   0m1.624s


LuaLaTeX run without selnoligs:

real11m50.577s
user11m51.438s
sys   0m1.783s

But as I used pandoc in this project I had no chance to correct the
ligatures by hand. And if I had I would have needed seven days instead
of seven minutes more runtime.


a couple of times 7 minutes i guess -)


But I am offtopic.


Whatever. In Context it's not that slow. In a worst case your 1000 pages 
are text only which takes 17.91 sec without and 18.95 sec with 
suppression enabled (0.14 s loop overhead), so some 5% extra runtime.


\replaceword[more][slffl][sl{ff}l]
\replaceword[more][slfful][sl{ff}ul]
\replaceword[more][shlfful][shl{ff}ul]
\replaceword[more][shelfful][shel{ff}ul]

\startbuffer
\testfeatureonce{100}{
\dorecurse{10} {
test 1 test 2 test 3 test 4 test 5
shelfful
test 6 test 7 test 8 test 9 test 0
}
\par
}
\stopbuffer

\starttext
\getbuffer \page
\setreplacements[more]
\getbuffer
\stoptext

Btw, a 11 minutes baseline sounds like a lot to me.


Thanks again for the solution.

juh

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___




--

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___