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