Re: Numbering of figure captions
- To: mathgroup at smc.vnet.net
- Subject: [mg38635] Re: [mg38612] Numbering of figure captions
- From: Omega Consulting <info at omegaconsultinggroup.com>
- Date: Wed, 1 Jan 2003 03:40:58 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
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