← Prev in month
← Prev in thread
AW: [docbook-apps] Don't break chapter's to recto pages
Hello! With “half-double-sided” I mean that sometimes the pages switch between double-sided output(with odd and even pages) and single-sided output. But this issue only arises without the user.pagemaster! The main problem is that not every chapter wraps to the next page. Here are the complete customized templates: <xsl:template name="force.page.count"> <xsl:param name="element" select="local-name(.)"/> <xsl:param name="master-reference" select="''"/> <xsl:choose> <xsl:when test="$element != 'chapter'">auto</xsl:when> <xsl:when test="$double.sided != 0">end-on-even</xsl:when> <xsl:otherwise>no-force</xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="initial.page.number"> <xsl:param name="element" select="local-name(.)"/> <xsl:param name="master-reference" select="''"/> <xsl:variable name="first.book.content" select="ancestor::book/*[ not(self::title or self::subtitle or self::titleabbrev or self::bookinfo or self::info or self::dedication or self::preface or self::toc or self::lot)][1]"/> <xsl:choose> <xsl:when test="$double.sided != 0"> <xsl:choose> <xsl:when test="$element = 'chapter'">auto</xsl:when> <xsl:when test="$element = 'toc'">auto-odd</xsl:when> <xsl:when test="$element = 'book'">1</xsl:when> <xsl:when test="$element = 'preface'">auto-odd</xsl:when> <xsl:when test="($element = 'dedication' or $element = 'article') and not(preceding::chapter or preceding::preface or preceding::appendix or preceding::article or preceding::dedication or parent::part or parent::reference)">1</xsl:when> <xsl:when test="generate-id($first.book.content) = generate-id(.)">1</xsl:when> <xsl:otherwise>auto</xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$element = 'toc'">auto</xsl:when> <xsl:when test="$element = 'book'">1</xsl:when> <xsl:when test="$element = 'preface'">auto</xsl:when> <xsl:when test="($element = 'dedication' or $element = 'article') and not(preceding::chapter or preceding::preface or preceding::appendix or preceding::article or preceding::dedication or parent::part or parent::reference)">1</xsl:when> <xsl:when test="generate-id($first.book.content) = generate-id(.)">1</xsl:when> <xsl:otherwise>auto</xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="user.pagemasters"> <fo:page-sequence-master master-name="body-chapter"> <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="body-odd" 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">body-even</xsl:when> <xsl:otherwise>body-odd</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"/> <xsl:choose> <xsl:when test="$element = 'chapter'"> <xsl:value-of select="'body-chapter'"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$default-pagemaster"/> </xsl:otherwise> </xsl:choose> </xsl:template> Greetings, Mathias Von: Bob Stayton [mailto:] Gesendet: Mittwoch, 07. Oktober 2009 22:01 An: Mathias Schindler; DocBook Apps Betreff: Re: [docbook-apps] Don't break chapter's to recto pages Hi, I'm not clear what you mean by "half-double-sided". Can you provide a short example that illustrates the problem, and complete examples of your two customized templates? Bob Stayton Sagehill Enterprises ----- Original Message ----- From: Mathias Schindler To: DocBook Apps Sent: Monday, October 05, 2009 6:00 AM Subject: [docbook-apps] Don't break chapter's to recto pages Hi! I have a problem concerning the page breaks of <chapter> elements in double-sided PDF output! The case is that I want <part>s, <toc>, <preface>, <index> and <colophon> to break to the next recto page, while chapters and appendices should only break to the next page (regardless if recto or verso). First I tried to modify the “force.page.count”- and “initial.page.number”-templates as follows: force.page.count(only changed content):: <xsl:choose> <xsl:when test="$element != 'chapter'">auto</xsl:when> <xsl:when test="$double.sided != 0">end-on-even</xsl:when> <xsl:otherwise>no-force</xsl:otherwise> </xsl:choose> initial.page.number(only changed content): <xsl:when test="$double.sided != 0"> <xsl:choose> <xsl:when test="$element = 'chapter'">auto</xsl:when> … Unfortunately this ended up in displaying me a “half-double-sided” and “half-single-sided” document. Furthermore, not every chapter wants to wrap to a verso page… I also tried to add a custom user-pagemaster: <xsl:template name="user.pagemasters"> <fo:page-sequence-master master-name="body-chapter"> <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="body-odd" 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">body-even</xsl:when> <xsl:otherwise>body-odd</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"/> <xsl:choose> <xsl:when test="$element = 'chapter'"> <xsl:value-of select="'body-chapter'"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$default-pagemaster"/> </xsl:otherwise> </xsl:choose> </xsl:template> After that it works almost perfect – almost. The double-sided output is fine but again not every chapter breaks to a verso page. I sometimes have one blank page in front of a chapter and sometimes not. Can anyone help me? Thanks in advance, Mathias Schindler
← Prev in month
← Prev in thread