2010-12-31 3 views
6

Wenn ich Fragen über das Erreichen eines bestimmten LaTeX-Layouts stelle, bekomme ich Antworten, die vorschlagen, dass ich Konstrukte verwenden sollte, die für ihre Semantik keinen Sinn ergeben. Zum Beispiel wollte ich einen einzigen Absatz machen, und mir wurde gesagt, ich solle eine Liste ohne Kugeln machen. Es funktioniert, aber das ist nicht die semantische Bedeutung einer Liste, also warum ist es akzeptabel, sie so zu missbrauchen.Bedeutet Semantik in Latex? Wenn nicht, warum nicht?

Wir haben vor über einem Jahrzehnt damit aufgehört, HTML zu erstellen. Warum machen wir immer noch das Äquivalent zum Tabellenlayout in dem angeblich besten Satzsystem?

Bekomme ich es nicht, aber ist das nicht ein wenig unelegant? Jeder sagt, dass LaTeX elegant ist und dass man sich nicht um das Layout kümmern muss, aber dann finde ich mich verzerrend in Tabellen, Listen und anderen semantischen Markups, um Dinge dorthin zu bringen, wo ich es möchte. Hat der Kaiser keine Kleider, oder bekomme ich es nicht?

+1

Ich würde dies auf http://tex.stackexchange.com/ – marcog

+0

fragen ich stimme völlig zu. Theoretisch ist LaTeX elegant, aber in der Praxis ist es schwierig, damit zu arbeiten, und eine gute Dokumentation zu finden, ist ein Schmerz im Hintergrund. –

+0

Es wird jedoch schön aussehende Dokumente produzieren. Aber es ist eine steile Lernkurve, und ich denke, dass es sich irgendwie letztes Jahrhundert anfühlt. –

Antwort

4

Wenn ein Problem wie dieses kommt, und die Antwort ist, etwas zu verwenden, das nicht wirklich semantischen Sinn macht, was Sie tun sollten, ist eine neue Umgebung oder einen neuen Befehl zu erstellen Funktionalität in einer Weise, die semantischen Sinn macht.

Jede Layoutsprache hat dieses Problem - irgendwo auf der Linie müssen Sie sich auf eine physische, nicht-semantische Lösung einlassen. In HTML werden die nicht-semantischen Teile der Lösung durch CSS und JavaScript (die verschiedene Sprachen von HTML sind) ziemlich gut abgedeckt. Sie erstellen <div> s und <span> s, die die Semantik erfassen, und dann verwenden Sie CSS und JavaScript, um das physische Layout für diese Semantik zu definieren.

In LaTeX wird einfach die exakt gleiche Sprache für diesen Zweck verwendet: LaTeX (oder einfaches TeX, das oft kaum von LaTeX zu unterscheiden ist).

+0

Trennung von Bedenken ist ein wichtiger Deal in HTML, CSS und Javascript. Diese Orthogonalität hilft bei der Modularisierung und wird auch in anderen Bereichen der Softwareentwicklung gewürdigt. Die Tatsache, dass HTML Semantik erfasst, während CSS es Computern nicht erlaubt, HTML zu lesen und zu verstehen. Allerdings ist eine einzige Sprache für Präsentation und Inhalt dafür ungeeignet. Wie löst LaTeX dieses Problem? Wie schreiben wir der Semantik Bedeutung bei, wie wir es in HTML tun? Und wie können wir die Semantik von der Präsentation trennen, wenn für beide die gleiche Sprache verwendet wird? – dionyziz

+1

@dionyziz Das Schreiben eines LaTeX-Dokuments ist kein Software-Engineering. Software-Engineering-Prinzipien gelten nicht automatisch. Das heißt, (La) TeX * bietet Ihnen Möglichkeiten, Inhalt und Präsentation zu trennen: Sie können die "semantisch inkorrekten" Konstrukte in einen '\ newcommand' einbinden und so tun, als ob Sie den' \ newcommand' implementieren würden einfach nur schlecht Layout-fokussierte Konstrukte mit null semantischer Bedeutung benannt. –

-1

Ich würde sagen, es geht nur darum, die richtige Semantik zu kennen oder zu finden. Sie sprechen über ein einzelnes Beispiel, und Sie geben Ihre Semantik nicht an, Sie sprechen über die Art, es zu gestalten. Je nachdem, was eingerückt werden soll, könnte es bessere Passungen geben, z. ein Zitat, eine Formel, etc.