Layout, hur kan man effektivisera?

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,125
Jag håller på och layoutar ett litet kortspels regler, och jag blir knäpp på hur knöligt det är.

Korten, symbolerna, mats, låda och liknande har jag designat i OpenSCAD. Det är ett program som tilltalar mitt sätt att tänka. Allt definieras i scripts, inget som man kluttar ut för hand (Ja, jag vet att många gillar att göra för hand och är väldigt duktiga på det, men för mig blir det bara kluttande.). Det är ett scriptspråk som är intelligent nog för att jag ska kunna bygga in lite intelligens i hur saker ska hamna, skalor, storlekar och så vidare, utan att i förväg behöva låsa mått.

Sedan ska jag layouta reglerna. Då kommer Scribus in, som klarar det jag behöver på något sätt, men som jag inte kan få ett smidigt flöde i.

* Att lägga ett annat flöde mellan kolumnerna än det "vanliga" har jag inte fått att funka, så det har jag fått handjaga för att få det rätt för att två dubbelsidiga A4 ska bli ett snyggt häfte. Hade det varit många sidor så hade det varit en mardröm.

* När jag ändrar en underliggande resurs, tex en symbol eller illustation, så uppdateras inte den automatiskt i dokumentet. För mig som programmerare så känns det helknasigt, och medför en massa extra arbete.

* SVG-filer. Inkscape, Illustrator, you name it, de hittar alla på något skumt med dem, så alla måste gås genom med Notepad++ och fixas innan de blir som jag vill ha dem. Nu har jag gjort ett litet program som fixar dem, men ska det verkligen behövas?

* Et cetera, et cetera...

Så, ni som kan det här, hur får man ett efektivt flöde för att hantera upplägg och revisioner?

Helst skulle jag vilja se något i stil med OpenSCAD, fast inriktat på layout, så att man kunde angripa det helt programmatiskt. LaTeX är inte ett alternativ, det ger bra kontroll, men som programspråk är det inte mycket att ha (försök tex få det att läsa från en fil eller en databas...). HTML är inte heller något att ha i sammanhanget, det funkar inte för utskrift med något slags förutsägbar precision. Visst, jag hade kunnat skriva någon preprocessor som man programmerar i något annat språk som genererar LaTeX ut, men det känns som om man arbetar mot verktyget då, inte med det. Makrofunktioner i vanliga layoutprogram är rätt så primitiva och avsedda för annat.

Så, hur är "tänket"? Hur förväntas man hantera sånt här?
 

wilper

Gubevars en rätt produktiv människa.
Joined
19 May 2000
Messages
6,806
Location
Nordnordost
Visst, jag hade kunnat skriva någon preprocessor som man programmerar i något annat språk som genererar LaTeX ut, men det känns som om man arbetar mot verktyget då, inte med det. Makrofunktioner i vanliga layoutprogram är rätt så primitiva och avsedda för annat.

Så, hur är "tänket"? Hur förväntas man hantera sånt här?
Jag har iofs bara gjort ett kortspel, och det var lite enklare i sin konstruktion än ditt spel efter vad det verkar. Men jag gjorde precis det som du sa, jag byggde lite skript som spottade ur sig LaTeX. Skulle jag göra ett mer omfattande spel skulle det nog ändå vara så jag skulle göra, jag tyckte det funkade bra.
 

Lemur

Speleman
Joined
7 Sep 2015
Messages
608
Du kan konvertera HTML till PDF. Så kan du automatisera generationen och de genererade pdferna skulle fungera som print-original samt vara konsekventa i sin form.
Jag skulle nog testa:
 

Lemur

