Inserimento letterale di codice TeX e HTML, con eventuale inserimento condizionato

In situazioni eccezionali, può essere conveniente l'inserimento di codice scritto secondo il linguaggio di composizione che si trova al di sotto della struttura SGML di Alml. Lo scopo di Alml non è quello di mantenere un legame sicuro con TeX e HTML, tuttavia viene lasciata aperta questa possibilità.

Si pensi all'eventuale necessità di inserire qualcosa di particolare nella composizione HTML, per esempio per mettere un contatore di accesso, o altri tipi di inserzioni ritenute utili per qualche ragione.

Per risolvere questo problema si possono usare due elementi speciali: tex e html. Come si può intuire, il primo elemento è fatto per racchiudere codice TeX o LaTeX; il secondo serve per includere codice HTML.

Dal momento che si vuole evitare qualunque interpretazione SGML, è necessario racchiudere il contenuto di questi elementi in una sezione marcata di tipo CDATA. Si osservi l'esempio seguente riferito a codice HTML:

<html><![CDATA[
    <hr>
    <p><a href="http://www.digits.com/">Web-Counter: </a><a
    href="http://www.digits.com/"><img
    src="http://counter.digits.com/wc/tizio345"
    alt="counter"></a></p>
]]></html>

A fianco di questo problema, sta poi la possibilità di delimitare facilmente dei blocchi di sorgente che debbano essere presi in considerazione solo se la composizione avviene attraverso una trasformazione in TeX o in HTML. In pratica, si utilizzano rispettivamente gli elementi iftex e ifhtml. Questi elementi non sono indispensabili, perché l'SGML offre già un meccanismo di controllo dell'elaborazione del sorgente, attraverso le sezioni marcate; tuttavia, servono per completare e concludere il problema degli elementi contenenti codice speciale TeX o HTML.

Il codice HTML può essere rappresentato in parte anche quando la composizione avviene attraverso TeX, per mezzo di HTML2ps. In pratica, con il codice HTML si ottiene un'immagine che viene poi incorporata nel sorgente TeX. Questa estensione serve specialmente per consentire la realizzazione di tabelle più complesse di quanto permetta Alml con il suo elemento tabular. Si osservi l'esempio seguente:

<object id="t-alml-incorporazione-tabella-html">
<caption>
    Tabella <objectref>. Incorporazione di codice HTML per rappresentare
    una tabella complessa.
</caption>
<html width=15cm>
<![CDATA[
<table border="1">
  <thead>
    <tr>
      <td rowspan="2"><p>Denominazione della porta seriale su i386 nei sistemi Dos</p></td>
      <td colspan="2"><p>Risorse</p></td>
      <td rowspan="2"><p>File di dispositivo nei sistemi GNU/Linux</p></td>
      <td rowspan="2"><p>Annotazioni</p></td>
    </tr>
    <tr>
      <td><p>IRQ</p></td>
      <td><p>I/O</p></td>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><p>COM1:</p></td>
      <td rowspan="2"><p align="center">4</p></td>
      <td><p>3F8<sub>16</sub></p></td>
      <td><p>/dev/ttyS0</p></td>
      <td rowspan="2"><p>La prima e la terza porta seriale condividono lo stesso IRQ.</p></td>
    </tr>
    <tr>
      <td><p>COM3:</p></td>
      <td><p>3E8<sub>16</sub></p></td>
      <td><p>/dev/ttyS2</p></td>
    </tr>
    <tr>
      <td><p>COM2:</p></td>
      <td rowspan="2"><p align="center">3</p></td>
      <td><p align="right">2F8<sub>16</sub></p></td>
      <td><p>/dev/ttyS0</p></td>
      <td rowspan="2"><p>La seconda e la quarta porta seriale condividono lo stesso IRQ.</p></td>
    </tr>
    <tr>
      <td><p>COM4:</p></td>
      <td><p align="right">2E8<sub>16</sub></p></td>
      <td><p>/dev/ttyS2</p></td>
    </tr>
  </tbody>
</table>
]]>
</html>
</object>

Nel riquadro successivo si vede il risultato dopo la composizione:

Tabella u106.4. Incorporazione di codice HTML per rappresentare una tabella complessa.

Denominazione della porta seriale su i386 nei sistemi Dos

Risorse

File di dispositivo nei sistemi GNU/Linux

Annotazioni

IRQ

I/O

COM1:

4

3F816

/dev/ttyS0

La prima e la terza porta seriale condividono lo stesso IRQ.

COM3:

3E816

/dev/ttyS2

COM2:

3

2F816

/dev/ttyS0

La seconda e la quarta porta seriale condividono lo stesso IRQ.

COM4:

2E816

/dev/ttyS2

Si osservi nell'esempio l'uso dell'attributo width. Precisamente, l'elemento html consente l'uso degli attributi width e height per stabilire le dimensioni dell'oggetto HTML importato nella composizione stampata. In questo caso, è stata specificata la larghezza, corrispondente allo spazio orizzontale a disposizione, in modo che l'altezza venga adattata automaticamente, mantenendo lo stesso rapporto.

La composizione in formato HTML da parte di Alml è conforme allo standard ISO 15445; tuttavia, se si incorpora del codice HTML, non si può garantire la conformità del risultato complessivo. Per questo, nella composizione finale in HTML, se una pagina si ottiene con l'inserimento di codice arbitrario, il logo e il riferimento «Valid ISO-HTML!» non viene mostrato.

Tabella u106.5. Inserimento letterale di codice TeX e HTML; inserimento condizionato in base al tipo di composizione.

Elemento Descrizione
html [width="larghezza"] [height="altezza"]
Codice HTML letterale. Gli attributi width e height consentono di controllare le dimensioni del risultato nella composizione per la stampa.
tex
Codice TeX o LaTeX letterale.
ifhtml
Blocco condizionato alla composizione in HTML.
iftex
Blocco condizionato alla composizione per la stampa, attraverso LaTeX.

Si rammenti che mentre quanto contenuto nell'elemento html appare sia nella composizione per la stampa, sia nella composizione HTML, l'elemento tex genera un risultato utile esclusivamente nella composizione per la stampa.

Per quanto riguarda il caso particolare dell'elemento tex, si tenga in considerazione piuttosto la possibilità di usare l'elemento teximg, che generano un risultato visibile anche nel formato HTML finale, attraverso la trasformazione automatica in forma di immagine.

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net