<!--

# =============================================================================

# Copyright © 2013 Typéfi Systems. All rights reserved.

#

# Unless required by applicable law or agreed to in writing, software

# is distributed on an "as is" basis, without warranties or conditions of any

# kind, either express or implied.

# =============================================================================

-->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tps="http://www.typefi.com/ContentXML" xmlns:xd="http://www.pnp-software.com/XSLTdoc" version="2.0" exclude-result-prefixes="#all">





    
    <xd:doc type="stylesheet">

        
<xd:short>

            Contains global parameters and variables

        
</xd:short>

        
<xd:cvsId>   $Revision$</xd:cvsId>

    
</xd:doc>




    
<!--

        @Description:   A format for build details info, added as a project fieldSet, and as a starting comment.



        @Example:       '__STYLESHEET__ Build __CUSTOMER-REVISION-NUMBER__-__CORE-REVISION-NUMBER__ __DATETIME__' results in

                        'entry-point.xsl Build 4156-4134 2013-01-15 09:36'

        
-->

    
<xsl:variable name="build.details.format" select="'__STYLESHEET__ Build __CUSTOMER-REVISION-NUMBER__-__CORE-REVISION-NUMBER__ __DATETIME__'" />



    
<!--

        Article FRONT conversion settings. Variable names are relevant to JATS input.

        
-->

    
<!-- @Description:   A default value of tps:content/tps:section/@type. -->

    
<xsl:variable name="article.section.type.default" select="'article'" />



    
<xsl:variable name="article-title.para.type" select="'article-title'" />



    
<xsl:variable name="subtitle.para.type" select="'subtitle'" />



    
<xsl:variable name="contrib-group.para.type" select="'contrib-group'" />



    
<xsl:variable name="contrib-group.contrib.separator" select="', '" />



    
<xsl:variable name="contrib-group.contrib.last.separator" select="', and '" />



    
<xsl:variable name="contrib-group.contrib.last.postfix" select="'.'" />



    
<xsl:variable name="aff.para.type" select="'aff'" />



    
<xsl:variable name="corresp.para.type" select="'corresp'" />



    
<!-- @Description:  Use tps:get-publication-date-string(pub-date) function to retrieve a

                        publication date in the specified format. 
-->

    
<xsl:variable name="pub-date.format" select="'__MONTH__ __DAY__, __YEAR__'" />



    
<xsl:variable name="history.date.accepted.para.type" select="'history'" />



    
<xsl:variable name="history.date.pub.para.type" select="'history'" />



    
<xsl:variable name="history.date.received.para.type" select="'history'" />



    
<xsl:variable name="abstract.title.para.type" select="'abstract.title'" />



    
<xsl:variable name="abstract.p.para.type" select="'abstract.p'" />



    
<xsl:variable name="kwd-group.para.type" select="'kwd-group'" />



    
<xsl:variable name="kwd-group.kwd.separator" select="', '" />



    
<xsl:variable name="kwd-group.kwd.last.separator" select="', '" />



    
<xsl:variable name="kwd-group.kwd.last.postfix" select="'.'" />



    
<!--

        Article BODY conversion settings.

        
-->

    
<xsl:variable name="body.title.level.pattern" select="'0'" />



    
<xsl:variable name="body.title.para.type" select="'body.title'" />



    
<xsl:variable name="body.title.stacked.para.type.postfix" select="'.stacked'" />



    
<xsl:variable name="body.p.para.type" select="'body.p'" />



    
<xsl:variable name="body.p.first.para.type" select="'body.p.first'" />



    
<!--

        Article BACK conversion settings.

        
-->

    
<xsl:variable name="ack.title.para.type" select="'ack.title'" />



    
<xsl:variable name="ack.p.para.type" select="'ack.p'" />



    
<xsl:variable name="app.title.para.type" select="'app.title'" />



    
<xsl:variable name="app.p.para.type" select="'app.p'" />



    
<xsl:variable name="back.fn-group.title.para.type" select="'back.fn-group.title'" />



    
<xsl:variable name="back.fn-group.fn.para.type" select="'back.fn-group.fn'" />



    
<!--

        General article conversion settings (i.e. for the elements which are not required to occur

        in any particular article part).

        