Speleman
Joined
7 Sep 2015
Messages
608
Så, hur är "tänket"? Hur förväntas man hantera sånt här?
Svaret på den frågan är ganska tråkig tror jag. Företag som gör stora tryckgrejer (som kataloger etc) är för det mesta helt inlåsta i Adobes ekosystem. Där fungerar allt ganska bra eftersom du dynamiskt kan länka Illustrator och Photoshop-filer till ett InDesign-dokument.
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,125
Varför inte InDesign? Skall korten och reglerna skrivas ut hemma eller skickas till tryckeri?
För dyrt, och använder bara för reglerna. Dessutom gillar jag inte att handklutta, jag vill göra det lite mer tekniskt.

Korten genererar jag som SVG från en datafil som jag läser i OpenSCAD, och sedan konverterar jag SVG-filerna till PDF och slår ihop till en fil med ett litet program jag gjort (som anropar lite andra program).

Det ska skrivas ut hemma, och sedan skär jag ut korten på min CNC-laser. Jag räknar bara med att det blir ett exemplar av spelet.

Jag har iofs bara gjort ett kortspel, och det var lite enklare i sin konstruktion än ditt spel efter vad det verkar. Men jag gjorde precis det som du sa, jag byggde lite skript som spottade ur sig LaTeX. Skulle jag göra ett mer omfattande spel skulle det nog ändå vara så jag skulle göra, jag tyckte det funkade bra.
Får du LaTeX att läsa från databaser/datafiler? Går det att få en intelligent design (typ saker i stil med "Ge den här spalten 40% av sidbredden, lägg den här tabellen på resterande bredd på andra sidan, lägg sedan den här bilden under tabellen och skala den med bibehållna proportioner till så storlek som får plats"). Det är sådant jag vill göra, och så att det automatiskt anpassar sig efterhand som delarna ändrar storlek.

Hittade denna, kan va det du letar efter (och kostar gratis!): https://noahjstewart.com/2014/10/automation-with-scribus-and-python/
Jag har tittat på det, men det känns klumpigt. Scriptfunktionen är ett stöd för den manuella hanteringen, jag skulle föredra att script, som i OpenSCAD, är all interaktion med resultatet.

Du kan konvertera HTML till PDF. Så kan du automatisera generationen och de genererade pdferna skulle fungera som print-original samt vara konsekventa i sin form.
Jag skulle nog testa:
PDF-en skulle vara konsekvent, men jag skulle inte veta exakt hur HTML skulle renderas i PDF. Så, jag kan inte i HTML-koden säga "Den här ska ligga 12 mm in i x-led, 14 mm i y-led, och ha måtten 66x93 mm". Den lösningen gör bara att det blir lika fel varje gång.

Svaret på den frågan är ganska tråkig tror jag. Företag som gör stora tryckgrejer (som kataloger etc) är för det mesta helt inlåsta i Adobes ekosystem. Där fungerar allt ganska bra eftersom du dynamiskt kan länka Illustrator och Photoshop-filer till ett InDesign-dokument.
Probably, men då måste man fortfarande sitta och handklutta. Jag trivs bättre med en lite mer ingenjörsmässig approach.
 

Caligo

Hero
Joined
3 Aug 2010
Messages
1,748
Location
Göteborg
För dyrt, och använder bara för reglerna. Dessutom gillar jag inte att handklutta, jag vill göra det lite mer tekniskt.

Korten genererar jag som SVG från en datafil som jag läser i OpenSCAD, och sedan konverterar jag SVG-filerna till PDF och slår ihop till en fil med ett litet program jag gjort (som anropar lite andra program).

Det ska skrivas ut hemma, och sedan skär jag ut korten på min CNC-laser. Jag räknar bara med att det blir ett exemplar av spelet.



Får du LaTeX att läsa från databaser/datafiler? Går det att få en intelligent design (typ saker i stil med "Ge den här spalten 40% av sidbredden, lägg den här tabellen på resterande bredd på andra sidan, lägg sedan den här bilden under tabellen och skala den med bibehållna proportioner till så storlek som får plats"). Det är sådant jag vill göra, och så att det automatiskt anpassar sig efterhand som delarna ändrar storlek.



Jag har tittat på det, men det känns klumpigt. Scriptfunktionen är ett stöd för den manuella hanteringen, jag skulle föredra att script, som i OpenSCAD, är all interaktion med resultatet.



