28 svar
319 visningar
Yngve 40136 – Livehjälpare
Postad: 12 sep 08:29

Problem med < och > i LaTex-koden

Ett problem jag länge har irriterat mig på är att symbolen < i LaTex-koden ofta misstolkas när jag redigerar ett inlägg.

Exempelvis 0^{\circ}<v<90^{\circ} kommer ut som 0°<v<90°0^{\circ}<v<90^{\circ} när jag postar inlägget första gången, men efter redigering av (en helt annan del av) inlägget byts det ut mot 0°<>.

Känner någon igen detta? Har ni någon fix?

sictransit Online 1019 – Livehjälpare
Postad: 12 sep 13:55 Redigerad: 12 sep 13:57

Inget jag drabbats av hittills, men förstås irriterande. 

Använder du rot-knappen för att infoga matte, eller skriver du LaTeX direkt på något sätt?

Hur som helst har det säkert med att göra att <>-tecknen även används i HTML, så om de inte "escapas" utan tolkas som en del av HTML:en kommer den att se ut att innehålla ogiltiga/trasiga element. "Mindre än" skrivs som &lt; i HTML, för att inte förväxlas med <.

Säkert en bugg, som kanske redan är fixad. Den version av TinyMCE som används här verkar vara från 2019. Det har kommit många uppdateringar sedan dess.

Jag har inte varit med så länge och har ingen koll på hur Pluggakuten underhålls och uppdateras.

naytte 4852 – Moderator
Postad: 12 sep 16:10 Redigerad: 12 sep 16:12

Jag upplever samma problem som du. Just "<"-tecknet har det alltid funnits problem med här. Ett annat problem är att ens "$$"-tecken flyttas utan att man rör dem, och ibland dupliceras de också, vilket förstör hela formatteringen. 

Ett sätt du kan komma runt problemet med ordningsrelationerna är att du använder inbyggda varianter istället, som "\lt" eller "\gt".


Jag förstår faktiskt inte varför LaTeX-formatteringen här på PA är så himla kass. Det borde inte vara så svårt att lösa snyggt, kan man tycka.

Yngve 40136 – Livehjälpare
Postad: 12 sep 16:17
sictransit skrev:

[...]

Använder du rot-knappen för att infoga matte, eller skriver du LaTeX direkt på något sätt?

Eftersom jag kör allt på telefonen så använder jag inte rot-knappen utan istället "inline-kod", dvs med $$.

Hur som helst har det säkert med att göra att <>-tecknen även används i HTML, så om de inte "escapas" utan tolkas som en del av HTML:en kommer den att se ut att innehålla ogiltiga/trasiga element. "Mindre än" skrivs som &lt; i HTML, för att inte förväxlas med <.

Säkert en bugg, som kanske redan är fixad. Den version av TinyMCE som används här verkar vara från 2019. Det har kommit många uppdateringar sedan dess.

Jag har inte varit med så länge och har ingen koll på hur Pluggakuten underhålls och uppdateras.

Tack för svar!

Yngve 40136 – Livehjälpare
Postad: 12 sep 16:21 Redigerad: 12 sep 16:22
naytte skrev:

Jag upplever samma problem som du. Just "<"-tecknet har det alltid funnits problem med här. Ett annat problem är att ens "$ $"-tecken flyttas utan att man rör dem, och ibland dupliceras de också, vilket förstör hela formatteringen.

Ja! Även det är väldigt irriterande.

Ett sätt du kan komma runt problemet med ordningsrelationerna är att du använder inbyggda varianter istället, som "\lt" eller "\gt".

När jag har prövat det tidigare så har det inte funkat, men skam den som ger sig, jag prövar igen:

"\lt" blir \lt\lt

"\gt" blir >\gt

naytte 4852 – Moderator
Postad: 12 sep 16:22

Haha vilket ironiskt sammanträffande att formattering sket sig nu 😂😂

