æ¬ãDave PawsonãXSL-FO-XMLãå°å·ã§èŠæ ãããããã2002ãã®è³æã䜿çšãããŸããã
ææžæ§é
XSL-FOå ã®ããã¥ã¡ã³ãã3ã€ã®è«ççãªéšåã«åå²ããã®ãæ £äŸã§ãã
- ããã³ããã¿ãŒ -ã¿ã€ãã«ããŒãžã泚éãç®æ¬¡ãã€ã©ã¹ãã®ãªã¹ããªã©ãå«ãããã³ãããŒã
- äž»èŠäºé ïŒãŸãã¯æ¬æ ïŒ-ææžãè¡šãã€ã©ã¹ããªã©ã®ããã¹ããçŽæ¥å«ãäž»èŠéšå
- ããã¯ãã¿ãŒ -ã€ã³ããã¯ã¹ãçšèªéãæžèªãªã©ãå«ãããã¯ããŒã
ãããXSL-FOã®èŠ³ç¹ããã®æçµææžã®æ§é ã§ããããšã¯æ³šç®ã«å€ããŸãã éåžžãDITAãœãŒã¹ææžã«ã¯ããã¹ãïŒè¡šãšå³ïŒã®ã¿ãå«ãŸããŸãã DITAèŠçŽ ã«ã¯ãå€ãå ¬éã§ã圹å²ãæããå±æ§ïŒäœ¿çšèšèªãé 眮ãé£æ¥èŠçŽ ãžã®ãã€ã³ããªã©ïŒãå«ãŸããŸãã ç®æ¬¡ããªã¹ããã€ã³ããã¯ã¹ãè¡šçŽ-ããã¥ã¡ã³ãã®ãããã®éšåã¯ãå ã®ã³ã³ãã³ãã«åºã¥ããŠèªåçã«çæãããŸãã
åé¢ã®ããã¥ã¡ã³ãã«ã¯ãåé¢ããã³/ãŸãã¯èé¢ãæ¬ èœããŠããå ŽåããããŸãããŸãã¯ãã¡ã€ã³ããã¥ã¡ã³ããšçµã¿åãããããšãã§ããŸãã ã¡ã€ã³éšåã¯åžžã«ååšããŸãã
ããŒã¯ã¢ãããã¡ã€ã«
ããã¥ã¡ã³ãã®ã³ã³ããŒãã³ãããšã«ãç¬èªã®ããŒãžã¬ã€ã¢ãŠãã䜿çšã§ããŸãã ãã¹ãŠã®ã¬ã€ã¢ãŠãïŒããŒãžã¿ã€ãïŒã¯ã .. \ org.dita.pdf2 \ cfg \ foãã©ã«ããŒã«ããlayout-masters.xslãã¡ã€ã«ã«èšè¿°ãããŠããŸãã
åããŒã¯ã¢ããã®ãã©ã¡ãŒã¿ãŒã®ã»ããã¯ããã©ã«ããŒ.. \ org.dita.pdf2 \ cfg \ fo \ attrsã«ããlayout-masters-attr.xslãã¡ã€ã«ã§èšå®ãããŸãã
ã»ããå ã®ãã©ã¡ãŒã¿ãŒå€ã¯ãæ瀺çã«æå®ããããå¥ã®ãã©ã¡ãŒã¿ãŒãžã®åç §ãšããŠæå®ããŸãã åç §ããããã©ã¡ãŒã¿ãŒã¯ããã©ã¡ãŒã¿ãŒãã¡ã€ã«ã®ããããã§æ瀺çã«æå®ããå¿ èŠããããŸãã
ã¬ã€ã¢ãŠãèŠçŽ
XSL-FOããã¥ã¡ã³ãã®ã«ãŒãèŠçŽ ã¯foïŒrootã§ãã ããã«å¯Ÿããå€æã¯ããã¡ã€ã«.. \ org.dita.pdf2 \ xsl \ fo \ root-processing.xslã«ãããŸãã ãã¹ãŠã®ã¿ã€ãã®ããŒãžã®ããŒã¯ã¢ãããå«ããã®åã¯foïŒlayout-master-setã§ã ïŒå³ãåç §ïŒã

