[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] Incorrect page numbers in index for indextermswithin mediaobjects?
Thanks, Bob.
Unfortunately, these are all still resulting in the same page numbers in
the index. I also tried with Antenna House, and have the same result.
--Scott
Bob Stayton wrote:
> Hi Scott,
> Well, looking at the template matching mediaobject in fo/graphics.xsl, the
> content of its objectinfo element is not processed, so no inline markers are
> laid down for those indexterms. The indexterms are found during the global
> sweep of indexterms to build the index, but there will be no target for
> those index entries to link to in the body of the document.
>
> This customization of the mediaobject template works with XEP. I can't get
> PDF images to work with FOP 0.95 at all, so I can't say if it works for
> that. In this customization, I added a keep-together property for the
> container block, and I added an apply-templates to the indexterms so their
> markers will be included in the block container.
>
>
> <xsl:template match="mediaobject|mediaobjectco">
>
> <xsl:variable name="olist" select="imageobject|imageobjectco
> |videoobject|audioobject
> |textobject"/>
>
> <xsl:variable name="object.index">
> <xsl:call-template name="select.mediaobject.index">
> <xsl:with-param name="olist" select="$olist"/>
> <xsl:with-param name="count" select="1"/>
> </xsl:call-template>
> </xsl:variable>
>
> <xsl:variable name="object" select="$olist[position() = $object.index]"/>
>
> <xsl:variable name="align">
> <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/>
> </xsl:variable>
>
> <xsl:variable name="id">
> <xsl:call-template name="object.id"/>
> </xsl:variable>
>
> <fo:block id="{$id}" keep-together.within-column="always">
> <xsl:if test="$align != '' ">
> <xsl:attribute name="text-align">
> <xsl:value-of select="$align"/>
> </xsl:attribute>
> </xsl:if>
>
> <xsl:apply-templates select="objectinfo/indexterm"/>
> <xsl:apply-templates select="$object"/>
> <xsl:apply-templates select="caption"/>
> </fo:block>
> </xsl:template>
>
> Bob Stayton
> Sagehill Enterprises
> bobs@sagehill.net
>
>
> ----- Original Message -----
> From: "Scott Hudson" <scott.hudson@flatironssolutions.com>
> To: "Bob Stayton" <bobs@sagehill.net>
> Cc: "Hudson, Scott" <Scott.Hudson@flatironssolutions.com>; "John Brown"
> <johnbrown105@hotmail.com>; <[email protected]>
> Sent: Tuesday, September 30, 2008 2:44 PM
> Subject: Re: [docbook-apps] Incorrect page numbers in index for indexterms
> within mediaobjects?
>
>
>> Hi Bob,
>>
>> oddly enough, when I turn the xep.extensions on, I get that same set of
>> errors. If I process the file with fop1.extensions on and xep.extensions
>> off, the XEP produces the file and the index entries all pointing to the
>> title page of the chapter...
>>
>> If I process using FOP, I get the index as well, but the PDFs aren't
>> rendered on the actual pages.
>>
>> --Scott
>>
>> Bob Stayton wrote:
>>> Hi Scott,
>>> I tried processing your chapter, and XEP reports:
>>>
>>> [error] no entries for index key 'TEST'
>>> [error] no entries for index key 'TEST2'
>>> [error] no entries for index key 'TEST3'
>>>
>>> and there are no page numbers in the index. Did you do some
>>> customization
>>> regarding indexterms inside objectinfo? I'm not getting any index
>>> markers
>>> at all for those indexterms.
>>>
>>> Bob Stayton
>>> Sagehill Enterprises
>>> bobs@sagehill.net
>>>
>>>
>>> ----- Original Message -----
>>> From: "Scott Hudson" <scott.hudson@flatironssolutions.com>
>>> To: "Scott Hudson" <scott.hudson@flatironssolutions.com>
>>> Cc: "John Brown" <johnbrown105@hotmail.com>;
>>> <docbook-apps@lists.oasis-open.org>
>>> Sent: Tuesday, September 30, 2008 1:23 PM
>>> Subject: [docbook-apps] Incorrect page numbers in index for indexterms
>>> within mediaobjects?
>>>
>>>
>>>> Folks,
>>>>
>>>> Now that I can include external pages in my document, I want to be able
>>>> to
>>>> add indexterms to them. When I generate the index, however, the page
>>>> numbers aren't quite right. These should each end up on a separate page.
>>>> Instead, I get:
>>>> T
>>>> TEST, 144, 144
>>>> TEST2, 144
>>>> TEST3, 144
>>>>
>>>> Here's my source:
>>>> <chapter>
>>>> <title>Case Study</title>
>>>> <mediaobject>
>>>>
>>>> <objectinfo><indexterm><primary>TEST</primary></indexterm></objectinfo>
>>>> <imageobject>
>>>> <imagedata fileref="casestudy_001.pdf" scalefit="1"
>>>> width="100%" contentdepth="100%" format="PDF"/>
>>>> </imageobject>
>>>> </mediaobject>
>>>> <para/>
>>>> <mediaobject>
>>>>
>>>> <objectinfo><indexterm><primary>TEST2</primary></indexterm></objectinfo>
>>>> <imageobject>
>>>> <imagedata fileref="casestudy_002.pdf" scalefit="1"
>>>> width="100%" contentdepth="100%" format="PDF"/>
>>>> </imageobject>
>>>> </mediaobject>
>>>> <para/>
>>>> <mediaobject>
>>>>
>>>> <objectinfo><indexterm><primary>TEST3</primary></indexterm></objectinfo>
>>>> <imageobject>
>>>> <imagedata fileref="casestudy_003.pdf" scalefit="1"
>>>> width="100%" contentdepth="100%" format="PDF"/>
>>>> </imageobject>
>>>> </mediaobject>
>>>> <para/>
>>>> <mediaobject>
>>>>
>>>> <objectinfo><indexterm><primary>TEST</primary></indexterm></objectinfo>
>>>> <imageobject>
>>>> <imagedata fileref="casestudy_004.pdf" scalefit="1"
>>>> width="100%" contentdepth="100%" format="PDF"/>
>>>> </imageobject>
>>>> </mediaobject>
>>>> </chapter>
>>>>
>>>> Ideas?
>>>>
>>>> Thanks,
>>>>
>>>> --Scott
>>>>
>>>> Scott Hudson wrote:
>>>>> Thanks, John! I had to add an additional template to contain the
>>>>> chapter, but otherwise works like a charm!
>>>>>
>>>>> <xsl:template match="chapter[@role='external-doc']">
>>>>> <xsl:apply-imports />
>>>>> </xsl:template>
>>>>>
>>>>> <xsl:template match="chapter[@role='external-doc']/mediaobject">
>>>>> <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
>>>>> font-size="0"
>>>>> line-height="0" break-before="page"
>>>>> break-after="page" start-indent="0" end-indent="0">
>>>>> <xsl:apply-imports/>
>>>>> </fo:block>
>>>>> </xsl:template>
>>>>>
>>>>> Best regards,
>>>>>
>>>>> --Scott
>>>>>
>>>>>
>>>>> John Brown wrote:
>>>>>> Scott Hudson <scott.hudson <at> flatironssolutions.com> writes:
>>>>>>
>>>>>>> John Brown and Jirka Kosek both had good suggestions to split the
>>>>>>> case
>>>>>>> study into individual pages using pdftk and then use mediaobject.
>>>>>>>
>>>>>>> This approach seems to work pretty well, although the generated index
>>>>>>> entries don't seem to point to the same page where the image is
>>>>>>> rendered
>>>>>>> (pretty close, though).
>>>>>>>
>>>>>> Never used indexterm, so I have no idea.
>>>>>>
>>>>>> <! -- Docbook code snipped -->
>>>>>>
>>>>>>> The biggest problem I'm having now is that the image doesn't appear
>>>>>>> to
>>>>>>> scale the entire width of the page. I'm using XEP, but FOP 0.95 does
>>>>>>> the
>>>>>>> same (or worse).
>>>>>>>
>>>>>>> What am I missing? I've tried width="100%" but that also errors. I've
>>>>>>> also tried setting the default.image.width param, but that doesn't
>>>>>>> seem
>>>>>>> to work either.
>>>>>>>
>>>>>>> Any ideas?
>>>>>>>
>>>>>>> Thanks and best regards,
>>>>>>>
>>>>>>> --Scott
>>>>>> DocBook is making the image fit within the margins. The answer is
>>>>>> to define custom page masters with left and right margins = 0.
>>>>>> Maybe you will also want to suppress the normal DocBook headers
>>>>>> and footers with titles and page numbers.
>>>>>>
>>>>>> The following code allows you to write
>>>>>> <appendix role='external-doc'>
>>>>>> <mediaobject>
>>>>>> ...
>>>>>> </mediaobject>
>>>>>> <mediaobject>
>>>>>> ...
>>>>>> </mediaobject>
>>>>>> <!-- etc. -->
>>>>>> </appendix>
>>>>>>
>>>>>> If your external page is the same size as your DocBook page, it will
>>>>>> take up the entire page.
>>>>>>
>>>>>> <xsl:template name="user.pagemasters">
>>>>>> <fo:simple-page-master master-name="back-odd-body-only"
>>>>>> page-width="{$page.width}"
>>>>>> page-height="{$page.height}"
>>>>>> margin-top="0"
>>>>>> margin-bottom="0"
>>>>>> margin-left="0"
>>>>>> margin-right="0">
>>>>>> <xsl:if test="$axf.extensions != 0">
>>>>>> <xsl:call-template name="axf-page-master-properties">
>>>>>> <xsl:with-param
>>>>>> name="page.master">back-odd-body-only</xsl:with-param>
>>>>>> </xsl:call-template>
>>>>>> </xsl:if>
>>>>>> <fo:region-body margin-bottom="0"
>>>>>> margin-top="0"
>>>>>> column-gap="{$column.gap.back}"
>>>>>> column-count="{$column.count.back}">
>>>>>> </fo:region-body>
>>>>>>
>>>>>> </fo:simple-page-master>
>>>>>>
>>>>>> <fo:simple-page-master master-name="back-even-body-only"
>>>>>> page-width="{$page.width}"
>>>>>> page-height="{$page.height}"
>>>>>> margin-top="0"
>>>>>> margin-bottom="0"
>>>>>> margin-left="0"
>>>>>> margin-right="0">
>>>>>> <xsl:if test="$axf.extensions != 0">
>>>>>> <xsl:call-template name="axf-page-master-properties">
>>>>>> <xsl:with-param
>>>>>> name="page.master">back-even-body-only</xsl:with-param>
>>>>>> </xsl:call-template>
>>>>>> </xsl:if>
>>>>>> <fo:region-body margin-bottom="0"
>>>>>> margin-top="0"
>>>>>> column-gap="{$column.gap.back}"
>>>>>> column-count="{$column.count.back}">
>>>>>> </fo:region-body>
>>>>>> </fo:simple-page-master>
>>>>>>
>>>>>> <fo:page-sequence-master master-name="back-body-only">
>>>>>> <fo:repeatable-page-master-alternatives>
>>>>>> <fo:conditional-page-master-reference master-reference="blank"
>>>>>>
>>>>>> blank-or-not-blank="blank"/>
>>>>>> <fo:conditional-page-master-reference
>>>>>> master-reference="back-first"
>>>>>> page-position="first"/>
>>>>>> <fo:conditional-page-master-reference
>>>>>> master-reference="back-odd-body-only"
>>>>>> odd-or-even="odd"/>
>>>>>> <fo:conditional-page-master-reference odd-or-even="even">
>>>>>> <xsl:attribute name="master-reference">
>>>>>> <xsl:choose>
>>>>>> <xsl:when test="$double.sided
>>>>>> !=0">back-even-body-only</xsl:when>
>>>>>> <xsl:otherwise>back-odd-body-only</xsl:otherwise>
>>>>>> </xsl:choose>
>>>>>> </xsl:attribute>
>>>>>> </fo:conditional-page-master-reference>
>>>>>> </fo:repeatable-page-master-alternatives>
>>>>>> </fo:page-sequence-master>
>>>>>>
>>>>>> </xsl:template>
>>>>>>
>>>>>> <xsl:template name="select.user.pagemaster">
>>>>>> <xsl:param name="element"/>
>>>>>> <xsl:param name="pageclass"/>
>>>>>> <xsl:param name="default-pagemaster"/>
>>>>>>
>>>>>> <!-- Return my customized title page master name if for titlepage,
>>>>>> otherwise return the default -->
>>>>>>
>>>>>> <xsl:choose>
>>>>>> <xsl:when test="@role = 'external-doc'">
>>>>>> <xsl:value-of select="'back-body-only'" />
>>>>>> </xsl:when>
>>>>>> <xsl:otherwise>
>>>>>> <xsl:value-of select="$default-pagemaster"/>
>>>>>> </xsl:otherwise>
>>>>>> </xsl:choose>
>>>>>> </xsl:template>
>>>>>>
>>>>>> <xsl:template
>>>>>> match="d:appendix[@role='external-doc']/d:mediaobject">
>>>>>> <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
>>>>>> font-size="0"
>>>>>> line-height="0" break-before="page"
>>>>>> break-after="page" start-indent="0" end-indent="0">
>>>>>> <xsl:apply-imports/>
>>>>>> </fo:block>
>>>>>> </xsl:template>
>>>>>>
>>>>>> I am not sure if the back-body-even-only and back-body-odd-only
>>>>>> page masteres are strictly necessary.
>>>>>>
>>>>>> See the following thread:
>>>>>> http://thread.gmane.org/gmane.text.docbook.apps/19707
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>>>>>> For additional commands, e-mail:
>>>>>> docbook-apps-help@lists.oasis-open.org
>>>>>>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>>>>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>>>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>>>>
>>>>
>>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>>
>>
>>
>
>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]