Yngve 40136 – Livehjälpare
Postad: 12 sep 16:22 Redigerad: 12 sep 16:23
naytte skrev:

Haha vilket ironiskt sammanträffande att formattering sket sig nu 😂😂

Exakt!

Men jag skulle låtit det stå kvar som en manifestation av alltings eländighet 😀 

Yngve 40136 – Livehjälpare
Postad: 12 sep 16:24 Redigerad: 12 sep 16:28

OK, \gt verkar funka, men inte \lt:

Förslag?

naytte 4852 – Moderator
Postad: 12 sep 16:27

Detta borde vara ett utvecklingsförslag inför nästa moderatormöte. Det är oacceptabelt hur dålig implementering av LaTeX är på Pluggakuten, med tanke på att PA är mångas första möte med LaTeX.

Yngve 40136 – Livehjälpare
Postad: 12 sep 16:32 Redigerad: 12 sep 16:33

Prövar med:

\textless blir \textless\textless

\textgreater blir \textgreater\textgreater

====

====

Nix, funkar inte.

naytte 4852 – Moderator
Postad: 12 sep 18:20 Redigerad: 12 sep 18:23

Det hände igen!

sictransit Online 1019 – Livehjälpare
Postad: 12 sep 20:11 Redigerad: 12 sep 21:26

Kanke har naytte som moderator en ingång till MC?

Utveckligen går fort, webbläsare uppdateras ... Komponenter blir gamla alltför fort. Någonting från 2019 är redan lastgammalt ur mina tonåringars perspektiv. Det är än mer sant för javascript-komponenter.

Tror en uppdatering av sajten är på sin plats. Kvarstår buggarna, så får det bli en 'ticket' till de som underhåller komponenten

Dock skall man ta i beaktande att många som arbetar i "open source"-projekt har ungefär samma arbetsvillkor som vi har på PA. Vi gör det för att det är skoj, på vår fritid och utan betalning. 

sictransit skrev:

Kanke har naytte som moderator har en ingång till MC?

Kansliet diskuterar/funderar redan kring frågan. 😊

Yngve 40136 – Livehjälpare
Postad: 12 sep 21:34

Jag var mest ute efter en workaround.

Palle Derkert 1374 – Admin
Postad: 16 sep 13:22 Redigerad: 16 sep 13:44

Yes vi ska ta en titt på det här problemet och se om vi kan komma runt det.

För alla er som tänker "vad buggigt PA är, det är väl bara att patcha och uppgradera allting så skulle allting funka":

Det är många komponenter från många olika open source system som samverkar på PA, särskilt när det kommer till editorn. Att få TinyMCE:s olika versioner att lira ihop med MathType:s olika versioner är extremt skört. Lägg till Latex rendering och bildhantering/bildredigering i mixen så har vi en minst sagt känslig uppsättning där varje ändring kan få oväntade följder och mycket tidskrävande felsköning. Ni som har varit med här ett tag vet att vi ofta fått lite (o)lustiga följdfel i dessa system när vi ska fixa och förbättra. 

Sedan förändras ju omvärlden, alltså webbläsarna med tiden, så även om man håller sajten helt statisk kan nya oönskade beteenden dyka upp. 

Man kan varken ha kakan, eller äta den. Man kan inte blint uppgradera hela tiden, men att frysa allt fungerar inte heller i längden. 

Palle Derkert 1374 – Admin
Postad: 16 sep 13:43 Redigerad: 16 sep 13:48

Så är det givetvis, och ibland behöver man ta tjuren vid hornen och uppgradera. Men det kommer inte vara ett enkelt projekt för den som inbillar sig det. Därav kan man anpassa tonläget lite när man diskuterar dessa saker och förstå att det finns en större komplexitet än vad som kanske syns vid en första anblick. (ska inte ses som en anmärkning till dig @sictransit)

