Perhaps a little more background could point to a solution. Where do
these two blocks (graphic and caption) fit into the larger layout? A
side-float? Part of a table? Maybe there's a way to convince the
formatter to make the content to the side(s) of the blocks as wide as
possible without exceeding the space remaining after the graphic takes
up its area.
-Brandon :)
On Mon, Jul 18, 2011 at 8:11 AM, Mathis Mörke
<mathis(_dot_)moerke(_at_)googlemail(_dot_)com> wrote:
From: "Tony Graham" <tgraham(_at_)mentea(_dot_)net>
Date: 15. Juli 2011 19:28:41 MESZ
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] adjust width of block to previous block
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
On Fri, July 15, 2011 5:58 pm, G. Ken Holman wrote:
At 2011-07-15 17:50 +0100, Tony Graham wrote:
On Fri, July 15, 2011 4:07 pm, Mathis Mörke wrote:
...
I don't know how to adjust the width of a next block to the previous
block. I have an external graphic in a block and want the next block
to have the same size as the block containing the external graphic.
Put them both in a fo:block-container with 'inline-progression-dimension'
set to the width of the graphic, which you are already using to set
'content-width' on the fo:external-graphic.
But I saw that the input width attribute was
optional and the comment at the top talked about
the width being "dynamic" (which I interpreted as "not known").
Hence the 'trickier' option.
If FOP supported 'table-layout="auto"', then you would have had another
option by using a table to contain the graphic and caption.
In my experience relying on "auto" hasn't been
very helpful because different vendors interpret
differently what to do with the width of
columns. As I mentioned in my post regarding a
side float, if the text of the caption of the
graphic is rendered wider than the width of the
graphic, then the table cell might simply stretch.
The 'table-layout="auto"' option would, like the fo:block-container
option, require setting the width, this time of the fo:table, to something
narrow and relying on the formatter to work at keeping the width of the
formatted table to the minimum possible. You'd also put the graphic and
the caption in separate cells to maximise the chance that the formatter
won't make the table wider than the graphic.
An implementation of the CSS2 automatic table layout algorithm [1] would
do what's wanted, but that's non-normative even for CSS2.
Both ideas are in the realm of a "Hail Mary pass" [2] to the formatter
since there is both leeway over .optimum vs .maximum and non-normative
algorithms in the specs.
Note also that the requirements for XSL FO 2.0 does include supporting
expressions containing information that's only available at formatting
time [3].
Regards,
Tony Graham tgraham(_at_)mentea(_dot_)net
Consultant http://www.mentea.net
Mentea 13 Kelly's Bay Beach, Skerries, Co. Dublin, Ireland
At first, thank you for your immediatly repsonses.
Nothing worked so far. I tried the length range and and setting the
table-layout to 'auto' neither. Instead of using a table I simulate a
table with fo:blocks. FOP Apache does not support table-and-caption.
Other ideas?
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--