いくつかのバイトが色付きの背景で強調表示された 16 進データを出力する必要があります。赤色の値を表すデータ内のバイトは、背景が赤である必要があります。それが私が選んだ理由です
<emphasis role="red"></emphasis>
選択のタグになります。
HTML出力
私が使用するHTML出力のために
<xsl:param name="emphasis.propagates.style" select="1"/>
xsl ファイルで、
.red {
background-color: red;
}
スタイルシートで。これは問題なく動作します。
PDF出力
PDF出力には、dblatexを使用して試しました(ファイルfo.xsl)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:d="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/TR/xhtml1/transitional"
version="1.0">
<xsl:param name="draft.mode">no</xsl:param>
<xsl:param name="imagedata.default.scale">maxwidth=12cm</xsl:param>
<xsl:template match="emphasis[@role='red']">
<xsl:param name="content">
<xsl:apply-templates/>
</xsl:param>
<xsl:text>{\color{red}</xsl:text>
<xsl:copy-of select="$content"/>
<xsl:text>}</xsl:text>
</xsl:template>
</xsl:stylesheet>
そして (ファイル test.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<article lang="en">
<title>Test</title>
<para>
<screen>0240h: 00 20 <emphasis role="red">00</emphasis> 21</screen>
</para>
</article>
次のコマンドを使用して、チェック用のラテックス ソースをビルドします。
dblatex --backend=pdftex --xslt=xsltproc \
--input-format=xml --type=tex \
--xsl-user=fo.xsl --verbose --output=test.tex test.xml
これは動作しません。結果の test.tex からの抜粋に示すように、強調されたテキストはまだイタリック体です。
\begin{lstlisting}[firstnumber=1,escapeinside={<t>}{</t>},moredelim={**[is][\bfseries]{<b>}{</b>}},moredelim={**[is][\itshape]{<i>}{</i>}},]
0240h: 00 20 <i>00</i> 21\end{lstlisting}
私は何を間違っていますか?