foïŒlayout-master-setèŠçŽ ã«ã¯ã2ã€ã®åãå«ãŸããŸãã
- foïŒsimple-page-master-ããã¥ã¡ã³ãã®ç¹å®ã®éšåã®ããŒãžã®ã¬ã€ã¢ãŠãã®èª¬æãå«ãŸããŸãïŒããšãã°ãç®æ¬¡ïŒ
- foïŒpage-sequence-master-ç¹å®ã®ããŒã¯ã¢ãããæã€ããŒãžã®ã·ãŒã±ã³ã¹ãçæããŸãã ããã¥ã¡ã³ãã圢æããããšãå ã®DITAã³ã³ãã³ãã¯ãããã®ã·ãŒã±ã³ã¹ã§é ä¿¡ãããŸãã
äž¡æ¹ã®èŠçŽ ã«ã¯ã master-nameãã©ã¡ãŒã¿ãŒã§æå®ãããäžæã®ååããããŸãã ããã«å¿ããŠãããã¥ã¡ã³ããäœæãããšãã«ãå¿ èŠãªããŒãžã¬ã€ã¢ãŠããåŒã³åºãããŸãã åŒã³åºãã¯foïŒpage-sequenceãšã¬ã¡ã³ãããè¡ãããŸããããã¯ãå¿ èŠãªããŒã¯ã¢ãããæã€ããŒãžéã§DITAã®ã³ã³ãã³ããé åžããããã«èšèšãããŠããŸãã foïŒpage-sequenceã¯ã master-referenceãã©ã¡ãŒã¿ãŒãä»ããŠfoïŒsimple-page-masterãŸãã¯foïŒpage-sequence-masterãåç §ããŸãã
質åãçºçããŸã-foïŒsimple-page-masterãçŽæ¥åç §ã§ããå ŽåããªãfoïŒpage-sequence-masterã䜿çšããŸãã å®éã«ã¯ãåãã¿ã€ãã®ããŒã¯ã¢ããã«å¯ŸããŠãµãã¿ã€ãã䜿çšã§ããŸããã»ã¯ã·ã§ã³ã®æåã®ããŒãžãæåŸã®ããŒãžãå¶æ°ããŒãžãå¥æ°ããŒãžã åãµãã¿ã€ãããã³ã¡ã€ã³ã¿ã€ãã«å¯ŸããŠãç¬èªã®ãã©ã¡ãŒã¿ãŒã»ãããèšå®ãããŸãã foïŒpage-sequence-masterã䜿çšãããšãå ¥åãã©ã¡ãŒã¿ãŒã«ãã£ãŠã䜿çšããããŒã¯ã¢ããã®ã¿ã€ããåçã«æ±ºå®ã§ããŸãã foïŒsimple-page-masterãçŽæ¥åŒã³åºãå Žåãã©ã®ããŒã¯ã¢ãããéžæããããäºåã«ç¥ãå¿ èŠããããŸãããããã¯åžžã«å®è¡å¯èœã§ã¯ãããŸããã
DITA-OTã§ã¯ããµãã¿ã€ãåã¯æ¬¡ã®ããã«å®çŸ©ãããŸãã
- æåã®ããŒãžã§ã¯ãã¡ã€ã³ã¿ã€ãã®ååã«-firstãè¿œå ããŸãã
- æåŸã®--last ;
- å¥æ°ã®å Žå--odd ;
- å¶æ°ã®å Žå--even ;
- 空çœããŒãžã®å Žå--blank ã
ã·ã³ãã«ããŒãžãã¹ã¿ãŒ
åè¿°ããããã«ã foïŒsimple-page-masterèŠçŽ ã¯ãããã¥ã¡ã³ãã®ç¹å®ã®éšåã®ããŒãžã®ã¬ã€ã¢ãŠããèšè¿°ããããã«èšèšãããŠããŸãã
XSL-FOã§ã¯ãã©ã®ããŒãžã«ã5ã€ã®äœæ¥é åãå«ãŸããŠããŸãïŒå³ãåç §ïŒã
- region-body-ããã¥ã¡ã³ãã®ã³ã³ãã³ããé 眮ãããããŒãžã®ã¡ã€ã³é åã
- region- before-ããããŒã
- region- after-ããã¿ãŒã
- region-start-å·Šãã£ãŒã«ãïŒããã¹ããå·Šããå³ã«åããããïŒ;
- region-end-å³ãã£ãŒã«ãïŒããã¹ããå·Šããå³ã«åããïŒã
åãšãªã¢ã«ã¯ååããããŸãã ããã©ã«ãã§ã¯ãã¢ã€ãã ã®ååãšäžèŽããŸãã ååã¯region-nameãã©ã¡ãŒã¿ãŒã§æå®ã§ããŸãã é åã®ååã¯ãããã¥ã¡ã³ããäœæãããšãã«ãã©ã®é åã«ã©ã®ããŒã¿ã衚瀺ãããã瀺ãããã«äœ¿çšãããŸãã ããšãã°ãéçfoïŒéçã³ã³ãã³ãããŒã¿ã¯ãã»ãšãã©ã®å ŽåããããŒãŸãã¯ããã¿ãŒã«è¡šç€ºãããŸãã

