Gerçekten de Google Tabloları'ndan XML'e ve LaTeX'e dönüşümde temel bir şeyle uğraşıyorum. Benim asıl problemim şudur: ampersandlardan bir uçtan diğerine geçmek.Ampersand, XSLT ve LaTeX
Benzer soruların birkaç kez yanıtlandığını biliyorum, ancak çalışan bir çözüm yok gibi görünüyor. (Şimdiye kadarki en iyi yardım bana şu şekilde geliyor: xslt 2.0 how replace $ by escaped dollar (for conversion to LaTeX))
Google Tablolarda "Simon & Schuster" yayınevi olduğunu varsayalım. Bunu dışa ve XML içe sonra açıklanmıştır: LaTeX'te Şimdi
<xml>
<name>
<publisher>Simon & Schuster</publisher>
</name>
</xml>
Ben ve işareti-sorunu en aza indirmek için bu yüzden yeni bir emir hazırlanan:
\newcommand{\ampersand}{\&}
Yetişmem XSLT (2.0) o (çok) s olsun zor:
<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>
çünkü bu derlenmez (Saxxon 9.6). Sorun elbette Ampersan: Sözdizimi Hatası Kaçış karakterine izin verilmez.
Çok farklı bir yaklaşım çalıştı:<xml>
<name>
<publisher>Simon <c rendition="#ampersand"/> Schuster</publisher>
</name>
</xml>
c değil gibi, hem de
<xsl:value-of/>
-command kullanamaz ki orada sorun işlenmiş. Neyi yanlış anladım?