2010-12-31 12 views
6

Quando faccio domande sul raggiungimento di un particolare layout LaTeX, ottengo risposte che suggeriscono che dovrei usare costrutti che non hanno senso per la loro semantica. Ad esempio, volevo intentare un singolo paragrafo e mi è stato detto di renderlo un elenco senza punti. Funziona, ma questo non è il significato semantico di una lista, quindi perché è accettabile abusarne in questo modo.La semantica importa in lattice? Se no, perché no?

Abbiamo smesso di farlo in HTML più di dieci anni fa. Perché stiamo ancora facendo l'equivalente del layout di una tabella in quanto presumibilmente il miglior sistema di impaginazione esistente?

Non ci riesco, ma non è un po 'poco elegante? Tutti dicono che LaTeX è elegante e che non devi preoccuparti del layout, ma poi mi ritrovo a contorcere tabelle, elenchi e altri markup semantici per mettere le cose dove voglio. L'imperatore non ha vestiti, o non lo capisco?

+1

Lo chiederei su http://tex.stackexchange.com/ – marcog

+0

Sono assolutamente d'accordo. In teoria, LaTeX è elegante, ma in pratica è difficile lavorare e trovare una buona documentazione è un dolore alle spalle. –

+0

Produrrà comunque bei documenti. Ma è una curva di apprendimento ripida, e penso che sia un po 'come il secolo scorso. –

risposta

4

Quando arriva un problema come questo, e la risposta è usare qualcosa che non ha davvero senso semantico, ciò che dovresti fare è creare un nuovo ambiente o comando che avvolga il funzionalità in un modo che ha senso semantico.

Ogni linguaggio di layout presenta questo problema: da qualche parte lungo la linea, è necessario arrivare a una soluzione fisica non semantica. In HTML, le parti non semantiche della soluzione sono ora ben coperte da CSS e JavaScript (che sono lingue diverse dall'HTML). Si creano <div> se <span> s che acquisiscono la semantica e quindi si utilizzano CSS e JavaScript per definire il layout fisico per la semantica.

In LaTeX, si finisce semplicemente per utilizzare lo stesso identico linguaggio per questo scopo: LaTeX (o semplice TeX, che è spesso difficile distinguere da LaTeX).

+0

La separazione delle preoccupazioni è un affare importante in HTML, CSS e Javascript. Questa ortogonalità aiuta con la modularizzazione ed è onorata anche in altre aree dell'ingegneria del software. Il fatto che HTML acquisisca semantica mentre CSS non consente alle macchine di leggere e comprendere l'HTML. Tuttavia, avere una singola lingua sia per la presentazione che per il contenuto non è adatta a questo. In che modo LaTeX risolve questo problema? Come attribuiamo il significato alla semantica come facciamo in HTML? E come possiamo separare la semantica dalla presentazione se viene utilizzata la stessa lingua per entrambi? – dionyziz

+1

@dionyziz La scrittura di un documento LaTeX non è ingegneria del software. I principi di ingegneria del software non si applicano automaticamente. Detto questo, (La) TeX * fornisce * modi per separare il contenuto e la presentazione: puoi racchiudere i costrutti "semanticamente scorretti" in un '\ newcommand' e fingere che ciò che usi per implementare il' \ newcommand' sia solo malamente chiamato costrutto focalizzato sul layout con il significato semantico zero. –

-1

Direi che si tratta solo di conoscere o trovare la semantica giusta. Parli di un singolo esempio e non fornisci la semantica, parli del modo in cui lo imponi. Quindi, a seconda di cosa desideri rientrare, potrebbero esserci adattamenti migliori, ad es. una citazione, una formula, ecc.