Ingen fara. Jag är själv i branchen, håller mig borta från frontend, men vet precis vad det handlar om. 👍

oggih 1292 – F.d. Moderator
Postad: 21 sep 23:23 Redigerad: 21 sep 23:25
Yngve skrev:

Ett problem jag länge har irriterat mig på är att symbolen < i LaTex-koden ofta misstolkas när jag redigerar ett inlägg.

Exempelvis 0^{\circ}<v<90^{\circ} kommer ut som 0°<>0^{\circ}<> när jag postar inlägget första gången, men efter redigering av (en helt annan del av) inlägget byts det ut mot 0°<>.

Känner någon igen detta? Har ni någon fix?

Händer detta alltid eller bara ibland? Jag provade att leka runt lite med din formel 0^{\circ}<v<90^{\circ}, men lyckas inte återskapa problemet, hur mycket jag än redigerar. Kan du beskriva/visa exakt hur du gör för att problemet ska uppstå? 

Yngve 40136 – Livehjälpare
Postad: 21 sep 23:45

Det hände just nu när du citerade mitt ursprungsinlägg.

================

Ursprungsinlägget #1:

===========

Ditt inlägg #19:

=============

oggih 1292 – F.d. Moderator
Postad: 22 sep 00:50 Redigerad: 22 sep 00:53

Intressant! Verkar vara som att en av många saker som trigger problemet är citering i kombination med att man gör en editering där man ändrar på formateringen av något (t.ex. fetstilar något eller använder programmeringskodfunktionen som jag gjorde här ovan).

En observation/hypotes efter att ha experimenterat med detta lite verkar vara att om man har blanksteg mellan < och >, och omgivande text så försvinner problemet (eller blir i alla fall svårt nog att trigga för att jag inte ska lyckas göra det).

LaTeX-kod i stil med 0^{\circ} < v < 90^{\circ} verkar alltså bete sig mer stabilt än 0^{\circ}<v<90^{\circ}.

Får se om någon lyckas falsifiera den hypotesen! ^_^

Yngve 40136 – Livehjälpare
Postad: 22 sep 08:28 Redigerad: 22 sep 08:29

Bra hypotes! Jag prövar.

Utan blanksteg:

0°<v<90°0^{\circ}<>

Med blanksteg:

0°<v<90°0^{\circ} < v < 90^{\circ}

Yngve 40136 – Livehjälpare
Postad: 22 sep 08:31 Redigerad: 22 sep 08:34
Yngve skrev:

Bra hypotes! Jag prövar.

Utan blanksteg:

0°<>0^{\circ}<>

Med blanksteg:

0°<v<90°0^{\circ} < v < 90^{\circ}

Så här ser det ut citerat, där jag har fetstil ett par fraser.

Hypotesen klarade alktså detta test, vilket jag nöjer mig med tills vidare.

Jag återkommer om det trots allt händer igen.

Stort tack oggih!

macson Online 320 – Admin
Postad: 26 sep 17:07 Redigerad: 26 sep 17:08

Tjenare gänget!

Tack för era exempel på hur man kan reproducera detta problem! Jag kommer att lansera en fix för detta imorgon förmiddag. 

Jag har hittat en tydlig situation där detta problem uppstod, det handlade om postning av latex med < och >, tex denna:

0°<v<90°0^{\circ}<v<90^{\circ}

Som sictransit skrev så är inte dessa tecken "godkända" i HTML, vårt problem här är att vi behöver behålla tecknen i någon form för att kunna återskapa Latex-utrycket när man ska redigera en post. Iom att dessa tecken fanns med så tolkade annan kod detta som felaktiga HTML-taggar.

På vissa ställen i koden har det använts en funktion som rensar Latex-koden innan bibiloteket anropas. 

