目次

概要

条件によって値の違う式を表示

利用方法

<branch size="条件の数">
  <case><equ>式1</equ><cond>条件1</cond></case>
  <case><equ>式2</equ><cond>条件2</cond></case>
  .
  .
  .
  <case><equ>式n</equ><cond>条件n</cond></case>
</branch>

サンプル

<abs>x</abs>=
<branch size="2">
  <case><equ>x</equ><cond><math>x≧0</math></cond></case>
  <case><equ>&#x2212;x</equ><cond><math>x&lt;0</math></cond></case>
</branch>
|x|= {
x  (x≧0)
−x  (x<0)

XSL template

<xsl:template match="ufcpp:branch">
  <span class="paren">
    <xsl:attribute name="style">font-size:<xsl:value-of select="@size"/>em;</xsl:attribute>
    {
  </span>
  <table class="branch" summary="conditional">
    <xsl:for-each select="ufcpp:case">
      <tr>
        <td><span class="math"><xsl:apply-templates select="ufcpp:equ"/></span>&#xA0;&#xA0;</td>
        <td>
          <span class="paren">(</span>
          <span class="math"><xsl:apply-templates select="ufcpp:cond"/></span>
          <span class="paren">)</span>
        </td>
      </tr>
    </xsl:for-each>
  </table>
</xsl:template>

<xsl:template match="ufcpp:branch/ufcpp:case/ufcpp:equ">
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="ufcpp:branch/ufcpp:case/ufcpp:cond">
  <xsl:apply-templates/>
</xsl:template>

style sheet

table.branch
{
  display:inline;
  font-style:italic;
  vertical-align:bottom;
  vertical-align:middle;
}

span.paren
{
  font-style:normal;
  vertical-align:middle;
}

span.normal
{
  font-weight:normal;
  font-style:normal;
}

更新履歴

ブログ