ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Contractions in ligature suppression word list
@ 2022-06-06  5:37 Thangalin via ntg-context
  2022-06-06 18:19 ` Bruce Horrocks via ntg-context
  0 siblings, 1 reply; 6+ messages in thread
From: Thangalin via ntg-context @ 2022-06-06  5:37 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Thangalin


[-- Attachment #1.1: Type: text/plain, Size: 581 bytes --]

Attached are tweaked endings for words like "wolf" to include contracted
endings, but they are being ignored. This makes for a minor inconsistency:

  wolfing -- no ligature
  wolfish -- no ligature
  wolfin -- no ligature (incorrect spelling, though)
  wolfin' -- ligature

Any ideas? I tried adding various -in suffixes without luck:

            suffixes = [[
                in,
                in',
                in’,
                ing
            ]],

See https://wiki.contextgarden.net/Ligatures#Word_suppression for an
example usage.

Thank you!

[-- Attachment #1.2: Type: text/html, Size: 2125 bytes --]

[-- Attachment #2: lang-en.llg --]
[-- Type: application/octet-stream, Size: 10214 bytes --]

-- The starting point of this list is a post at:
--
-- https://english.stackexchange.com/a/50957/22099
-- https://english.stackexchange.com/questions/50660/when-should-i-not-use-a-ligature-in-english-typesetting
-- mentioned on the ConTeXt mailing list after some discussion
-- about this mechanism.

return {
    name       = "english",
    version    = "1.00",
    comment    = "English ligature suppression",
    author     = "Mico Loretan, Dave Jarvis, & Hans Hagen",
    copyright  = "Public domain",
    options    = {
        {
            patterns = {
                fi  = "f|i",
                fl  = "f|l",
            },
            words = [[
                -- f|i
                deafish
                dwarfish
                elfish
                oafish
                selfish
                serfish
                unselfish
                wolfish

                -- f|l
                beefless
                briefless
                hoofless
                leafless
                roofless
                selfless
                turfless
            ]],
            suffixes = [[
                ness
                ly
            ]],
        },
        {
            patterns = {
                fi  = "f|i",
            },
            words = [[
                proofing
            ]],
            prefixes = [[
                air
                child
                fire
                flame
                moth
                rust
                sound
                water
                weather
            ]],
        },
        {
            patterns = {
                fi  = "f|i",
            },
            words = [[
                -- f|i
                beef
                brief
                debrief
                chaf
                coif
                fif
                jackknif
                knif
                midwif
                leaf
                loaf
                reef
                sheaf
                straf
                waif
                wif
                vouchsaf

                goof
                hoof
                roof
                reroof
                spoof
                whoof
                woof

                barf
                bedwarf
                begulf
                dwarf
                engulf
                enserf
                golf
                gulf
                ingulf
                kerf
                rolf
                scarf
                self
                snarf
                surf
                turf
                wharf
                windsurf
                wolf
            ]],
            suffixes = [[
                in,
                ing
            ]],
        },
        {
            patterns = {
                ff  = "f|f",
                fi  = "f|i",
                fl  = "f|l",
                ffi = "f|fi",
                ffl = "f|fl",
            },
            words = [[
                -- f|f
                bookshelfful
                mantelshelfful
                shelfful

                -- f|i
                elfin

                beefier
                comfier
                goofier
                gulfier
                leafier
                surfier
                turfier
                beefiest
                comfiest
                goofiest
                gulfiest
                leafiest
                surfiest
                turfiest

                beefily
                goofily
                goofiness

                -- f|l
                aloofly
                briefly
                chiefly
                deafly
                liefly

                calflike
                dwarflike
                elflike
                gulflike
                hooflike
                leaflike
                rooflike
                serflike
                sheaflike
                shelflike
                surflike
                turflike
                waiflike
                wolflike

                halflife
                shelflife
                halfline
                roofline

                leaflet
                leaflets
                leafleted
                leafleting
                leafletting
                leafletted
                leafleteer

                pdflatex

                -- f|fi
                chaffinch
                wolffish

                -- f|fl
                safflower
                safflowers
            ]],
        },
        {
            patterns = {
                ffi = "ff|i",
            },
            words = [[
                -- ff|i
                cuffing
            ]],
            prefixes = [[
                hand
                un
            ]],
        },
        {
            patterns = {
                ffi = "ff|i",
            },
            words = [[
                -- ff|i
                feoffing
            ]],
            prefixes = [[
                en
                in
            ]],
        },
        {
            patterns = {
                ffi = "ff|i",
            },
            words = [[
                -- ff|i
                staffing
                stuffing
            ]],
            prefixes = [[
                re
                over
                under
            ]],
        },
        {
            patterns = {
                ffi = "ff|i",
            },
            words = [[
                -- ff|i
                ruffing
            ]],
            prefixes = [[
                cross
                over
                under
            ]],
        },
        {
            patterns = {
                ffi = "ff|i",
                ffl = "ff|l",
            },
            words = [[
                -- ff|i
                draffish
                giraffish
                gruffish
                offish
                raffish
                sniffish
                standoffish
                stiffish
                toffish

                -- ff|l
                cuffless
                stuffless
            ]],
            suffixes = [[
                ly
            ]],
        },
        {
            patterns = {
                ffl = "ff|l",
            },
            words = [[
                -- ff|l
                scofflaw
                cufflink
                offline
                offload
            ]],
            suffixes = [[
                s
                ed
                ing
            ]],
        },
        {
            patterns = {
                ffi = "ff|i",
                ffl = "ff|l",
            },
            words = [[
                -- ff|i
                baffing
                biffing
                boffing
                bluffing
                outbluffing
                buffing
                rebuffing
                chaffing
                cheffing
                chuffing
                coffing
                coiffing
                daffing
                doffing
                fluffing
                gaffing
                gruffing
                huffing
                luffing
                miffing
                muffing
                offing
                piaffing
                puffing
                quaffing
                reffing
                riffing
                sclaffing
                scoffing
                scuffing
                shroffing
                sluffing
                sniffing
                snuffing
                spiffing
                stiffing
                stuffing
                tariffing
                tiffing
                waffing
                whiffing
                yaffing

                buffier
                chaffier
                chuffier
                cliffier
                daffier
                fluffier
                gruffier
                huffier
                iffier
                miffier
                puffier
                scruffier
                sniffier
                snuffier
                spiffier
                stuffier
                buffiest
                chaffiest
                chuffiest
                cliffiest
                daffiest
                fluffiest
                gruffiest
                huffiest
                iffiest
                miffiest
                puffiest
                scruffiest
                sniffiest
                snuffiest
                spiffiest
                stuffiest

                daffily
                fluffily
                gruffily
                huffily
                puffily
                scruffily
                sniffily
                snuffily
                spiffily
                stuffily

                fluffiness
                huffiness
                iffiness
                puffiness
                scruffiness
                sniffiness
                spiffiness
                stuffiness

                baffies
                biffies
                jiffies
                taffies
                toffies

                waffie

                Pfaffian
                Wolffian
                Wulffian

                -- ff|l
                bluffly
                gruffly
                ruffly
                snuffly
                stiffly

                rufflike
                clifflike
            ]],
        },
        {
            patterns = {
                ft  = "f|t",
                fft = "ff|t",
            },
            words = [[
                -- f|t
                chieftain
                chieftains
                chieftaincy
                chieftainship

                fifteen
                fifteens
                fifteenth
                fifteenths
                fifth
                fifthly
                fifths
                fifties
                fiftieth
                fiftieths
                fifty
                fiftyish

                halftime
                halftone

                rooftop
                rooftops
                rooftree

                -- ff|t
                offtrack
            ]]
        }
    }
}

[-- Attachment #3: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contractions in ligature suppression word list
  2022-06-06  5:37 Contractions in ligature suppression word list Thangalin via ntg-context
@ 2022-06-06 18:19 ` Bruce Horrocks via ntg-context
  2022-06-06 21:56   ` Thangalin via ntg-context
  0 siblings, 1 reply; 6+ messages in thread
From: Bruce Horrocks via ntg-context @ 2022-06-06 18:19 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Bruce Horrocks



> On 6 Jun 2022, at 06:37, Thangalin via ntg-context <ntg-context@ntg.nl> wrote:
> 
> Attached are tweaked endings for words like "wolf" to include contracted endings, but they are being ignored. This makes for a minor inconsistency:
> 
>   wolfing -- no ligature
>   wolfish -- no ligature
>   wolfin -- no ligature (incorrect spelling, though)
>   wolfin' -- ligature
> 
> Any ideas? I tried adding various -in suffixes without luck:
> 
>             suffixes = [[
>                 in,
>                 in',
>                 in’,
>                 ing
>             ]],
> 
> See https://wiki.contextgarden.net/Ligatures#Word_suppression for an example usage.
> 
> Thank you!
> <lang-en.llg>

I'm probably missing something here but...

1) The file you attached doesn't include the word "wolfing", nor "wolfin". I assume they need to be added into the f|i section? Wolfish *is* present so I'm not sure why it's being ignored unless there is an error being generated as a result of point (2) below, causing the whole file to be ignored.

2) Your suffixes list has comma separators - all the other word lists use whitespace as a separator.

3) Lastly, dumb question but... have you checked that you edited the right file? In my ConTeXt install there are two "lang-en.llg" files - one under <root>/context-osx-64/tex/texmf-context/tex/context/patterns/lmtx and the other under .../patterns/mkxl

—
Bruce Horrocks
Hampshire, UK

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contractions in ligature suppression word list
  2022-06-06 18:19 ` Bruce Horrocks via ntg-context