PDF-en skulle vara konsekvent, men jag skulle inte veta exakt hur HTML skulle renderas i PDF. Så, jag kan inte i HTML-koden säga "Den här ska ligga 12 mm in i x-led, 14 mm i y-led, och ha måtten 66x93 mm". Den lösningen gör bara att det blir lika fel varje gång.



Probably, men då måste man fortfarande sitta och handklutta. Jag trivs bättre med en lite mer ingenjörsm
det fnns Framemaker. Det låter som det är det du Behöver. Kanske finns nån begagnad att köpa.

InDesign har en hel del automatiska funktioner - det är väldigt svårt att hitta något bättre egentligen. Snabbt att jobba i. Du kan även betala en månad och sedan pausa.
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,125
det fnns Framemaker. Det låter som det är det du Behöver. Kanske finns nån begagnad att köpa.

InDesign har en hel del automatiska funktioner - det är väldigt svårt att hitta något bättre egentligen. Snabbt att jobba i. Du kan även betala en månad och sedan pausa.
Framemaker använde jag för jättelänge sedan, kanske ska titta hur det ser ut idag.

InDesign har jag tittat på, och det är inte för mig. Det är för de som klarar/orkar att göra saker för hand.
 

wilper

Gubevars en rätt produktiv människa.
Joined
19 May 2000
Messages
6,806
Location
Nordnordost
Jag vet inte riktigt var du står när det gäller LaTeX och så, så en del är kanske uppenbart.

Jag hade gjort en bok med sidstorleken A5. Och sedan använt psnup för att sortera om sidorna i tryckordningen och lägga dem på A4-papper.

Med "\input{filnamn}" går det att skjuta in innehåll från externa filer i dokumentet. Jag hade gjort ett skript som genererade enkla LaTeX-block från datakällan, och sedan input-at dem i huvud-dokumentet.

40% spaltbredd? Jag vet inte hur man gör spalter av olika bredd.

Att få bilder och tabeller att hamna "rimligt" där det finns plats tycker jag LaTeX är rätt bra på som det är, har du haft problem med att de flyter iväg för dig? Det är inte så att de är bredare än platsen där du sagt att de skall vara, för då hamnar de på nästa lediga sida, vilket i ditt fall låter som sist i hela dokumentet.

Den där skalningen förstår jag inte riktigt, löser https://blogs.gnome.org/muelli/2011/04/perfectly-scale-an-image-to-the-rest-of-a-page-with-latex/ problemet?
 

Lemur

Speleman
Joined
7 Sep 2015
Messages
608
Jag använder Affinity Publisher för att göra layout, för en liten slant får man ett otroligt kompetent program helt i klass med InDesign (vilket verkligen inte kan sägas om Scribus). Rekommenderas varmt!
Dock så går det inte att automatisera (än) så det är nog inget för dig Troberg.
 

Lemur

Speleman
Joined
7 Sep 2015
Messages
608
PDF-en skulle vara konsekvent, men jag skulle inte veta exakt hur HTML skulle renderas i PDF. Så, jag kan inte i HTML-koden säga "Den här ska ligga 12 mm in i x-led, 14 mm i y-led, och ha måtten 66x93 mm". Den lösningen gör bara att det blir lika fel varje gång.
Jag förstår inte riktigt vad du menar skulle bli fel och inkonsekvent. Du kan göra en massa väldigt precisa regler med CSS. Om du vet måtten på PDFen kan du anpassa innehållet efter det med din CSS.
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,125
40% spaltbredd? Jag vet inte hur man gör spalter av olika bredd.

Att få bilder och tabeller att hamna "rimligt" där det finns plats tycker jag LaTeX är rätt bra på som det är, har du haft problem med att de flyter iväg för dig? Det är inte så att de är bredare än platsen där du sagt att de skall vara, för då hamnar de på nästa lediga sida, vilket i ditt fall låter som sist i hela dokumentet.

