Itemize columns with MPgraphics: another vertical spacing puzzle
Hi List, I need to itemize graphics when I use those graphics as the choices in a multiple choice question. When I do that in columns, I am getting excess space below the graphics. See example code and output below. Any suggestions for how I get rid of this space? I’m not sure if this is related to the itemize column spacing in my previous comment. Thanks, again! Gavin \starttext \defineitemgroup[choices] \setupchoices [each] [A,joinedup] [left=(, right=), width=1.7em, stopper=,] \define\choice{\item} \def\mycolor{.625red} \startuseMPgraphic{name} fill fullcircle scaled 40pt withcolor \mycolor; \stopuseMPgraphic \define[1]\mycolordot{\def\mycolor{#1}\framed[location=top,offset=0pt,frame=off]{\useMPgraphic{name}}} What is your favorite color? (There is too much space after these choices.) \startchoices[columns,four] \choice \mycolordot{.625red} \choice \mycolordot{.625blue} \choice \mycolordot{.625green} \choice \mycolordot{.625magenta} \stopchoices A ruledhboxs show the extra space is in the itemize, but not in the item contents. \ruledhbox{\startchoices[columns, four] \choice \ruledhbox{\mycolordot{.625red}} \choice \mycolordot{.625blue} \choice \mycolordot{.625green} \choice \mycolordot{.625magenta} \stopchoices} Putting a ruledhbox around the first item shows that each item has extra space that is not part of the item contents. (The ruledhbox also messes with the horizontal alignment, but I don't care about that.) \startchoices[columns] \ruledhbox{\choice \mycolordot{.625red}} \choice \mycolordot{.625blue} \choice \mycolordot{.625green} \choice \mycolordot{.625magenta} \stopchoices The extra space is not present without columns. \startchoices \choice \mycolordot{.625red} \choice \mycolordot{.625blue} \choice \mycolordot{.625green} \choice \mycolordot{.625magenta} \stopchoices \ruledhbox{My favorite color is:\def\mycolor{.625blue} \framed[location=top,offset=0pt,frame=on] {\useMPgraphic{name}}} \stoptext
Hi List, I solved this problem, but the solution is a bit mysterious to me. I was trying to solve another problem – removing the small space underneath the graphic in the framed box. I did this by adding boffset=-\strutdepth to the framed command. That not only got rid of the space inside the frame, it also removed the excess space between the rows in the itemize columns! I don’t know why this fix solved both problems, but I’m happy with the result. Now I can use options for the choices – like packed and joinedup – with consistent results for any number of columns. I’ve put the fixed code and output below, for anyone who is interested. Even when I’m a bit confused, I’m glad to be working with ConTeXt rather than any other system! Best, Gavin \starttext \defineitemgroup[questions] \setupquestions [1] [n] \define\question{\item} \defineitemgroup[choices] \setupchoices [each] [A,columns] [left=(, right=), width=1.7em, stopper=,] \define\choice{\item} \def\mycolor{.625red} \startuseMPgraphic{name} fill fullcircle scaled 40pt withcolor \mycolor; \stopuseMPgraphic \define[1]\mycolordot{\def\mycolor{#1}\framed[location=top,offset=0pt,boffset=-\strutdepth,frame=off]{\useMPgraphic{name}}} Here are a few great looking multiple choice questions about colors. \startquestions \question What is your favorite color? \startchoices[columns,four] \choice \mycolordot{.625red} \choice \mycolordot{.625blue} \choice \mycolordot{.625green} \choice \mycolordot{.625magenta} \stopchoices \question What is your least favorite color? \startchoices[columns] \choice \mycolordot{.625red} \choice \mycolordot{.625blue} \choice \mycolordot{.625green} \choice \mycolordot{.625magenta} \stopchoices \question Toward which colors do you feel indifferent? \startchoices[one] \choice \mycolordot{.625red} \choice \mycolordot{.625blue} \choice \mycolordot{.625green} \choice \mycolordot{.625magenta} \stopchoices \stopquestions That's it for questions about colors! \stoptext
On 1/14/2022 8:10 PM, Gavin via ntg-context wrote:
Hi List,
I solved this problem, but the solution is a bit mysterious to me. I was trying to solve another problem – removing the small space underneath the graphic in the framed box. I did this by adding boffset=-\strutdepth to the framed command. That not only got rid of the space inside the frame, it also removed the excess space between the rows in the itemize columns!
I don’t know why this fix solved both problems, but I’m happy with the result. Now I can use options for the choices – like packed and joinedup – with consistent results for any number of columns. I’ve put the fixed code and output below, for anyone who is interested.
Even when I’m a bit confused, I’m glad to be working with ConTeXt rather than any other system!
% your hack: \define[1]\mycolordot{\def\mycolor{#1}\framed[location=top,offset=0pt,boffset=-\strutdepth,xframe=off]{\useMPgraphic{name}}} % but ... you just don't want struts \define[1]\mycolordot{\def\mycolor{#1}\framed[location=top,offset=0pt,strut=no,frame=off]{\useMPgraphic{name}}} % and no offset but also no invisible frame \define[1]\mycolordot{\def\mycolor{#1}\framed[location=top,offset=overlay,frame=off]{\useMPgraphic{name}}} playing with framed for a while alway spays back Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Thanks, Hans! That works, and it makes sense. Playing with frames always pays, indeed. -Gavin
On Jan 14, 2022, at 3:18 PM, Hans Hagen
wrote: On 1/14/2022 8:10 PM, Gavin via ntg-context wrote:
Hi List, I solved this problem, but the solution is a bit mysterious to me. I was trying to solve another problem – removing the small space underneath the graphic in the framed box. I did this by adding boffset=-\strutdepth to the framed command. That not only got rid of the space inside the frame, it also removed the excess space between the rows in the itemize columns! I don’t know why this fix solved both problems, but I’m happy with the result. Now I can use options for the choices – like packed and joinedup – with consistent results for any number of columns. I’ve put the fixed code and output below, for anyone who is interested. Even when I’m a bit confused, I’m glad to be working with ConTeXt rather than any other system!
% your hack:
\define[1]\mycolordot{\def\mycolor{#1}\framed[location=top,offset=0pt,boffset=-\strutdepth,xframe=off]{\useMPgraphic{name}}}
% but ... you just don't want struts
\define[1]\mycolordot{\def\mycolor{#1}\framed[location=top,offset=0pt,strut=no,frame=off]{\useMPgraphic{name}}}
% and no offset but also no invisible frame
\define[1]\mycolordot{\def\mycolor{#1}\framed[location=top,offset=overlay,frame=off]{\useMPgraphic{name}}}
playing with framed for a while alway spays back
Hans
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (2)
-
Gavin
-
Hans Hagen