Opened 9 years ago

Closed 8 years ago

Last modified 8 years ago

#54 closed defect (fixed)

Display of styles in <s>

Reported by: wschmidle Owned by: jwillenborg
Priority: major Milestone: 1.1
Component: echo-textdisplay Version:
Keywords: XML Cc:
Parent Tickets: #196, #197

Description

<emph style="it"> wird korrekt angezeigt, aber <s style="it"> nicht. Beispiel siehe hier:

<emph style="it">vt mala ſcilicet prius ...
<s style="it">Omnes qui dere-<lb/>bus ...

Bei Andrey wird sogar beides upright dargestellt.

Subtickets

Change History (19)

comment:1 Changed 9 years ago by wschmidle

Benedetti Seite 7: Dasselbe mit <p style="it">.

comment:2 Changed 8 years ago by wschmidle

  • Keywords XML added

comment:3 Changed 8 years ago by wschmidle

  • Milestone set to 1.0

comment:4 Changed 8 years ago by jwillenborg

  • Owner changed from abukhman to jwillenborg

Das ist nicht sauber überlegt.

Eigentlich sollen ja gar keine Style-Infos in XML-Dokumenten gehalten werden. Aber wenn schon, dann wie ? Wie sind all die Kürzel für style (b, it, font-family: Georgia; ...) ? Welche Kombinationen kann es geben ("it b", "it font-family: Georgia;") ?

Man sollte hier einen Standard verwenden, der auch ohne Zwischenübersetzung funktioniert wie z.B. CSS. Dadurch kann eine Menge von CSS-Styles definiert werden. Beispiel: <p style="font-style:italic; font-weight:bold; font-size:.8em; ">blabla</p>

Dies ist dann einfacher in XSL und CSS umzusetzen.

comment:5 Changed 8 years ago by wschmidle

Eigentlich sollen ja gar keine Style-Infos in XML-Dokumenten gehalten werden.

Im XML-Text steht in @style, was die Chinesen an Textstilen markiert haben. Das nicht das gleiche wie das @style-Attribut in html. Beim Fremdsprachenlernen würde man sagen, es ist ein "falscher Freund", wie das Wort "also", das im Deutschen und im Englischen verschiedene Bedeutungen hat. Man könnte es im XML statt @style="it" auch zum Beispiel @textstyle="it" oder ganz anders nennen, um klarer zu machen, dass es nicht dasselbe ist.

Aber wenn schon, dann wie ? Wie sind all die Kürzel für style (b, it, font-family: Georgia; ...) ? Welche Kombinationen kann es geben ("it b", "it font-family: Georgia;") ?

Ich glaube, darum geht es hier nicht, aber der Vollständigkeit halber:

  1. in echo-attribute.rnc
      "it" | "bf" | "bf it"
    | "sc" | "sc it" # small caps; "sc it" in paragraph in italics means upright
    | "sub" | "super"
    | "red"
    | "fr" | "rom" | "sp" # Fraktur, Roman, Sperrung
    | "ol" | "ul"  # overline, underline
    | "st" # strike though
    
  2. in echo-chinese-text.rnc zusätzlich
      "sm"
    | "sl" | "dl" | "cl" | "wl"
    

Diese Kürzel sind alle schon in meinem CSS-Stylesheet angelegt, das ihr ja für eure CSS-Stylesheets verwendet habt. Ausnahmen sind

  • "bf it", das wohl nur in modernen Texten vorkommt, zum Beispiel im Eipo-Text
  • "rom", das es bei euch auch noch nicht gibt und das zum einen in Fraktur-Texten die Definition ".fr { font-family:'Lucida blackletter'}" rückgängig machen soll, zum anderen werden damit möglicherweise fremdsprachige Wörter in chinesischen Texten markiert, solange sie nicht einer konkreten Sprache zugeordnet wurden
  • "sc it" (das wir wohl abschaffen können, wenn man in "sc" auch zusätzlich "font-style:normal;" definiert, denn es gibt bei unseren Texten gar keine kursiven small caps; zu "sc it" siehe auch weiter unten)

