Hyphentation/Linebreak after x characters inside \WORD?
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
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
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
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
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: 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.
participants (2)
-
Benjamin Buchmuller
-
Rik Kabel