När jag testat så kunde jag trigga felet med Latex ovan och efter denna fix så kan jag inte längre trigga detta fel. Ni får väldigt gärna testa runt och försöka att komma ihåg lite mer i detalj vilka steg som tas och exakt i vilket kontext det händer. Det är tex olika om det handlar om en ny tråd, ett nytt svar, redigera ett svar osv. Så fler steg desto bättre. Testa gärna i denna tråd för enkelhetens skull.

Som lite bakgrund för att skapa en förståelse här så händer det en hel del grejer när man skapar eller redigerar en tråd, bland annat:

  • Extraherar "base 64"-encodade bilder och sparar dessa på disk (för att kunna redigera bilder)
  • Jämför sparad HTML med den postade för att veta ett en bild raderas så att vi kan radera filen från disk.
  • Parera för buggar i MathJax/TinyMCE som pajar inline latex.
  • Tolkar och rensar all typ av kod som inte är i vår whitelist (för att inte släppa igenom olika injection attack-försök)
  • Letar efter och rensar fula ord och "white space".
  • Hanterar och tolkar "citat" och nestlar dessa vid behov.

Det är ännu fler saker än detta som händer så även om det på ytan kan framstå som "varför kan det inte bara fungera" så är det ett gäng bollar som ska hållas i luften samtidigt =D

Håller alla tummar för att vi lyckats hitta rätt i denna bugfix!

Rapportera gärna här hur ni upplever det!

macson Online 320 – Admin
Postad: 27 sep 10:12 Redigerad: 27 sep 10:12

Hej!


Nu är uppdateringen live.

0°<v<90° 0 ^ {\circ} < v < 90 ^ {\circ}

Sideeg 1197 – Admin
Postad: 27 sep 11:11
macson skrev:

Hej!


Nu är uppdateringen live.

0°<v<90° 0 ^ {\circ} < v < 90 ^ {\circ}

Tack Macson,

Jag citerar ditt inlägg och testar samtidigt utan mellanslag i LaTeX-koden. 0°<v<90°0^{\circ}<v<90^{\circ}

Sideeg 1197 – Admin
Postad: 27 sep 11:12
Sideeg skrev:
macson skrev:

Hej!


Nu är uppdateringen live.

0°<v<90° 0 ^ {\circ} < v < 90 ^ {\circ}

Tack Macson,

Jag citerar ditt inlägg och testar samtidigt utan mellanslag i LaTeX-koden. 0°<v<90°0^{\circ}<v<90^{\circ}

Perfekt!

Sideeg 1197 – Admin
Postad: 27 sep 11:17 Redigerad: 27 sep 11:27
Yngve skrev:

Bra hypotes! Jag prövar.

Utan blanksteg:

0°<>0^{\circ}<>

Med blanksteg:

0°<v<90°0^{\circ} < v < 90^{\circ}

Hur fungerar det med gamla inlägg som postats före bugfixen? Jag testar...


Tillägg: 27 sep 2024 11:26

När jag citerade detta inlägg, var det tydligt att den första koden saknar v och 90 grader, dvs. innan jag postade svaret. Så här var det:

0^{\circ}<>

macson Online 320 – Admin
Postad: 28 sep 08:42
Sideeg skrev:
Yngve skrev:

Bra hypotes! Jag prövar.

Utan blanksteg:

0°<>0^{\circ}<>

Med blanksteg:

0°<v<90°0^{\circ} < v < 90^{\circ}

Hur fungerar det med gamla inlägg som postats före bugfixen? Jag testar...


Tillägg: 27 sep 2024 11:26

När jag citerade detta inlägg, var det tydligt att den första koden saknar v och 90 grader, dvs. innan jag postade svaret. Så här var det:

0^{\circ}<>


Glömde nämna det, buggen som fanns gör att ”skada är skedd” om man sparat om ett inlägg sedan tidigare. Dvs i detta fall är problemet att inlägget hade redigerats innan buggfixen.

Testning av detta problem bör göras med inlägg/poster som bara skapats eller redigerats efter det att buggen blev fixad.

Svara
Close