Den där skalningen förstår jag inte riktigt, löser https://blogs.gnome.org/muelli/2011/04/perfectly-scale-an-image-to-the-rest-of-a-page-with-latex/ problemet?
Tänk dig hur tex ett program kan skala sitt fönster intelligent. Om du minskar browsern så blir vissa kontroller (tex adressbar) mindre, vissa ligger fast (knappar linjerade med vänsterkant), vissa åker med (knappar linjerade med högerkant) osv. Det är den typen av intelligens jag vill kunna programmera. Det skulle varit en baggis i OpenSCAD, om det inte var för att den inte förstår "sidor" och typografi så bra.

Liksom, om jag, säg, vill ändra spaltbredd lite, ändra marginaler eller textstorlek lite, så vill jag inte behöva jaga runt i dokumentet och pilla överallt, jag vill ändra en enda variabel och sedan ska allt anpassa sig efter min förutdefinierade logik.

Sedan, att det hamnar rimligt är inte vad jag är ute efter. Det är inte svårt. Jag behöver att de hamnar exakt där jag vill ha dem. Det är inte heller svårt, men det är svårt att hitta verktyg som gör det.

Jag förstår inte riktigt vad du menar skulle bli fel och inkonsekvent. Du kan göra en massa väldigt precisa regler med CSS. Om du vet måtten på PDFen kan du anpassa innehållet efter det med din CSS.
HTML har ingen koppling till verkliga mått. I den mån den använder "verkliga" enheter så är det logiska mm, logiska tum osv, vilket är en gissning utifrån vilken DPI renderingsenheten har, ungefär som när Windows internt använder twips som måttenhet (1 twip är 1/1440 logisk tum (wikipedia har fel där, den hävdar 1/1440 tum, och det är något helt annat). Så, då måste jag testa mig fram för att hitta rätt skalfaktor, och sedan hoppas att nästa version av renderaren inte gör någon ändring som påverkar. Det måste vara exakt, en tiondels millimeter kan vara skillnaden mellan vilken sida av en radbrytning ett långt ord hamnar på, och det kan fucka upp allt.
 

Lemur

Speleman
Joined
7 Sep 2015
Messages
608
  1. Det måste vara exakt, en tiels millimeter kan vara skillnaden mellan vilken sida av en rgn adbrytning ett långt ord hamnar på, och det kan fucka upp allt.
Ja är man så petig så är det få automatiserade lösningar som duger. Det enda jag kan komma på är att scripta InDesign (för det kan man med hjälp av JavaScript).
 

Caligo

Hero
Joined
3 Aug 2010
Messages
1,748
Location
Göteborg
Liksom, om jag, säg, vill ändra spaltbredd lite, ändra marginaler eller textstorlek lite, så vill jag inte behöva jaga runt i dokumentet och pilla överallt, jag vill ändra en enda variabel och sedan ska allt anpassa sig efter min förutdefinierade logik.

Sedan, att det hamnar rimligt är inte vad jag är ute efter. Det är inte svårt. Jag behöver att de hamnar exakt där jag vill ha dem. Det är inte heller svårt, men det är svårt att hitta verktyg som gör det.
InDesign klarar av allt detta (om jag förstått vad du vill göra). Det går dessutom att scripta (vilket jag dock aldrig gjort själv). Det fanns en gång en jättebra inbyggd manual till InDesign som inte verkar existera längre (?).
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,125
InDesign klarar av allt detta (om jag förstått vad du vill göra). Det går dessutom att scripta (vilket jag dock aldrig gjort själv). Det fanns en gång en jättebra inbyggd manual till InDesign som inte verkar existera längre (?).
Jag har tittat lite på InDesign, men det känns som om sriptningen är mer ett "makron för att automatisera återkommande uppgifter" än att "scripta allt".

Spontant så känns det som om det enklaste just nu är att skriva en pre-processor och enb post-processor till OpenSCAD.
 
Top