@ 2022-06-06 21:56   ` Thangalin via ntg-context
  2022-06-06 22:18     ` Denis Maier via ntg-context
  0 siblings, 1 reply; 6+ messages in thread
From: Thangalin via ntg-context @ 2022-06-06 21:56 UTC (permalink / raw)
  To: Bruce Horrocks; +Cc: Thangalin, mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 1115 bytes --]

Thanks for the response, Bruce.


1) The file you attached doesn't include the word "wolfing", nor "wolfin".
> I assume they need to be


The suffixes section accounts for this. Wolfing and wolfish both suppress
the ligature correctly.

I removed the comma separators, good catch. No difference, though.

Looks like I edited
/opt/context/tex/texmf-context/tex/context/patterns/mkxl/lang-en.llg
instead of the LMTX file. SMH.

I've now tried both files, lmtx and mkxl:

            suffixes = [[
                in
                in'
                in’
                ing
            ]],

Wolfish works fine, the ligature is suppressed as expected. Wolfing,
wolfin, and wolfin' aren't suppressed. I'd have thought that defining the
word "wolf" with a suffix of "ing" (and variations thereof) would suppress
ligatures at the suffix boundary?

Maybe that's not the case. If so, then it means having to define all the
*f-ing words (heh) a few times for the different suffixes (in', in’, and
ing), which seems to defeat the purpose of separating suffixes?

