Keith, you can also check hyphenations using a script:

-- check-hyphens.lua
--[[ 
    analyze hyphenations based on a ConTeXt log file
    enable hyphenation tracking in the ConTeXt file with
    \enabletrackers[hyphenation.applied]
    then run this script with
    lua check-hyphens.lua input_file whitelist.ending
    for the input_file we assume .log, so no need to add this
    for the whitelist a file ending has to be supplied
    the whitelist is optional
]] 

-- local lines = string.splitlines(io.loaddata("oeps.tex")or "") or { }

-- local pprint = require('pprint')

function main (input_file, whitelist_file)
    local lines = lines_from(input_file .. ".log")
    local whitelist = {}
    if whitelist_file == nil then
        whitelist = {}
    else 
        whitelist = lines_from(whitelist_file)
    end
    --pprint (lines)
    --pprint (whitelist)
    local filteredWordlist = filterHyphenationsWordlist
                (cleanLines
                    (getHyphenationLines(lines)), 
                    whitelist)
    -- pprint(filteredWordlist)
    saveResultsToFile(filteredWordlist, 'check-hyphens.log')
end

-- see if the file exists

-- http://lua-users.org/wiki/FileInputOutput

-- see if the file exists
function file_exists(file)
    local f = io.open(file, "rb")
    if f then f:close() end
    return f ~= nil
end
  
