On Monday, October 25, 2021 7:34:06 AM IST kauśika cittūr wrote:
On Sunday, October 24, 2021 7:42:59 AM IST kauśika cittūr wrote:
Dear list,
In short, my question is: why does \wordright cause a line-break when the line preceding it breaks with hyphenation and does not otherwise? How to avoid it (if at all possible)?
I have this delimitedtext instance called 'amnata' defined as below:
\definemeasure[amnatamargin][3cm] \definedelimitedtext
[amnata]
\setupdelimitedtext
[amnata] [
left=, right=, leftmargin={\measure{amnatamargin}}, rightmargin={\measure{amnatamargin}},
]
I am using this to quote paragraph(s) of other authors. Since, I also want to indicate where the quote is from, I use this as follows:
\startamnata
⋮
\wordright{author} \stopamnata
so that the author's name appears at the right-edge of the block.
When the penultimate line inside the block breaks without hyphenation, then argument of \wordright is typeset as expected (i.e. in the same line).
On the other hand, when the penultimate line inside this block breaks with hyphenation, the argument of \wordright is pushed to the next line even when there is enough space for it on the same line.
Here is a sample illustrating this:
\startamnata A quote from another author : Suppose that thereisalongwordhere. \wordright{– author} \stopamnata
\startamnata A quote from another author : Here, the text does not cause hyphenation in the first line. \wordright{– author} \stopamnata
[I have attached the output here as an image]
How do I ensure that this does not happen, if that is possible at all? I suppose this is expected behaviour but I am not able to understand why.
Thanks, kauśika
Dear list,
Although, not a fix for the issue, here is a workaround that allowed me to achieve what I wanted:
\definedescription[amnata] \setupdescription[amnata] [closesymbol={}, closecommand=\wordright, before=\startamnatanarrower, after=\stopamnatanarrower]
\startamnata A quote from another author : Suppose that thereisalongwordhere. \wordright{– author} \stopamnata
With this the argument of \wordright appears correctly at the right-edge of the block. Note that this does not work (as expected) when closesymbol is not set (or, is empty). Therefore, here I have set closesymbol={U+200B}, which is the zero width space.
Thanks, kauśika
Dear list, As it turns out, my workaround here is subpar since it inserts an undesired line after the description block. Hans was very kind to send me a fix to place in cont-new.mkxl that fixes the issue. However, due to my errors in properly pasting the fix correctly, it did not work. I updated LMTX today and the fix is already merged. I am pasting below Hans' fix for reference (for anyone who might come across this later) – \protect \protected\def\spac_word_right_indeed#1#2% {\registerparwrapper {\v!word:\v!right} {\begingroup \frozen\parfillskip \zeropoint \frozen\finalhyphendemerits\zerocount \endgroup} {\doifelseparwrapper{\v!word:\v!right}{\unregisterparwrapper{\v!word:\v! right}}\donothing \removeunwantedspaces \doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}% \hfilll \discretionary{\strut}{\strut}{\strut}% \allowbreak % changed back from \hskip\zeropoint \hfilll \quad % decent spacing #2}} \unprotect kauśika