Re: Numbering of figure captions
- To: mathgroup at smc.vnet.net
- Subject: [mg38710] Re: Numbering of figure captions
- From: Mike <mikeh1980 at optusnet.com.au>
- Date: Mon, 6 Jan 2003 03:43:07 -0500 (EST)
- References: <auuaf7$obi$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
This code actually puts a figure number in the cell margin of the graphic. My problem is slightly different. I have a text cell below the graphic which is a style called "figure caption." I have automatic numbering in this "figure caption" cell and it is this automatically generated number which I would like to make "static" at the top left hand side of the cell. Thanks Mike On 1/1/03 7:56 PM, in article auuaf7$obi$1 at smc.vnet.net, "Omega Consulting" <info at omegaconsultinggroup.com> wrote: > At 10:49 PM 12/30/2002, Mike wrote: >> I'm trying to implement automatic numbering of figure captions. This is no >> problem with the actual numbering eg. >> >> CellFrameLabels->{{Cell[ >> TextData[ {"Fig. ", >> CounterBox[ "NumberedFigureCaption"]}]], None}, {None, None}} >> >> I get the figure number in the left hand cell margin okay...but I'd like the >> number to remain in the top left hand corner of the cell. >> It currently floats in the middle left hand side of the cell. >> >> I've tried including things like >> >> CellBaseline -> >> CellLabelPositioning-> >> >> into the Cell box that contains the CounterBox but that doesn't seem to >> help. >> >> >> Any suggestions would be appreciated. >> >> thanks >> >> Mike > > You can't do this with the CellFrameLabels. They aren't that flexible. You > can do this with a GridBox, though. > > Here's your counter: > > num = Cell[TextData[ {"Fig. ", > CounterBox[ "NumberedFigureCaption"]}]]; > > Here's a function that creates a Graphics cell from a Graphics expression: > > GraphicsCell[gr_] := Cell[GraphicsData["PostScript", DisplayString[gr]]] > > Put them together in a GridBox and CellPrint: > > MakeFigure[gr_] := > CellPrint[ > Cell[BoxData[ > GridBox[{{num, GraphicsCell[gr]}}, RowAlignments->Top]], > "NumberedFigureCaption",CellFrameLabels->{{None, None}, {None, None}}] ] > > Now this gives you what you want: > > MakeFigure[Plot[x,{x,0,1}, DisplayFunction->Identity]] > or > Plot[x, {x, 0, 1}, DisplayFunction->MakeFigure] > > If you want to make a lot of these, use it to set $DisplayFunction. > > $DisplayFunction = (MakeFigure[#];#)&; > > And it will be done automatically. > > Plot[x,{x,0,1}] > > -------------------------------------------------------------- > Omega Consulting > "The final answer to your Mathematica needs" > http://omegaconsultinggroup.com > >