Help is appreciated.

[-- Attachment #1.2: Type: text/html, Size: 2416 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contractions in ligature suppression word list
  2022-06-06 21:56   ` Thangalin via ntg-context
@ 2022-06-06 22:18     ` Denis Maier via ntg-context
  2022-06-07  0:13       ` Thangalin via ntg-context
  0 siblings, 1 reply; 6+ messages in thread
From: Denis Maier via ntg-context @ 2022-06-06 22:18 UTC (permalink / raw)
  To: ntg-context, ntg; +Cc: denis.maier


[-- Attachment #1.1: Type: text/plain, Size: 1551 bytes --]

Could you please share a complete MWE. Makes it easier to test if the problem occurs here as well.
Best,
Denis

Von: ntg-context <ntg-context-bounces@ntg.nl> Im Auftrag von Thangalin via ntg-context
Gesendet: Montag, 6. Juni 2022 23:56
An: Bruce Horrocks <ntg@scorecrow.com>
Cc: Thangalin <thangalin@gmail.com>; mailing list for ConTeXt users <ntg-context@ntg.nl>
Betreff: Re: [NTG-context] Contractions in ligature suppression word list

Thanks for the response, Bruce.


1) The file you attached doesn't include the word "wolfing", nor "wolfin". I assume they need to be

The suffixes section accounts for this. Wolfing and wolfish both suppress the ligature correctly.

I removed the comma separators, good catch. No difference, though.

Looks like I edited /opt/context/tex/texmf-context/tex/context/patterns/mkxl/lang-en.llg instead of the LMTX file. SMH.

I've now tried both files, lmtx and mkxl:

            suffixes = [[
                in
                in'
                in’
                ing
            ]],

Wolfish works fine, the ligature is suppressed as expected. Wolfing, wolfin, and wolfin' aren't suppressed. I'd have thought that defining the word "wolf" with a suffix of "ing" (and variations thereof) would suppress ligatures at the suffix boundary?

Maybe that's not the case. If so, then it means having to define all the *f-ing words (heh) a few times for the different suffixes (in', in’, and ing), which seems to defeat the purpose of separating suffixes?

Help is appreciated.

[-- Attachment #1.2: Type: text/html, Size: 5849 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contractions in ligature suppression word list
  2022-06-06 22:18     ` Denis Maier via ntg-context
@ 2022-06-07  0:13       ` Thangalin via ntg-context
  2022-06-07  7:10         ` Denis Maier via ntg-context
  0 siblings, 1 reply; 6+ messages in thread
From: Thangalin via ntg-context @ 2022-06-07  0:13 UTC (permalink / raw)
  To: denis.maier; +Cc: Thangalin, mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 264 bytes --]