XSL-FOã®åé åã¯ãåãååïŒ foåå空éå ïŒã®èŠçŽ ã«å¯Ÿå¿ããŠããŸãã ãããã®èŠçŽ ã¯ãã¹ãŠfoïŒsimple-page-masterã®åã§ãã
ã·ã³ãã«ããŒãžãã¹ã¿ãŒãªãã·ã§ã³
foïŒsimple-page-masterèŠçŽ ã«ã¯ã次ã®ãã©ã¡ãŒã¿ãŒããããŸãã
- ãã¹ã¿ãŒå -äžæã®ããŒã¯ã¢ããèå¥åã
- page-height-ããŒãžã®é«ãã
- ããŒãžå¹ -ããŒãžå¹ ã
- margin-top ã margin-bottom ã margin-left ãããã³margin-rightã¯ãããŒãžäœçœã®ãµã€ãºã§ãã ãããã¯ãã¯ãŒã¯ã¹ããŒã¹ã§ããããããŒããã³ããã¿ãŒãšåºå¥ããå¿ èŠããããŸãã
- reference-orientation-ããã©ã«ãå€ãåºæºãšããããŒãžã®äžéšã®åãïŒåæèšåãã®è§åºŠïŒã å€ã¯-270ã-180ã-90ã0ã90ã180ã270ã§ããããã©ã«ãã¯0ã§ãã
- writing-mode-ããŒãžäžã®é åãšãããã¯ïŒæ®µèœãè¡šãå³ãªã©ïŒã®äœçœ®ã決å®ããã¢ãŒãã 3ã€ã®ã¢ãŒãããããŸãïŒlr-tbïŒå·Šããå³ãäžããäžïŒãrl-tbïŒå³ããå·ŠãäžããäžïŒãtb-rlïŒäžããäžãå³ããå·ŠïŒã ã¢ãŒãåã®æåã®éšåã¯è¡ã®ããã¹ãã®æ¹åã瀺ãã2çªç®ã¯é åå ã®ãããã¯ã®æ¹åã瀺ããŸãã
次ã®å³ã¯ã åç §æ¹åãšæžã蟌ã¿ã¢ãŒãã®ãã©ã¡ãŒã¿ãŒã«å¿ããããŒãžäžã®é åã®äœçœ®ã瀺ããŠããŸãã