-->

    
<xsl:variable name="boxed-text.context.type.mapping.enabled" select="true()" as="xs:boolean" />



    
<!-- @Description:  boxed-text/@content-type to tps:context/@type mapping. -->

    
<xsl:variable name="boxed-text.context.type.mapping" as="element(map)*">

        
<!--<map value="input" to="output"/>-->

    
</xsl:variable>



    
<xsl:variable name="boxed-text.context.type.default" select="'boxed-text'" />



    
<xsl:variable name="boxed-text.variant.mapping.enabled" select="true()" as="xs:boolean" />



    
<!-- @Description:  boxed-text/processing-instruction('Box') to tps:context/@variant mapping. -->

    
<xsl:variable name="boxed-text.variant.mapping" as="element(map)*">

        
<!--<map value="input" to="output"/>-->

    
</xsl:variable>

    

    
<xsl:variable name="boxed-text.variant.default" select="'boxed-text'" as="xs:string?" />



    
<xsl:variable name="boxed-text.caption.para.type" select="'boxed-text.caption'" />



    
<xsl:variable name="boxed-text.fn-group.title.para.type" select="'boxed-text.fn-group.title'" />



    
<xsl:variable name="boxed-text.fn.first.para.type" select="'boxed-text.fn.first'" />



    
<xsl:variable name="boxed-text.fn.para.type" select="'boxed-text.fn'" />



    
<xsl:variable name="boxed-text.p.first.para.type" select="'boxed-text.p.first'" />



    
<xsl:variable name="boxed-text.p.para.type" select="'boxed-text.p'" />



    
<xsl:variable name="boxed-text.statement.p.para.type" select="'boxed-text.statement.p'" />



    
<xsl:variable name="boxed-text.attrib.para.type" select="'boxed-text.attrib'" />



    
<xsl:variable name="disp-formula.single.para.type" select="'disp-formula.single'" />



    
<xsl:variable name="disp-formula.first.para.type" select="'disp-formula.first'" />



    
<xsl:variable name="disp-formula.middle.para.type" select="'disp-formula.middle'" />



    
<xsl:variable name="disp-formula.last.para.type" select="'disp-formula.last'" />



    
<xsl:variable name="disp-quote.title.para.type" select="'disp-quote.title'" />



    
<xsl:variable name="disp-quote.p.para.type" select="'disp-quote.p'" />



    
<xsl:variable name="disp-quote.p.single.para.type" select="'disp-quote.p.single'" />



    
<xsl:variable name="disp-quote.p.first.para.type" select="'disp-quote.p.first'" />



    
<xsl:variable name="disp-quote.p.last.para.type" select="'disp-quote.p.last'" />



    
<xsl:variable name="disp-quote.attrib.para.type" select="'disp-quote.attrib'" />



    
<xsl:variable name="fig.caption.para.type" select="'fig.caption'" />



    
<xsl:variable name="fig.context.type.mapping.enabled" select="true()" as="xs:boolean" />



    
<!-- @Description:  fig/@fig-type to tps:context/@type mapping. -->

    
<xsl:variable name="fig.context.type.mapping" as="element(map)*">

        
<!--<map value="input" to="output"/>-->

    
</xsl:variable>



    
<xsl:variable name="fig.context.type.default" select="'fig'" />



    
<xsl:variable name="fig.variant.mapping.enabled" select="true()" as="xs:boolean" />



    
<!-- @Description:  fig/processing-instruction('Figure') to tps:context/@variant mapping. -->

    
<xsl:variable name="fig.variant.mapping" as="element(map)*">

        
<!--<map value="input" to="output"/>-->

    
</xsl:variable>



    
<xsl:variable name="fig.variant.default" select="'fig'" as="xs:string?" />



    
<xsl:variable name="fig.graphic.extension" select="'.eps'" />



    
<xsl:variable name="fig.p.para.type" select="'fig.p'" />



    
<xsl:variable name="fig.p.first.para.type" select="'fig.p.first'" />



    
<xsl:variable name="fig.attrib.para.type" select="'fig.attrib'" />



    
<xsl:variable name="graphic.dir" select="'../Images/'" />



    
<xsl:variable name="graphic.default.extension" select="'.eps'" />



    
<xsl:variable name="inline-graphic.extension" select="'.eps'" />



    
<xsl:variable name="list.title.para.type" select="'list.title'" />



    
<!--

        @Description:   List item paragraph type (tps:p/@type) is a composite value, calculated

                        as a concatenation of $list-item.p.para.type, list type marker, list-item

                        level marker, list-item position marker, and continued list postfix.



        @Example:       The below example is given for the default settings:



                        <list type="bullet">

                            <list-item>

                                <p>Bullet list item paragraph</p>

                                <p>Bullet list item paragraph continued</p>

                            </list-item>

                            <list-item>

                                <list type="order">

                                    <list-item>

                                        <p>Ordered list item paragraph</p>

                                    </list-item>

                                    <list-item>

                                        <p>Ordered list item paragraph</p>

                                    </list-item>

                                    <list-item>

                                        <p>Ordered list item paragraph</p>

                                    </list-item>

                                </list>

                            </list-item>

                        </list>



                        <tps:p type="lb1_s">Bullet list item paragraph</tps:p>

                        <tps:p type="lb1_s_cont">Bullet list item paragraph continued</tps:p>

                        <tps:p type="ln2_f">Ordered list item paragraph</tps:p>

                        <tps:p type="ln2_m">Ordered list item paragraph</tps:p>

                        <tps:p type="ln2_l">Ordered list item paragraph</tps:p>

                        