-- get all lines from a file, returns an empty 
-- list/table if the file does not exist
function lines_from(file)
    if not file_exists(file) then return {} end
    local lines = {}
    for line in io.lines(file) do 
        lines[#lines + 1] = line
    end
    return lines
end

-- String testing
function starts_with(str, start)
    return str:sub(1, #start) == start
end

-- get relevant lines
function getHyphenationLines(lines)
    local lines_with_hyphenations = {}
    for k,v in pairs(lines) do
        if 
            (starts_with(v, "hyphenated") 
            and not string.find(v, "start hyphenated words") 
            and not string.find(v, "stop hyphenated words"))
        then table.insert(lines_with_hyphenations, v) end
    end
    return lines_with_hyphenations
end

-- String cleaning
-- wrapper functions

function cleanLines (xs)
    local cleanedLines = {}
    for k,v in pairs(xs) do
        table.insert(cleanedLines, cleanLine(v))
    end
    return cleanedLines
end

function cleanLine (x)
    return removeTrailingPunctuation(getWord(x))
end

-- 1. Start reading at colon 
function getWord(x)
    -- wir lesen aber Zeichen 26
    return string.sub(x,26)
end

-- 2. Remove trailing punctuation
function removeTrailingPunctuation (x)
    if string.find(x, ',') then
        return x:sub(1, -2)
    else
        return x
    end
end

-- test if word is in second list
function inList (x, list)
    for k,v in ipairs(list) do
        if v == x then
            return true
        end
    end
    return nil
end

-- Filter hyphenated words based on second list (whitelist)
function filterHyphenationsWordlist (xs, list)
    local result = {}
    for k,v in ipairs(xs) do
        if not inList(v, list) then table.insert (result, v) end
    end
    return result
end

function saveResultsToFile(results, output_file)
    -- Opens a file in write mode
    output_file = io.open("check_hyphens.log", "w")
    -- sets the default output file as output_file
    io.output(output_file)
    -- iterate oiver 
    for k,v in ipairs(results) do
        io.write(v..'\n')
    end
    -- closes the open file
    io.close(output_file)
end

-- Run
main(arg[1], arg[2])

> -----Ursprüngliche Nachricht-----
> Von: Keith McKay <mckaymeis...@gmail.com>
> Gesendet: Dienstag, 1. August 2023 20:22
> An: mailing list for ConTeXt users <ntg-context@ntg.nl>
> Betreff: [NTG-context] Re: Tracker for hyphens at the end of lines
> 
> Thanks Hans!
> 
> I'm never disappointed, always amazed with ConTeXt!
> 
> This is just what I was looking for.
> 
> Best Wishes
> 
> Keith McKay
> 
> On 01/08/2023 18:10, Hans Hagen via ntg-context wrote:
> > On 8/1/2023 4:54 PM, Keith McKay wrote:
> >> Hi colleagues,
> >>
> >> Is there a tracker for highlighting hyphens at the end of lines
> >> similar the way underfull and overfull boxes can be displayed with a
> >> coloured bar at the end of the offending line?
> >>
> >> I have looked at the wiki page "Reviewing hyphenation" and it has a
> >> solution for mkii from 2009 which, I would think, won't be suitable
> >> for present day ConTeXt. I have tried searching for hyphens using
> >> Skim and Adobe Acrobate viewers but although they find hyphenation in
> >> line they don't recognise hyphens at the edge of lines.
> >>
> >> Any help would be appreciated.
> > I suppose you would be disappointed it there was no tracker ...
> >
> > \enabletrackers[hyphenation.applied.console]
> > \enabletrackers[hyphenation.applied.visualize]
> >
> > you even get a file with the hyphenated words
> >
> > You can see all of them with
> >
> > \disabledirectives[backend.cleanup.flatten]
> > \bitwiseflip \normalizelinemode -\flattendiscretionariesnormalizecode
> > \showmakeup[discretionary]
> >
> > weren't it that i had to provide the directive for this to work well
> > (disbale flattening) so for that you have to wait till we update
> >
> > Hans
> >
> >
> > -----------------------------------------------------------------
> >                                           Hans Hagen | PRAGMA ADE
> >               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
> >        tel: 038 477 53 69 |
> >
> https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
> p
> > ragma-
> ade.nl%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc4fb2d4
> b
> >
> 4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7C1%7C
> 0%7C638265
> >
> 109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> CJQIjoiV2luM
> >
> zIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5cqZK5
> j5xmDoNJ
> > RkvHLQvmifP5drpkP8LZXHZIN6AmQ%3D&reserved=0 |
> >
> https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
> p
> > ragma-
> pod.nl%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc4fb2d4
> b
> >
> 4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7C1%7C
> 0%7C638265
> >
> 109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL
> CJQIjoiV2luM
> >
> zIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=lU0q8
> Um87m5GNP
> > AYdBnbZg5d3MmRIQtn4ffAOnMo7RY%3D&reserved=0
> > -----------------------------------------------------------------
> >
> >
> ___________________________________________________________________
> ___
> > _____________
> >
> > If your question is of interest to others as well, please add an entry
> > to the Wiki!
> >
> > maillist : ntg-context@ntg.nl /
> >
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww
> .
> > ntg.nl%2Fmailman%2Flistinfo%2Fntg-
> context&data=05%7C01%7Cdenis.maier%4
> >
> 0unibe.ch%7Cc8839bc4fb2d4b4f585508db92bc568e%7Cd400387a212f43
> eaac7f77a
> >
> a12d7977e%7C1%7C0%7C638265109822676715%7CUnknown%7CTWFpb
> GZsb3d8eyJWIjo
> >
> iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3
> 000%7C%
> >
> 7C%7C&sdata=IrC0veC0OAastbM%2FToranotsvOMMtYd9c2172Rv7k54%3D
> &reserved=
> > 0 webpage  :
> >
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww
> .
> > pragma-
> ade.nl%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc4fb2d4
> >
> b4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7C1%7
> C0%7C63826
> >
> 5109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAi
> LCJQIjoiV2lu
> >
> MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=gG6p
> jFfCmIfMW
> > lBBqqqKVMknsNrZBd80td7Egfzt1YI%3D&reserved=0 /
> >
> https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fconte
> >
> xt.aanhet.net%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc
> 4fb2d4
> >
> b4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7C1%7
> C0%7C63826
> >
> 5109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAi
> LCJQIjoiV2lu
> >
> MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=m7%
> 2FquU5%2BI
> > P3s3ENvsR0RD%2BABLLrwBe5Vrq3CJA%2FHwTs%3D&reserved=0
> > archive  :
> > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbitb
> > ucket.org%2Fphg%2Fcontext-
> mirror%2Fcommits%2F&data=05%7C01%7Cdenis.mai
> >
> er%40unibe.ch%7Cc8839bc4fb2d4b4f585508db92bc568e%7Cd400387a21
> 2f43eaac7
> >
> f77aa12d7977e%7C1%7C0%7C638265109822676715%7CUnknown%7CT
> WFpbGZsb3d8eyJ
> >
> WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D
> %7C3000
> >
> %7C%7C%7C&sdata=m4f4c%2BtTIHPoPZI7pdDN3N9%2FrL3XUC2q%2FWXD
> bU%2F7ILo%3D
> > &reserved=0 wiki     :
> >
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcont
> >
> extgarden.net%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc
> 4fb2d4
> >
> b4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7C1%7
> C0%7C63826
> >
> 5109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAi
> LCJQIjoiV2lu
> >
> MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=KUzZ
> UpM9ykzfi
> > wrJXS07NO5ePBd6dKKOSrZbqmT%2Bd5k%3D&reserved=0
> >
> ___________________________________________________________________
> ___
> > _____________
> ___________________________________________________________________
> ________________
> If your question is of interest to others as well, please add an entry to the
> Wiki!
> 
> maillist : ntg-context@ntg.nl /
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww
> .ntg.nl%2Fmailman%2Flistinfo%2Fntg-
> context&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc4fb2d4b4f
> 585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7C1%7C0
> %7C638265109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4
> wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%
> 7C%7C%7C&sdata=IrC0veC0OAastbM%2FToranotsvOMMtYd9c2172Rv7k54
> %3D&reserved=0
> webpage  :
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww
> .pragma-
> ade.nl%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc4fb2d4
> b4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7C1%7
> C0%7C638265109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC
> 4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000
> %7C%7C%7C&sdata=gG6pjFfCmIfMWlBBqqqKVMknsNrZBd80td7Egfzt1YI%3
> D&reserved=0 /
> https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fcontex
> t.aanhet.net%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc4
> fb2d4b4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7
> C1%7C0%7C638265109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWI
> joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C
> 3000%7C%7C%7C&sdata=m7%2FquU5%2BIP3s3ENvsR0RD%2BABLLrwBe5V
> rq3CJA%2FHwTs%3D&reserved=0
> archive  :
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbitbu
> cket.org%2Fphg%2Fcontext-
> mirror%2Fcommits%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc88
> 39bc4fb2d4b4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d79
> 77e%7C1%7C0%7C638265109822676715%7CUnknown%7CTWFpbGZsb3d
> 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%
> 3D%7C3000%7C%7C%7C&sdata=m4f4c%2BtTIHPoPZI7pdDN3N9%2FrL3XU
> C2q%2FWXDbU%2F7ILo%3D&reserved=0
> wiki     :
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fconte
> xtgarden.net%2F&data=05%7C01%7Cdenis.maier%40unibe.ch%7Cc8839bc4
> fb2d4b4f585508db92bc568e%7Cd400387a212f43eaac7f77aa12d7977e%7
> C1%7C0%7C638265109822676715%7CUnknown%7CTWFpbGZsb3d8eyJWI
> joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C
> 3000%7C%7C%7C&sdata=KUzZUpM9ykzfiwrJXS07NO5ePBd6dKKOSrZbqmT
> %2Bd5k%3D&reserved=0
> ___________________________________________________________________
> ________________
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

Reply via email to