ãšãªã¢ãµã€ãº
åé åïŒ region-bodyãé€ãïŒã«ã¯ãããŒãžã®å¯Ÿå¿ããé¢ã«åçŽãªæ¹åã®é åã®ãµã€ãºã決å®ããç¯å²ãã©ã¡ãŒã¿ãŒããããŸãã ããããŒãšããã¿ãŒã®å Žåãããã¯é«ãããã£ãŒã«ãã®å Žåãå¹ ã§ãã é·ãã®åäœããŸãã¯å¯Ÿå¿ããããŒãžãµã€ãºã®å²åïŒ ããŒãžã®é«ããšããŒãžã®å¹ ã®ãã©ã¡ãŒã¿ãŒïŒã§èšå®ãããŸãã
ãªãŒãžã§ã³ããã£ãªãŒãžã§ã³
region-bodyé åã®ãµã€ãºã¯ç°ãªãæ¹æ³ã§å®çŸ©ãããŸãã ãŸããããŒãžã®äœçœã®ãµã€ãºã«ãã£ãŠå¶éãããŸãã 2çªç®ã«ã4ã€ã®ãã©ã¡ãŒã¿ãŒããããŸãïŒ margin-top ã margin-bottom ã margin-left ãããã³margin-right ããããã¯ã2çªç®ã®å³ã«ããã·ã¥ã§ç€ºãããŠãã ã ããŒãžåç §é åã®ã³ã³ãã³ãé·æ¹åœ¢ããregion-bodyé åã®ããŒãžã³ãå®çŸ©ããŸãã ãããã®ã€ã³ãã³ãã¯ãé·ãã®åäœã§ããŸãã¯ããŒãžåç §é åã®ã³ã³ãã³ãé·æ¹åœ¢ã®ãµã€ãºã®å²åãšããŠæå®ã§ããŸãã
ããã§ã é å-身äœé åã®å¢çã¯ãé£æ¥ããé åã®ãµã€ãºãšãã©ã¡ãŒã¿ã«äŸåããªããšããååã«éèŠãªçµè«ãäžãã¹ãã§ãã
region-bodyé åã®äœçœã¯ãããŒãžã®åãã«æããããŸãã ããšãã°ãããŒãžã®åãã90ã«èšå®ãããŠããå Žåãäžéšã®ã€ã³ãã³ãã¯ãã®æ¹åããã«ãŠã³ããããŸãã ãªãŒãžã§ã³æ¬äœã«ç¬èªã®æ¹åïŒ reference-orientationãã©ã¡ãŒã¿ãŒïŒãããå Žåãããã¯ã€ã³ãã³ãã®äœçœ®ã«åœ±é¿ããŸããã ããŒãžã®åãã«å¿ããŠã«ãŠã³ããããŸãã region-bodyé åã®åãã¯ãåãããã¯ããã®äžã«é 眮ãããæ¹æ³ã«ã®ã¿åœ±é¿ããŸãã
region-bodyãªãŒãžã§ã³ã®å Žå ãããã¥ã¡ã³ãã®ã³ã³ãã³ããé 眮ãããåã®æ°ãæå®ã§ããŸãã ããã«ã¯2ã€ã®ãã©ã¡ãŒã¿ãŒãé¢äžããŸããcolumn-count-åã®æ°ãèšå®ããŸãïŒ1以äžã§ãªããã°ãªããŸããïŒã column-gap-é£æ¥ããåéã®è·é¢ã
ãšãªã¢å ã®æŽå
ãšãªã¢å ã®äœçœ®åããã«ã¯ã display-alignãã©ã¡ãŒã¿ãŒã䜿çšãããŸããããã¯ãå€auto ã before ã center ã afterãåãããšãã§ããŸãã ãšãªã¢å ã®åãããã¯ã®é 眮ãã æžã蟌ã¿ã¢ãŒããã©ã¡ãŒã¿ãŒã§æå®ãããæ¹åã«åŸã£ãŠæ±ºå®ããŸãã
è§ã¯ã©ãã§ããïŒ
ããŒãžã®äžéšã®2ã€ã®è§ã¯ãããããŒãŸãã¯å·Šå³ã®äœçœã§å æã§ããŸãã åæ§ã«ãäžé ã¯ããã¿ãŒãŸãã¯å·Šå³ã®äœçœã§ãã ããã¯ãããã¿ãŒã«æå®ãããåªå é äœãã©ã¡ãŒã¿ãŒãåå ã§ãã ãã©ã¡ãŒã¿ãŒãtrueã®å Žåãããã¿ãŒã¯ã³ãŒããŒïŒãã©ã¡ãŒã¿ãŒãæå®ãããŠããã³ãŒããŒïŒãå æããŸãã ãã©ã¡ãŒã¿ãfalseã®å Žåãã³ãŒããŒã¯ãã£ãŒã«ããå æããŸãã ããã©ã«ãã§ã¯ããã©ã¡ãŒã¿ãŒã¯falseã§ãã
ããŒãžã·ãŒã±ã³ã¹ãã¹ã¿ãŒ
åè¿°ã®foïŒpage-sequence-masterèŠçŽ ã¯ãããã¥ã¡ã³ãã®åœ¢æäžã«å ã®DITAã³ã³ãã³ããé ä¿¡ãããäžé£ã®ããŒãžãäœæããããšãç®çãšããŠããŸãã
ãã®ã¢ã€ãã ã«ã¯3ã€ã®åããããŸãã
- foïŒsingle-page-master-reference -1ããŒãžã®ã·ãŒã±ã³ã¹ãäœæãããšãã«äœ¿çšããŸãã ããšãã°ãããã¥ã¡ã³ãã®ã¿ã€ãã«ããŒãžã foïŒsingle-page-master-referenceèŠçŽ ã䜿çšããå Žåã1ããŒãžã§å ã®ã³ã³ãã³ãããã¹ãããã®ã«ååã§ãªãå Žåãå ¬éæã«ãšã©ãŒãçºçããããšã«æ³šæããŠãã ããã
- foïŒrepeatable-page-master-reference-åãããŒã¯ã¢ãããæã€ããŒãžã®å¶éãããã·ãŒã±ã³ã¹ãŸãã¯ç¡å¶éã®ã·ãŒã±ã³ã¹ã圢æããããã«äœ¿çšãããŸãã foïŒrepeatable-page-master-referenceèŠçŽ ã䜿çšããå Žåãçæã§ããããŒãžæ°ã®å¶éãæå®ã§ããŸãã ãããè¡ãã«ã¯ã maximum-repeatsãã©ã¡ãŒã¿ãŒã䜿çšããŸãã ããã©ã«ãã§ã¯ãããŒãžæ°ã¯ç¡å¶éã§ãã
- foïŒrepeatable-page-master-alternatives-æå®ããããã©ã¡ãŒã¿ãŒã«å¿ããŠç°ãªãããŒã¯ã¢ãããæã€è€æ°ã®ã·ãŒã±ã³ã¹ã圢æããããã«äœ¿çšãããŸãã æãæè»ãªããŒã«ã§ãã
foïŒrepeatable-page-master-alternativesèŠçŽ ã®ã¬ã€ã¢ãŠãéžææ¡ä»¶ã¯ã fo ïŒæ¡ä»¶ä»ãããŒãžãã¹ã¿ãŒåç §åã䜿çšããŠèšå®ãããŸã ã åæ¡ä»¶ã«ã¯ã1ã€ãã3ã€ã®ãã©ã¡ãŒã¿ãŒãå«ããããšãã§ããŸãããããã®ãã©ã¡ãŒã¿ãŒã¯ãæ¡ä»¶ãæºãããããã©ãããäžç·ã«æ±ºå®ããŸãã
ãããã¯æ¬¡ã®ãªãã·ã§ã³ã§ãã
- page-position-ã»ã¯ã·ã§ã³å ã®ããŒãžã®å Žæ-firstïŒfirstïŒã last ïŒlastïŒã rest ïŒfirstã§ã¯ãªããlast not notïŒã any ïŒanyïŒã
- å¥æ°ãŸãã¯å¶æ° -ããŒãžçªå·ã®å¶æ° - å¥æ° ïŒå¥æ°ïŒã å¶æ° ïŒå¶æ°ïŒã ä»»æ ïŒä»»æïŒã
- blank-or-not-blank-ããŒãžã«foãããã¯ããéä¿¡ãããããŒã¿ããããã©ããïŒflow- ç©ºçœ ïŒç©ºïŒã éç©ºçœ ïŒç©ºã§ã¯ãªãïŒã ä»»æ ïŒä»»æïŒã
- foïŒrepeatable-page-master-alternativesã¯ã maximum-repeatsãã©ã¡ãŒã¿ãŒã§æ倧ããŒãžæ°ã«èšå®ããããšãã§ããŸãã
foã«ã€ããŠå°ãïŒpage-sequence
ããã§ã¯ãããŒã¯ã¢ããã®èª¬æãéžææ¡ä»¶ã®èšå®ãXSLTå€æããããŒã¯ã¢ãããåŒã³åºãæ¹æ³ãæããŠãã ããã
ãããè¡ãã«ã¯ã foïŒpage-sequenceèŠçŽ ã䜿çšããŸãã åŒã³åºãããããŒã¯ã¢ããã®ååã瀺ãå¿ é ãã©ã¡ãŒã¿ãŒmaster-referenceããããŸãã
ãŸããèŠçŽ ã«ã¯ãããŒãžããŒã·ã§ã³ã«é¢äžãããã©ã¡ãŒã¿ãŒãå«ãŸããå ŽåããããŸãã
initial-page-numberãã©ã¡ãŒã¿ãŒã¯ãçæãããããŒãžã·ãŒã±ã³ã¹ã®æåã®ããŒãžçªå·ããã£ããã£ããŸãã
- auto-åã®ã»ã¯ã·ã§ã³ã®çªå·ä»ããç¶ç¶ããŸãã
- auto-odd-æåã®å¥æ°ããçªå·ä»ããç¶ããŸãã
- èªåå¶æ° -æåã®å¶æ°ããçªå·ä»ããç¶ããŸãã
- çªå·ä»ããéå§ããç¹å®ã®çªå·ã
force-page-countãã©ã¡ãŒã¿ãŒã¯ãçæãããã·ãŒã±ã³ã¹ã®ããŒãžæ°ã«æ¡ä»¶ã課ããŸãã
- auto-次ã®ã·ãŒã±ã³ã¹ã®æåã®ããŒãžçªå·ã«åŸã£ãŠããŒãžæ°ãèšå®ããŸãã
- å¶æ° -å¶æ°ããŒãžãå³å¯ã«èšå®ããŸãã
- å¥æ° -å¥æ°ã®ããŒãžãå³å¯ã«èšå®ããŸãã
- end-on-even-æåŸã®ããŒãžçªå·ã¯å¶æ°ã§ãã
- end-on-odd-æåŸã®ããŒãžçªå·ã¯å¥æ°ã§ãã
- ç¡å -èŠå¶ãããŠããŸããã
DITA-OTã§ã¯ã©ãã§ããïŒ
çè«ã¯ãããããããŸãããDITA Open Toolkitã§ãããã©ã®ããã«å®è£ ããŸããã
äžè¬çã«ããã¹ãŠã®ã¿ã€ãã®ã·ã³ãã«ããŒãžãã¹ã¿ãŒã¬ã€ã¢ãŠããæåã«èª¬æãããŠããå ŽåïŒè¡šçŽãç®æ¬¡ãªã©ïŒã ããã«ãçè«çã«ã¯ãåããŒã¯ã¢ããã®ããŒãžã·ãŒã±ã³ã¹ãã¹ã¿ãŒããŒãžã·ãŒã±ã³ã¹ãèšè¿°ããå¿ èŠããããŸãã
DITA-OTã¯ãæå®ããããã©ã¡ãŒã¿ãŒã«åŸã£ãŠããŒãžã®ã·ãŒã±ã³ã¹ãçæããXSLãã³ãã¬ãŒãgenerate-page-sequence-masterã䜿çšããŸãã
ãã³ãã¬ãŒãã¯call-templateããæ°åå®è¡ãããŸãã ååŒã³åºãã¯ãæå®ããããã©ã¡ãŒã¿ãŒã«åŸã£ãŠã1ã€ã®ã¿ã€ãã®ããŒã¯ã¢ããã®ã·ãŒã±ã³ã¹ãçæããŸãã
ãããã¯ãã¹ãŠããã©ã«ã.. \ org.dita.pdf2 \ cfg \ foã«ããlayout-masters.xslãã¡ã€ã«ã§ç¢ºèªã§ããŸãã
43è¡ç®ã§ã¯ã foïŒã®ã¬ã€ã¢ãŠããã¹ã¿ãŒèšå®èŠçŽ ã®å§ãŸãã確èªããŸãããã®èŠçŽ ã«ã¯foïŒsimple-page-masterèŠçŽ ããããåèŠçŽ ã«ã¯åå¥ã®ããŒã¯ã¢ããã®èª¬æãå«ãŸããŠããŸãã
ããšãã°ãæåã®4ã€ã®éšåã¯ã«ããŒçšã§ãã
<fo:simple-page-master master-name="front-matter-first" xsl:use-attribute-sets="simple-page-master"> <fo:region-body xsl:use-attribute-sets="region-body__frontmatter.odd"/> </fo:simple-page-master> <fo:simple-page-master master-name="front-matter-last" xsl:use-attribute-sets="simple-page-master"> <fo:region-body xsl:use-attribute-sets="region-body__frontmatter.even"/> <fo:region-before region-name="last-frontmatter-header" xsl:use-attribute-sets="region-before"/> <fo:region-after region-name="last-frontmatter-footer" xsl:use-attribute-sets="region-after"/> </fo:simple-page-master> <xsl:if test="$mirror-page-margins"> <fo:simple-page-master master-name="front-matter-even" xsl:use-attribute-sets="simple-page-master"> <fo:region-body xsl:use-attribute-sets="region-body__frontmatter.even"/> <fo:region-before region-name="even-frontmatter-header" xsl:use-attribute-sets="region-before"/> <fo:region-after region-name="even-frontmatter-footer" xsl:use-attribute-sets="region-after"/> </fo:simple-page-master> </xsl:if> <fo:simple-page-master master-name="front-matter-odd" xsl:use-attribute-sets="simple-page-master"> <fo:region-body xsl:use-attribute-sets="region-body__frontmatter.odd"/> <fo:region-before region-name="odd-frontmatter-header" xsl:use-attribute-sets="region-before"/> <fo:region-after region-name="odd-frontmatter-footer" xsl:use-attribute-sets="region-after"/> </fo:simple-page-master>
- ååã«åºã¥ãæåã®ã¬ã€ã¢ãŠãã¯ãè¡šçŽã®æåã®ããŒãžçšã§ãã region-body__frontmatter.oddå±æ§ã»ãããé©çšãããã¡ã€ã³ã®region-body regionã®ã¿ããããŸãã ãã®ã»ããã¯å¥æ°ããŒãžïŒååã§å€æïŒã察象ãšããŠããŸãããããã§äœ¿çšããããšã劚ãããã®ã¯ãããŸããã å±æ§ã®ã»ããã¯ã layout-masters-attr.xslãã¡ã€ã«ã§èª¬æãããŠããŸã ã
- 2çªç®ã®ã¬ã€ã¢ãŠãã¯ãè¡šçŽã®æåŸã®ããŒãžçšã§ãã ã¡ã€ã³ãšãªã¢ãããããŒãããã¿ãŒããããŸãã åæã«ãããããŒãšããã¿ãŒã«ã¯ç¬èªã®åålast-frontmatter-headerãšlast-frontmatter-footerããããã¡ã€ã³ãšãªã¢ã«ã¯ããã©ã«ãã®åå-region -bodyããããŸãã
- 3çªç®ã®ããŒã¯ã¢ãã-ã«ããŒããŒãžã§ã-ã¯ã xslïŒifèŠçŽ ã§æå®ãããæ¡ä»¶ãæºããããŠããå Žåã«ã®ã¿äœ¿çšãããŸãã ããŒã«å€æ°$ mirror-page-marginsãtrueã®å Žå ãå¥æ°ããŒãžãšå¶æ°ããŒãžã§ç°ãªãããŒã¯ã¢ããã䜿çšãããŸãïŒéåžžã¯ãã©ãŒïŒã
- 4çªç®ã®ããŒã¯ã¢ãã-å¥æ°ã«ããŒããŒãžã®å Žå-ã¯ãããŒãžãå¶æ°ã§ãããšããæ¡ä»¶ã«éå®ãããŸããã ãã ãã $ mirror-page-marginsãtrueã®å Žå ãå¥æ°ããŒãžã«å¯ŸããŠã®ã¿åŒã³åºãããŸãã ããã¯foïŒpage-sequence-masterã§èŠãããšãã§ããŸãã
次ã«ããã¹ãŠã®ããŒã¯ã¢ããã宣èšãããåŸã page-sequence-masterããŒãžã®ã·ãŒã±ã³ã¹ãçæããïŒ169è¡ç®ïŒãDITAãããã¯ããã®ããŒã¿ã¹ããªãŒã ãããã¥ã¡ã³ãã®åœ¢æäžã«é ä¿¡ãããŸãã
ããšãã°ã次ã®ã³ãŒãã¯ç®æ¬¡ïŒtoc-ç®æ¬¡ïŒã®äžé£ã®ããŒãžãçæããŸãã
<xsl:call-template name="generate-page-sequence-master"> <xsl:with-param name="master-name" select="'toc-sequence'"/> <xsl:with-param name="master-reference" select="'toc'"/> </xsl:call-template>
åã·ãŒã±ã³ã¹ãäœæããã«ã¯ã xslïŒwith-paramèŠçŽ å ã®é©åãªãã©ã¡ãŒã¿ãŒã䜿çšããŠXSLãã³ãã¬ãŒãgenerate-page-sequence-masterãåŒã³åºãããŸãã ãã©ã¡ãŒã¿ãŒïŒ åå -ãã©ã¡ãŒã¿ãŒåã éžæ -ãã©ã¡ãŒã¿ãŒå€ã
XSLãã³ãã¬ãŒãgenerate-page-sequence-masterããã¡ã€ã«ã®æåŸã«èšè¿°ãããŠãããå ¥åãã©ã¡ãŒã¿ãŒã«åŸã£ãŠpage-sequence-masterã®ããŒãžã·ãŒã±ã³ã¹ãçæããŸãïŒæåŸã®ãªã¹ããåç §ïŒã åºæ¬çãªDITA-OTæ§æã§ã¯ããŠãããŒãµã«foïŒrepeatable-page-master-alternativesã®ã¿ã䜿çšãããå ¥åãã©ã¡ãŒã¿ãŒã«å¿ããŠã1ã€ãŸãã¯å¥ã®ããŒã¯ã¢ãããéžæãããŸãã
ãã³ãã¬ãŒãã«ã¯4ã€ã®ãã©ã¡ãŒã¿ãŒããããŸãã
- master- name-çæãããã·ãŒã±ã³ã¹ã®ååãèšå®ããŸãã ãã®ååã«ãããå ã®DITAã³ã³ãã³ããé ä¿¡ãããšãã«ã·ãŒã±ã³ã¹ãéžæãããŸãã
- master-referenceã¯ãã·ãŒã±ã³ã¹ãçæããããã«åŒã³åºãããããŒã¯ã¢ããã®ååã§ãã
- first-ãããæåã®ããŒãžã§ããããšã®ãµã€ã³ã ããã©ã«ãã¯trueã§ãã
- lastã¯ããããæåŸã®ããŒãžã§ããããšã®ãµã€ã³ã§ãã ããã©ã«ãã¯trueã§ãã
次ã«ããã³ãã¬ãŒãã®master-nameãã©ã¡ãŒã¿ãŒã§æå®ãããååã§page-sequence-masterããã³ãã¬ãŒãã«äœæãããŸãã ãã©ã¡ãŒã¿å€ã¯å€æ°$ master-nameãšããŠæž¡ãããŸãã page-sequence-masterèŠçŽ ã«ã¯ã foïŒrepeatable-page-master-alternativesãšãã 1ã€ã®åãå«ãŸããŸãã
- xslïŒif test = "$ first" -ããŒãžãã·ãŒã±ã³ã¹ã®æåãã©ããã
- xslïŒif test = "$ last" -ããŒãžãã·ãŒã±ã³ã¹ã®æåŸãã©ããã
- xslïŒtest = "$ mirror-page-margins"ã®å Žå -å¶æ°ããŒãžãšå¥æ°ããŒãžã«ç°ãªãããŒã¯ã¢ããã䜿çšãããã©ããã
ããŒãžãæåã®å Žåã conditional-page-master-referenceã¯ãæåã®ããŒãžã®$ master-referenceå€æ°ã§æå®ãããååïŒ -firstãååã«è¿œå ãããŸãïŒã§ããã©ã¡ãŒã¿ãŒã䜿çšããŠããŒã¯ã¢ãããåŒãèµ·ãããŸãïŒ odd-or-even =â oddâ ïŒodd page ïŒããã³page-position =â firstâ ïŒæåã®ããŒãžïŒã
ããŒãžãæåŸã®å Žåã conditional-page-master-referenceã¯ãæåŸã®ããŒãžã®$ master-referenceå€æ°ã§æå®ãããååã§ããŒã¯ã¢ãããåŒã³åºããŸãïŒ ååã«-lastãè¿œå ãããŸãïŒããã©ã¡ãŒã¿ãŒã¯æ¬¡ã®ãšããã§ãïŒ odd-or-even =â evenâ ïŒeven page ïŒã page-position =â lastâ ïŒæåŸã®ããŒãžïŒããã³blank-or-not-blank =â blankâ ïŒç©ºçœããŒãžïŒã
ããŒãžããªãã£ãèæ ®ãããå Žåãå¶æ°ããŒãžãšå¥æ°ããŒãžã®2ã€ã®æ¡ä»¶ä»ãããŒãžãã¹ã¿ãŒåç §ã䜿çšãããŸãã ããã§ãªãå ŽåïŒ xslïŒãã以å€ã®å Žå ïŒãå¥æ°ããŒãžã®ããŒã¯ã¢ããã䜿çšãããŸãã
<xsl:template name="generate-page-sequence-master"> <xsl:param name="master-name"/> <xsl:param name="master-reference"/> <xsl:param name="first" select="true()"/> <xsl:param name="last" select="true()"/> <fo:page-sequence-master master-name="{$master-name}"> <fo:repeatable-page-master-alternatives> <xsl:if test="$first"> <fo:conditional-page-master-reference master-reference="{$master-reference}-first" odd-or-even="odd" page-position="first"/> </xsl:if> <xsl:if test="$last"> <fo:conditional-page-master-reference master-reference="{$master-reference}-last" odd-or-even="even" page-position="last" blank-or-not-blank="blank"/> </xsl:if> <xsl:choose> <xsl:when test="$mirror-page-margins"> <fo:conditional-page-master-reference master-reference="{$master-reference}-odd" odd-or-even="odd"/> <fo:conditional-page-master-reference master-reference="{$master-reference}-even" odd-or-even="even"/> </xsl:when> <xsl:otherwise> <fo:conditional-page-master-reference master-reference="{$master-reference}-odd"/> </xsl:otherwise> </xsl:choose> </fo:repeatable-page-master-alternatives> </fo:page-sequence-master> </xsl:template>