-->

    
<xsl:variable name="list-item.p.para.type" select="'l'" />



    
<xsl:variable name="list-item.p.order.marker" select="'n'" />



    
<xsl:variable name="list-item.p.bullet.marker" select="'b'" />



    
<xsl:variable name="list-item.p.alpha-lower.marker" select="'al'" />



    
<xsl:variable name="list-item.p.alpha-upper.marker" select="'au'" />



    
<xsl:variable name="list-item.p.roman-lower.marker" select="'rl'" />



    
<xsl:variable name="list-item.p.roman-upper.marker" select="'ru'" />



    
<xsl:variable name="list-item.p.simple.marker" select="'u'" />



    
<xsl:variable name="list-item.p.single.marker" select="'_s'" />



    
<xsl:variable name="list-item.p.first.marker" select="'_f'" />



    
<xsl:variable name="list-item.p.middle.marker" select="'_m'" />



    
<xsl:variable name="list-item.p.last.marker" select="'_l'" />



    
<xsl:variable name="list-item.p.continued.para.type.postfix" select="'_cont'" />



    
<xsl:variable name="glossary.title.para.type" select="'glossary.title'" />



    
<xsl:variable name="glossary.def-item.para.type" select="'glossary.def-item'" />



    
<xsl:variable name="glossary.def-item.term.char.type" select="'glossary.def-item.term'" />



    
<xsl:variable name="glossary.def-item.term.separator" select="'—'" />



    
<xsl:variable name="glossary.def-item.def.prefix">

        
<tps:s />

    
</xsl:variable>



    
<xsl:variable name="ref-list.title.para.type" select="'ref-list.title'" />



    
<xsl:variable name="ref.para.type" select="'ref'" />



    
<xsl:variable name="table.type" select="'table'" />



    
<xsl:variable name="table.default.entry.para.type" select="'entry'" />



    
<xsl:variable name="table.thead.entry.para.type" select="'thead.entry'" />



    
<xsl:variable name="table.tbody.entry.para.type" select="'tbody.entry'" />



    
<xsl:variable name="table.tfoot.entry.para.type" select="'tfoot.entry'" />



    
<!-- @Description: Mapping for table entry alignment when OASIS @align='char'-->

    
<xsl:variable name="table.entry.char.alignment" select="'center'" />



    
<xsl:variable name="table.entry.char.c.type" select="'TB_CHAR'" />



    
<xsl:variable name="table-wrap.context.type" select="'table-wrap'" />



    
<xsl:variable name="table-wrap.variant.mapping.enabled" select="true()" as="xs:boolean" />



    
<!-- @Description:  table-wrap/processing-instruction('Table') to tps:context/@variant mapping. -->

    
<xsl:variable name="table-wrap.variant.mapping" as="element(map)*">

        
<!--<map value="input" to="output"/>-->

    
</xsl:variable>



    
<xsl:variable name="table-wrap.variant.default" select="'table-wrap'" as="xs:string?" />



    
<xsl:variable name="table-wrap.caption.para.type" select="'table-wrap.caption'" />



    
<xsl:variable name="table-wrap-foot.p.first.para.type" select="'table-wrap-foot.p.first'" />



    
<xsl:variable name="table-wrap-foot.p.para.type" select="'table-wrap-foot.p'" />



    
<xsl:variable name="table-wrap-foot.attrib.para.type" select="'table-wrap-foot.attrib'" />



    
<xsl:variable name="table-wrap-foot.fn.first.para.type" select="'table-wrap-foot.fn.first'" />



    
<xsl:variable name="table-wrap-foot.fn.para.type" select="'table-wrap-foot.fn'" />



    
<!--

        @Description:  Defines which xref types should be treated as Typefi doclinks. Consider the

                       following options:

                       - aff

                       - app

                       - bibr

                       - boxed-text

                       - corresp

                       - disp-formula

                       - fig

                       - list

                       - table



        @Example:      <xsl:variable name="xref.to.doclink.types"

                                     select="('aff', 'app', 'bibr', 'boxed-text', 'corresp',

                                              'disp-formula', 'fig', 'list', 'table')"/>

        
