Ich kämpfe mit etwas grundlegend in einer Transformation von - naja, eigentlich Google Tabellen zu XML zu LaTeX. Mein Hauptproblem ist das: Wie man Ampersands von einem Ende zum anderen durchläuft.Ampersand, XSLT und LaTeX
Ich weiß, dass ähnliche Fragen schon mehrmals beantwortet wurden, aber es scheint keine funktionierende Lösung zu geben. (Die beste Hilfe scheint mir das bisher: xslt 2.0 how replace $ by escaped dollar (for conversion to LaTeX))
Angenommen, ich habe den Verlag "Simon & Schuster" in Google Tables. Nachdem ich es exportieren und in XML importieren es ist:
<xml>
<name>
<publisher>Simon & Schuster</publisher>
</name>
</xml>
Jetzt in LaTeX ich einen neuen Befehl vorbereitet, so das Ampersand-Problem zu minimieren:
\newcommand{\ampersand}{\&}
Als ich das bekommen XSLT (2.0) ist es bekommen (zu) heikel:
<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>
weil das nicht kompiliert wird (Saxxon 9.6). Das Problem ist natürlich das Ampersand: Syntax Error Escape Zeichen nicht erlaubt.
habe ich versucht, einen anderen Ansatz, auch:
<xml>
<name>
<publisher>Simon <c rendition="#ampersand"/> Schuster</publisher>
</name>
</xml>
Das Problem ist, dass ich nicht die
<xsl:value-of/>
-command sowie die c nicht verwenden können, ist verarbeitet. Irgendeine Idee, was ich falsch verstanden habe?