Man sollte hier einen Standard verwenden, der auch ohne Zwischenübersetzung funktioniert wie z.B. CSS. Dadurch kann eine Menge von CSS-Styles definiert werden. Beispiel: <p style="font-style:italic; font-weight:bold; font-size:.8em; ">blabla</p>

Man möchte eine Abstraktionsschicht zwischen XML und html, und genau dafür ist CSS da! Zum Beispiel könnte man "it" zwar notfalls direkt im XML-Text als gültiges CSS definieren, weil italics recht geradlinig ist. Aber zum Beispiel bei "sm" geht das nicht mehr sinnvoll, weil man nicht für alle Zeiten vorhersagen kann, wie "sm" angezeigt werden soll. Der Sinn von CSS ist doch gerade, dass man die genauen Eigenschaften nicht konkret angeben muss, sondern nur einen Namen verwenden muss, und die genauen Eigenschaften werden dann im Stylesheet definiert.

Dies ist dann einfacher in XSL und CSS umzusetzen.

Das verstehe ich nicht ganz. Im Prinzip sollte eine einzige Definition von .it im CSS-Stylesheet ausreichen.

Ich gehe im folgenden nur auf mpdl-dev ein.

Problem mit <s style="it">:

p. 11 ohne dictionary:

Ich glaube, es ist gar kein CSS-Problem, sondern die style-Information von <s style="it"> wird einfach nicht in das html kopiert. Wenn man einen weiteren <span class="it"> einfügt, also

<a name="sn2"/>
<span class="s"><span class="it">Omnes qui dere-<br/>bus <span class="reg">dubijs</span> conſultant, ab odio amicitia, ira, atque <br/>miſericordia vacuos eſſe decet. </span></span>

wird es korrekt angezeigt.

p.11 mit dictionary:

Hier gibt es merkwürdige zusätzliche Probleme (und zwar ganz identisch in Firefox als auch in Safari), dass nämlich im neu eingefügten <span class="it"> Wörter vor dem ersten Wörterbuch-link anders gerendert werden als Wörter nach dem ersten Wörterbuch-link. Diese Probleme verschwinden auf genauso merkwürdige Weise, wenn man alle

<a name="sn1"/> 

etc. durch

<a name="sn1"></a> 

ersetzt. Merkwürdig deshalb, weil das <a name="sn2"/> aus dem obigen html-Schnipsel gar nicht in <span class="s"> und <span class="it">, sondern davor ist.

Problem mit <p style="it">:

p.7 ohne dictionary:

Wenn man im CSS-Stylesheet die Zeile

.s {font-style:normal}

entfernt, wird es korrekt angezeigt.

Diese Zeile halte ich auch ausdrücklich für falsch. Die Idee von <p style="it"> und <s style="it"> ist die gleiche wie bei xml:lang, das auch für alle Unter-Elemente gilt, solange ein Unter-Element nicht ein anderes xml:lang definiert. Genauso soll <s> den style von <p> übernehmen, wenn es nicht selbst einen style definiert. Und selbst dann soll zum Beispiel

<p style="bf">
  <s style="it">

bewirken, dass der Inhalt von <s> in "bf it" ist.

Small caps: "AGitur" wird auch weiterhin korrekt upright und mit small caps angezeigt.

p.7 mit dictionary:

Hier gibt es die gleichen zusätzlichen Probleme wie auf Seite 11, und sie lassen sich auf die gleiche Weise lösen.

Last edited 8 years ago by wschmidle (previous) (diff)

comment:6 Changed 8 years ago by jwillenborg

  • Owner changed from jwillenborg to abukhman

Habe es nun doch so umgesetzt. Es werden nun zwei <span> geschachtelt, das erste ist die Klasse und das zweite der Style:

<span class="s"><span class="it">Omnes qui dere- ... </span></span>

Auch bei <emph> habe ich Dinge entsprechend korrigiert.

comment:7 Changed 8 years ago by abukhman

  • Resolution set to fixed
  • Status changed from new to closed

comment:8 Changed 8 years ago by wschmidle

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:9 Changed 8 years ago by wschmidle

  • Owner changed from abukhman to jwillenborg
  • Status changed from reopened to new