-->

    
<xsl:variable name="xref.to.doclink.types" select="()" />





    
<!-- Default styles. -->

    
<xsl:variable name="style.type.bold" select="'bold'" />



    
<xsl:variable name="style.type.italic" select="'italic'" />



    
<xsl:variable name="style.type.underline" select="'underline'" />



    
<xsl:variable name="style.type.sub" select="'subscript'" />



    
<xsl:variable name="style.type.sup" select="'superscript'" />



    
<!-- Text processing configurations. -->

    
<!-- @Description:  Enables character mapping (see $character.mapping variable for the

                        configuration). 
-->

    
<xsl:variable name="text.character.mapping.enabled" select="false()" />



    
<!--

        @Description:   There are two ways to use character re-mapping scheme: by specifying

                        separate characters and corresponding mappings, and by declaring whole

                        ranges of remapped characters. One can use @wrap attribute to insert

                        any matched input character sequences in the element set by the variable.



        @Example:       <range from="&#x80;" to="&#x100;">

                            <tps:style name="ABC"/>

                        </range>

                        <char values="&#x2032;&#x1234;&#x4321;">

                            <tps:c type="TNR"/>

                        </char>

                        <char values="&#x2032;" wrap="true">

                            <tps:c type="TNR"/>

                        </char>

        
-->



    
    <xd:doc>

        
<xd:short>Use this mapping to apply character and soft styles to certain symbols or unicode ranges.</xd:short>

        
<xd:detail>It has effect only if <code>$text.character.mapping.enabled</code> is <code>true()</code>.</xd:detail>

    
</xd:doc>




    
<xsl:variable name="text.character.mapping" as="item()*" />



    
<!--

        @Description:   Enables text keeps mapping (see $text.keeps.mapping variable for the

                        configuration). Text keeps processing has a higher priority then character

                        mapping. So, if $text.keeps.mapping.enabled is set to true(), the mentioned

                        is not applied.

    
-->

    
<xsl:variable name="text.keeps.mapping.enabled" select="false()" />



    
<!--

        @Example:       <process>

                            <action>

                                <find text="Standard"/>

                                <replace text=" " with="&#xA0;"/>

                                <find arabic="yes" roman="yes"/>

                            </action>

                        </process>

        
-->

    
<xsl:variable name="text.keeps.mapping" as="item()">

        
<process />

    
</xsl:variable>



</xsl:stylesheet>













































































v