ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Aditya Mahajan <adityam@umich.edu>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: tabulate inside itemize
Date: Wed, 29 Jul 2020 13:12:20 -0400 (EDT)	[thread overview]
Message-ID: <nycvar.YAK.7.78.908.2007291249050.1589@nqv-guvaxcnq> (raw)
In-Reply-To: <SN6PR11MB2576F5AAABEFCF120D669AE2BD700@SN6PR11MB2576.namprd11.prod.outlook.com>

[-- Attachment #1: Type: text/plain, Size: 3341 bytes --]

On Wed, 29 Jul 2020, Mike Cooper wrote:

> I would normally use tab stops and line breaks to achieve the following in a numbered list:
>
> 1.  DC     =  3.20 bbl =   420 ft
>    HWDP   =  3.90 bbl =   450 ft
>    DP     = 34.63 bbl = 2,037 ft
>    Totals = 41.73 bbl = 2,907 ft
>
> 2.  [next step …]
>
>
> This is what I tried, but the output has a blank line at the number.  I can’t find anything about tabulate inside itemize.
>
> \starttext
>
> \startitemize[n]
>            \startitem \starttabulate[|l|l|r|l|r|]
>                                    \NC DC \NC = \NC 3.20 bbl \NC = \NC 420 ft \NC \NR
>                                    \NC HWDP \NC = \NC 3.90 bbl \NC = \NC 450 ft \NC \NR
>                                    \NC DP \NC = \NC 34.63 bbl \NC =  \NC 2,037 ft \NC \NR
>                                    \NC DC \NC = \NC 41.73 bbl \NC =  \NC 2,907 ft \NC \NR
>                                    \stoptabulate \stopitem
>            \startitem Convert 2,907 to TVD: \\TVD = 2,907 × cosine 45° = 2,907 × 0.707 = 2,056 ft \stopitem
>            \startitem ΔP = 2,056 ft × 0.052 × (15 - 7.2) = 834 psi
> \stopitemize
>
> \stoptext

Naive solution: Add a \hbox around tabulate:


\defineframed[tabulateframed][location=top,frame=off]

\starttext

\startitemize[n]
             \startitem \dontleavehmode
               \tabulateframed{\starttabulate[|l|l|r|l|r|]
                                     \NC DC \NC = \NC 3.20 bbl \NC = \NC 420 ft \NC \NR
                                     \NC HWDP \NC = \NC 3.90 bbl \NC = \NC 450 ft \NC \NR
                                     \NC DP \NC = \NC 34.63 bbl \NC =  \NC 2,037 ft \NC \NR
                                     \NC DC \NC = \NC 41.73 bbl \NC =  \NC 2,907 ft \NC \NR
                                     \stoptabulate} \stopitem
             \startitem Convert 2,907 to TVD: \\TVD = 2,907 × cosine 45° = 2,907 × 0.707 = 2,056 ft \stopitem
             \startitem ΔP = 2,056 ft × 0.052 × (15 - 7.2) = 834 psi
\stopitemize

\stoptext

Normally, you can fix such issues by appending a \dontleavehmode in front of the command but that doesn't work here. The offending code is line 1300 of tabl-tbl.mkxl:

\unexpanded\def\tabl_tabulate_outside_before
   {\ifhmode\par\fi
    \ifhmode
      \vbox\bgroup
      \let\tabl_tabulate_outside_after    \egroup
      \let\tabl_tabulate_outside_inbetween\relax
    \orelse\ifinner
      \let\tabl_tabulate_outside_after    \relax
      \let\tabl_tabulate_outside_inbetween\relax
    \else
      \whitespace
      \tabulationparameter\c!before
      \relax
      \let\tabl_tabulate_outside_after    \tabl_tabulate_outside_after_indeed
      \let\tabl_tabulate_outside_inbetween\tabl_tabulate_outside_inbetween_indeed
    \fi}
\protect

When you use \dontleavehmode\starttabulate, \starttabulate starts in horizontal mode but the first \par in the above command takes it back to vertical mode. The next \ifhmode then evaluates to false, \ifinner also evaluates to false, so we enter the \else loop which inserts a \whitespace.

The reason why adding a \hbox{...} (which is what \framed without an align key does) works is because inside an \hbox{...} \par doesn't take TeX back to vertical mode. So, we enter the first branch.

Aditya

[-- 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
___________________________________________________________________________________

  parent reply	other threads:[~2020-07-29 17:12 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-29 16:38 Mike Cooper
2020-07-29 17:09 ` Wolfgang Schuster
2020-07-29 17:20   ` Hans Hagen
2020-07-29 17:11 ` Hans Hagen
2020-07-29 17:26   ` Mike Cooper
2020-07-29 17:12 ` Aditya Mahajan [this message]
2020-07-29 17:27   ` Mike Cooper

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=nycvar.YAK.7.78.908.2007291249050.1589@nqv-guvaxcnq \
    --to=adityam@umich.edu \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).