Jetzt wird small caps weder auf Seite 7 (kursiver Absatz) noch auf Seite 9 (normaler Absatz) korrekt angezeigt. Es gibt im html kein class="sc" mehr, das kann Andrey nicht korrigieren.

comment:10 Changed 8 years ago by wschmidle

Siehe auch Ticket 130.

comment:11 Changed 8 years ago by jwillenborg

  • Resolution set to fixed
  • Status changed from new to closed

Beispiel: <emph style="sc it">AGitvr</emph>

Dies wird in HTML umgesetzt zu (koorigiert ist, dass nun auch das "it" korrekt dargestellt wird, Fehlerbeseitigung): <span class="dc"><span class="it">A</span></span><span class="it">Gitvr</span>

Es wurde dort schon immer für den ersten Buchstaben ein "dc" erzeugt (Grossschrift) und für die anderen Buchstaben das angegebene style "it" gesetzt. Warum soll es jetzt schon wieder anders werden bzw. was soll denn erzeugt werden, wenn ich solch ein "emph" habe ?

Dies halte ich auch nicht gerade für dringlich und ein Version 1.0 Problem und schliesse es deshalb wieder.

comment:12 Changed 8 years ago by wschmidle

  • Resolution fixed deleted
  • Status changed from closed to reopened

Also nochmal:

  1. Im XML steht:
    <p style="it"> 
      <s xml:space="preserve"><emph style="sc it">AGitvr</emph> nonusdecimus ... 
    
  2. Das soll angezeigt werden als:

    AGitur nonusdecimus ...

    Insbesondere wird doppeltes it wieder zu upright. Das A von AGitur kann man dabei noch zusätzlich zu einem drop cap machen, falls man möchte.
  1. Das kann man erreichen mit:

3.1. im HTML:

<p class="it"> 
<a name="sn1"></a><span class="s"><span class="sc it">AGitur</span> nonusdecimus ... 

oder

<p class="it"> 
<a name="sn1"></a><span class="s"><span class="dc it">A</span><span class="sc it">Gitur</span> nonusdecimus ... 

3.2 im CSS:

.it        { font-style:italic } 
.it .it    { font-style:normal } 
.sc        { font-variant:small-caps } 
(plus Regeln für s und eventuell dc) 

und man muss folgende Zeilen löschen:

span.sc    { font-weight:bold; } 
span.sc.it { font-weight:bold; font-style:italic; }

Wir haben im Meeting 2011-03-10 beschlossen, dass dieses Ticket zum Milestone 1.0 gehört. Aber selbst wenn es nicht 1.0 ist, muss der Milestone geändert werden, anstatt das nach wie vor ungelöste Ticket zu schließen.

comment:13 Changed 8 years ago by jwillenborg

  • Milestone changed from 1.0 to 1.x

Das was du unter Punkt 1 und 2 schreibst ist eine ganz neue Anforderung. Dies war bisher nicht implementiert. Und weiterhin ist nicht klar, ob die anderen Projektteilnehmer auch solch eine Umsetzung haben wollen (im Originalbild ist ein sehr großer erster Buchstabe und der Rest wird in Großbuchstaben gesetzt). Ich setze diesen Punkt deshalb auf Milestone 1.x

comment:14 Changed 8 years ago by casties

  • Milestone changed from 1.x to 1.1

Siehe auch #130 in Bezug auf style attribut in allen Elementen. Die Diskussion in diesem Ticket geht darüber hinaus.

comment:15 Changed 8 years ago by jwillenborg

  • Resolution set to fixed
  • Status changed from reopened to closed

comment:16 Changed 8 years ago by wschmidle

  • Parent Tickets set to 146

comment:17 Changed 8 years ago by wschmidle

Soweit ich es erkennen kann, ist das ursprüngliche Problem von <s style="it"> und <p style="it"> gelöst. Ich habe mir das html / CSS nicht mehr angeguckt.

Für double italics siehe #96 bzw. die Fortsetzung in #186.

comment:18 Changed 8 years ago by wschmidle

  • Parent Tickets changed from 146 to 146, 196

comment:19 Changed 8 years ago by wschmidle

  • Parent Tickets changed from 146, 196 to 196, 197
Note: See TracTickets for help on using tickets.