Here's a short example (version 2022.05.11 11:36):

\setuplanguage[en][goodies={lang-en.llg}]

\starttext
  % Expected: no ligature; actual: as expected
  wolfish

  % Expected: no ligatures; actual: ligature
  wolfing
  wolfin'
  wolfin’
\stoptext

[-- Attachment #1.2: Type: text/html, Size: 503 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Contractions in ligature suppression word list
  2022-06-07  0:13       ` Thangalin via ntg-context
@ 2022-06-07  7:10         ` Denis Maier via ntg-context
  0 siblings, 0 replies; 6+ messages in thread
From: Denis Maier via ntg-context @ 2022-06-07  7:10 UTC (permalink / raw)
  To: thangalin; +Cc: denis.maier, ntg-context


[-- Attachment #1.1: Type: text/plain, Size: 2407 bytes --]

A somewhat more complete testfile with a couple of options is below. My context installation is not current so please double check, but I think it boils down to this:  apostrophes seem not to be considered to be part of a word. Once I enable wolfin under \startlanguageoptions[en] it will disable the fi-ligature everywhere below, but adding the word variants with an apostroph doesn’t do anything, neither to the explicit wordlist under startlanguageoptions, nor in one of the additional goodies files.

Denis

Von: Thangalin <thangalin@gmail.com>
Gesendet: Dienstag, 7. Juni 2022 02:14
An: Maier, Denis Christian (UB) <denis.maier@unibe.ch>
Cc: mailing list for ConTeXt users <ntg-context@ntg.nl>; Bruce Horrocks <ntg@scorecrow.com>
Betreff: Re: [NTG-context] Contractions in ligature suppression word list

Here's a short example (version 2022.05.11 11:36):

\setuplanguage[en][goodies={lang-en.llg}]

\starttext
  % Expected: no ligature; actual: as expected
  wolfish

  % Expected: no ligatures; actual: ligature
  wolfing
  wolfin'
  wolfin’
\stoptext


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\startluacode
-- Testfile for fi ligature over suffix boundary

local testoversuffixboundary = {
  name    = "test-over-suffix-boundary",
  options = {
    {
    patterns = {fi  = "f|i",},
    words = [[ wolf ]],
                suffixes = [[
    in'
                in’
                ]],
    },
  },
}

-- Testfile for fi ligature in word with apostroph
local testwithsuffix = {
  name    = "test-with-suffix",
  options = {
    {
    patterns = {fi  = "f|i",},
    words = [[ wolfin' wolfin’ ]],
    },
  },
}

-- which table do we want to test?
-- table.save("test.llg",testoversuffixboundary)
table.save("test",testwithsuffix)
\stopluacode

\setuplanguage[en][goodies={lang-en.llg,test.llg}]

% explicit suppression
\startlanguageoptions[en]
wolf|in' % this here doesn't do anything
wolf|in’ % this here doesn't do anything either
%wolf|in % this here disables the fi ligature across the board for all the words below
\stoplanguageoptions


\mainlanguage[en]

\starttext

% defined in lang-en.llg => works
   wolfish
   wolfing

  % Expected: no ligatures; actual: ligature
  wolfin'
  wolfin’

  % shibboleth
  wolfin

\stoptext

[-- Attachment #1.2: Type: text/html, Size: 8580 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-06-07  7:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-06  5:37 Contractions in ligature suppression word list Thangalin via ntg-context
2022-06-06 18:19 ` Bruce Horrocks via ntg-context
2022-06-06 21:56   ` Thangalin via ntg-context
2022-06-06 22:18     ` Denis Maier via ntg-context
2022-06-07  0:13       ` Thangalin via ntg-context
2022-06-07  7:10         ` Denis Maier via ntg-context

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).