Я борюсь с чем-то базовым в преобразовании из - ну, собственно, таблицы Google в XML в LaTeX. Моя основная проблема заключается в следующем: как пройти через амперсанды с одного конца на другой.Ampersand, XSLT и LaTeX
Я знаю, что подобные вопросы были даны несколько раз, но, похоже, не существует рабочего решения. (Самая лучшая помощь до сих пор мне кажется: xslt 2.0 how replace $ by escaped dollar (for conversion to LaTeX))
Предположим, у меня есть издательство «Simon & Schuster» в Google Tables. После того, как экспортировать и импортировать его в XML это:
<xml>
<name>
<publisher>Simon & Schuster</publisher>
</name>
</xml>
Сейчас в LaTeX Я подготовил новую команду так, чтобы свести к минимуму амперсанд-проблемы:
\newcommand{\ampersand}{\&}
Когда я к XSLT (2,0), то получить (в тоже) сложно:
<xsl:function name="foo:ampersand-replace">
<xsl:param name="passed-string"/>
<xsl:value-of select="replace($passed-string, '\&', '\\\ampersand')"/>
</xsl:function>
<xsl:template match="publisher">
<xsl:value of select="foo:ampersand-replace(publisher)"/>
</xsl:template>
, потому что это не скомпилировано (Saxxon 9.6). Проблема в том, что символ амперсанда: символ синтаксиса ошибки не разрешен.
Я попробовал другой подход, тоже:
<xml>
<name>
<publisher>Simon <c rendition="#ampersand"/> Schuster</publisher>
</name>
</xml>
Проблема есть, что я не могу использовать
<xsl:value-of/>
-command, а также с не обработанный. Любая идея, что я ошибался?