[NTG-context] Hyphentation/Linebreak after x characters

Benjamin Buchmuller benjamin.buchmuller at gmail.com
Thu Apr 23 23:16:36 CEST 2020


Hi Rik,

Thanks for the fast reply! Your example works indeed nicely. However, within this solution my problem has shifted now (fully) towards breaking after the same number of characters, which seems to work for your sample string, but not for the sequences that I need to place.

What I would like to achieve is something like:

5’-GATTGCTTACTCCTGGTTGG
TGGGGCTTACATTCTGTCGCCTC
AAAACTACTAGAGCCGGCATATT
CTAGAAGGGCCGCCTTCATGTGG
etc.

(There might be hyphens or not, this is not so much important to me.)

But what I get is currently:

5'-GATTGCTTACTCCTG- 
GTTGGTGGGGCTTACATTCT- 
GTCGCCTCAAAACTACTA- 
GAGCCGGCATATTCTA- 
GAAGGGCCGCCTTCATGTGGC- 
etc.

Which looks ragged with \tt. Certainly, this is because ConTeXt applies the default hyphenation pattern. But I guess, there might be no “no language” pattern or is there? Also, I agree, it’s a bit odd that nright/nleft seem to make no difference towards the result.

This is the MWE based on your solution:

\define[2]\mycommandc{
    \startxrow
    \startxcell o#1 \stopxcell
    \startxcell \tt\WORD{5'-#2} \stopxcell
    \stopxrow
    }

\definebreakpoint[mybreaks][][nright=100,nleft=100,type=1]
\setbreakpoints[mybreaks]

\starttext

\setupxtable[width=5cm]
\startxtable
\mycommandc{C}{GATTGCTTACTCCTGGTTGGTGGGGCTTACATTCTGTCGCCTCAAAACTACTAGAGCCGGCATATTCTAGAAGGGCCGCCTTCATGTGGCCTAGGGCACCATCGCGTACGAGGGCAAAAAATGAGTTTACCGCTGCGAAGTCTCTACGTCACGGCCAACCACAGTCCTGCTCCCAACGAAATTTAGACGCTGTCGTGAAACCTGAATTCGAGGATAAGCCGCGTCATGAAGAGTCTACTG}
\stopxtable

\stoptext

> On 23 Apr 2020, at 22:02, ntg-context-request at ntg.nl wrote:
> 
> Send ntg-context mailing list submissions to
> 	ntg-context at ntg.nl
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	https://mailman.ntg.nl/mailman/listinfo/ntg-context
> or, via email, send a message with subject or body 'help' to
> 	ntg-context-request at ntg.nl
> 
> You can reach the person managing the list at
> 	ntg-context-owner at ntg.nl
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of ntg-context digest..."
> Today's Topics:
> 
>   1. Re: Hyphentation/Linebreak after x characters inside \WORD?
>      (Rik Kabel)
> 
> From: Rik Kabel <ConTeXt at rik.users.panix.com>
> Subject: Re: [NTG-context] Hyphentation/Linebreak after x characters inside \WORD?
> Date: 23 April 2020 at 21:46:59 CEST
> To: ntg-context at ntg.nl, benjamin.buchmuller at gmail.com
> 
> 
> 
> 
> On 4/23/2020 15:01, Benjamin Buchmuller wrote:
>> Sorry, I have just realized that the problem might not be \WORD{} actually, so this one hyphenates:
>> 
>> \define[2]\mycommand{
>> 	\startxrow
>> 	\startxcell o#1 \stopxcell
>> 	\startxcell \tt\WORD #2 \stopxcell
>> 	\stopxrow
>> 	}
>> 
>> Whereas these ones don’t: 
>> 
>> 
>> \define[2]\mycommand{
>> 	\startxrow
>> 	\startxcell o#1 \stopxcell
>> 	\startxcell \tt\WORD #2-3' \stopxcell
>> 	\stopxrow
>> 	}
>> 
>> \define[2]\mycommand{
>> 	\startxrow
>> 	\startxcell o#1 \stopxcell
>> 	\startxcell 5'-\tt\WORD #2 \stopxcell
>> 	\stopxrow
>> 	}
>> 
>> Assuming that this has to do with the presence of “-“ which will be the preferred breakpoint. So, I guess the questions boils down to how to define the second argument of
>> 
>> \definebreakpoint[mybreaks][][nright=12,nleft=12,type=1]
>> 
>> in this case or how to “deactivate” the default \setbreakpoints[compound]?
>> 
>> 
>> 
>>> On 23 Apr 2020, at 20:46, Benjamin Buchmuller <benjamin.buchmuller at gmail.com>
>>>  wrote:
>>> 
>>> Hi again,
>>> 
>>> I am reading a CSV file into ConTeXt which contains long DNA sequences (>> 40 characters) to place in xtables. So far, this works fine. However, I need to uppercase the entries and need to \tt them. When I do this inside \WORD however, they don’t hyphenate any more.
>>> 
>>> I’m using:
>>> 
>>> \defineseparatedlist
>>> 	[mylist]
>>> 	[
>>> 	separator={,}, quotechar={"},
>>> 	command=\mycommand
>>> 	]
>>> 
>>> \define[2]\mycommand{
>>> 	\startxrow
>>> 	\startxcell o#1 \stopxcell
>>> 	\startxcell 5’-{\tt\WORD{#2}}-3' \stopxcell
>>> 	\stopxrow
>>> 	}
>>> 
>>> Since I don’t have access to each entry, I cant place hyphenation marks directly. Is there a way to tell ConTeXt to hyphenate after say, 12 characters?
>>> 
>>> Thanks for your help.
>>> 
>>> 
>>> Benjamin
>>> 
> The following works for me: 
> 
> \define[2]\mycommanda{
>     \startxrow
>     \startxcell o#1 \stopxcell
>     \startxcell \tt\WORD #2 \stopxcell
>     \stopxrow
>     }
> 
> \define[2]\mycommandb{
>     \startxrow
>     \startxcell o#1 \stopxcell
>     \startxcell \tt\WORD #2-3' \stopxcell
>     \stopxrow
>     }
> 
> \define[2]\mycommandc{
>     \startxrow
>     \startxcell o#1 \stopxcell
>     \startxcell 5'-\tt\WORD #2 \stopxcell
>     \stopxrow
>     }
> 
> \definebreakpoint[mybreaks][][nright=12,nleft=12,type=1]
> \setbreakpoints[mybreaks]
> 
> \starttext
> 
> \setupxtable[width=5cm]
> \startxtablex
> \mycommanda{A}{lsfkgjfkgshgkhigewhgajkdkfkalhfdklahfkhaakfakfh}
> \mycommandb{B}{lsfkgjfkgshgkhigewhgajkdkfkalhfdklahfkhaakfakfh}
> \mycommandc{C}{lsfkgjfkgshgkhigewhgajkdkfkalhfdklahfkhaakfakfh}
> \stopxtable
> 
> \stoptext
> 
> 
> Producing:
> 
> <nijiabomaaejpjhk.png>
> 
> Indeed, it produces the same when nleft and nright are both set to 1 or 12 or 100, but not when setbreakpoints is removed.
> 
> If you are trying to do something else, please provide an MWE.
> 
> 
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
> 
> maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive  : https://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________



More information about the ntg-context mailing list