Sziasztok!
Nem olyan rég óta foglalkozok LaTeX-hel. Talán ismeritek a játékkönyv formátumot (ismertebb magyar nevén lapozgatós könyv), ehhez szeretnék gyártani valami stílussablon fájlt, bár egyelőre még közvetlenül a .tex fájlba írom a formázási opciókat, csak szeretnék egy kis segítséget kérni.
Mint tudjátok ezek olyan könyvek, ahol max. az első 20 oldalon kell a láblécbe oldalszámozás (fejléc egyáltalán nincs), a további oldalakon a pagestyle empty kell legyen. Na tehát először is azt szeretném megkérdezni, hogy a preambulumban milyen utasítást kell megadni ahhoz, hogy csak az első néhány oldal legyen számozva, a többi ne?
A bevezető szöveg után a törzsszöveg ugye számozott bekezdésszakaszokra van osztva, ahol a számozás félkövér és középre van igazítva, valamint kb. egy üres sornyi hely marad ki a szám és a szöveg között és kb. 3 üres sornyi hely az előző fejezetszöveg vége és az új fejezetszám eleje között.
Ezt momentán tételkörnyezetekkel oldottam meg, de bárkinek egyéb javaslatára is vevő lennék.
Így néz ki:
\newtheoremstyle{fejezetpont}{3ex plus 1ex minus 1ex}{1ex}{\upshape\bfseries}{0.5\textwidth}{\bfseries}{.}{0pt}{\thmnumber{#2}}
\theoremstyle{fejezetpont}
\newtheorem{fp}{akarmi}
Na most itt az akármi gyakorlatilag egyáltalán nem kell, ezért írtam be bármit, mert a szám után közvetlenül nem áll sem tételcím, sem tételszöveg.
Így használom a környezetet:
\begin{fp}
\label{1.}
\end{fp}
Másnap hajnalban döngő léptek közeledő zajára ébredtek. Kulcs csikordul a zárban, és két, fekete páncélinget viselő férfi jelenik meg az ajtóban élelemmel megrakott tálcákkal. -- Sokat egyetek -- szól az egyik --, mert erőre lesz szükségetek ahhoz, hogy túléljétek ezt a napot! Lehet, hogy mind meghaltok! -- Ekkor az egyik őr feléd fordul, és egy szelet kenyérrel meg egy tál levessel kínál. Ha elfogadod tőle az ételt - lapozz \aref{2.}-re. Ha az őrt leütve inkább megpróbálsz elmenekülni - lapozz \aref{3.}-ra.
\begin{fp}
\label{2.}
\end{fp}
Ide is elfér a következő szövege. Ha bővebb tájékoztatást szeretne, kérjük lapozzon \aref{1.}-re.
Ezzel a környezettel ugye létrejön a szám kb. középre zárva, de ha a szöveget a begin és end utasítások közé írom, akkor az a szám mellé kerül és nem alá. Ezért kénytelen vagyok a szöveget közvetlen a tételkörnyezet alá írni, mert így megfelelő lesz a formázás. Arra mindenesetre jó a tételkörnyezet, hogy közrefogja a \label-t hiszen itt szinte minden pontra link fog mutatni, tehát van értelme. A fenti szövegben is vannak \arefes utasítások, amikkel hivatkozok a különböző pontokra. Lapozz ide vagy lapozz amoda. Ezzel csak az a gond, hogy a fejezetpontok egymás után történő beírásánál az arefek olyan címkékre fognak hivatkozni, amik még nem léteznek. Ez viszont zavaró tud lenni. Mi erre a megoldás? Írjam a fejezetpontokat a tartalomnak megfelelően összevissza, így mindig lesz label a hivatkozáshoz vagy maradhatok a jelenlegi módszernél? (csak asszem error miatt le se fordul)
A másik kérdésem a szörnynév beadása a szövegkörnyezetbe anélkül, hogy végig kelljen irkálni motorikusan egy \begin{tabular} dolgot újra és újra ahányszor előjön a szövegben a szörnynév.
Ezt egyelőre egy új környezet definiálásával oldottam meg:
\newenvironment{szorny}[3]{\begin{flushleft}\begin{tabular}{p{4cm}lrlr} \MakeUppercase{#1} & ÜGYESSÉG & #2 & ÉLETERŐ & #3} %
{\end{tabular}\end{flushleft}}
Ez kiválóan működik is, hiszen amikor a szövegben odaérek, hogy jön a mumus küzdj meg vele, akkor szimplán kiadom, hogy:
\begin{szorny}
{vámpír}{8}{10}
\end{szorny}
És akkor kreál a fentiek szerint egy balra zárt táblázatot amit feltölt a fenti adatokkal, itt pl. VÁMPÍR ÜGYESSÉG 8 ÉLETERŐ 10 (szépen elrendezve, ahogy az ilyen könyvekben lenni szokott)
Na de! Hogy lehet ugyanezt megtenni két szörnnyel, amik egymás alatt vannak?
Példa:
\begin{flushleft}
\begin{tabular}{p{4cm}lrlr}
VÁMPÍR & ÜGYESSÉG & 10 & ÉLETERŐ & 10 \\
GOBLIN & ÜGYESSÉG & 5 & ÉLETERŐ & 3
\end{tabular}
\end{flushleft}
Tehát hogy ezt ne kelljen minden egyes résznél beírkálni, hanem kb. annyi adatot kelljen megadni, hogy szörnynév1, ügyességszám, életerőszám, szörnynév2, ua. stb.
Mert ha kétszer beírom egymás alá a szorny környezetet, akkor a helykihagyás túl nagy lesz és itt a sima \\ miatt nem kell olyan nagy. Ez megoldható az end és a begin közé ékelt \vspace{-valami érték} utasítással vagy ezt jóval bonyolultabb az egész dokumentumra vonatkozóan kezelni? Mert mondjuk 1-nél több szörny írásakor mindig ki kellene adni a \vspace-t is a két környezet közé, ami kissé macerás.
Szóval megoldási javaslatokat és ötleteket várok.
Aki esetleg nem tudná mi az hogy játékkönyv, hát itt van egy: http://fightingfantasy.extra.hu/forum/download.php?id=4
- 4694 megtekintés
Hozzászólások
latom sikerult regisztralni :)
sajna ebben segiteni nem nagon tudok, de lesz itt LateX-guru, szoval legyen ez egy UP
- A hozzászóláshoz be kell jelentkezni
up, lassan megjon a delutanos muszak, hatha lesz koztuk latex-szaki :)
- A hozzászóláshoz be kell jelentkezni
A preambulumban nem tudok megoldást az oldalszámozás abbahagyására, de a szövegbe -- ott ahol már nem kell számozása -- szúrd be a \pagestyle{empty} sort. Egyébként is, előre nem lehet tudni, hogy a számozást melyik oldalon kell abbahagyni. A "max. az első 20 oldalon kell" azért elég bizonytalan.
- A hozzászóláshoz be kell jelentkezni
És a többire nincs ötleted? Pl. arra, hogy ha egynél több szörny van, akkor annak hogy adható meg a formátuma a preambulumban?
Mert egyelőre a \vspace-en kívül más nem nagyon jutott eszembe. De az meg ugye nem a preambulumba kell, hanem a szövegbe ékelve.
Ja meg az Acrobat Distiller feszt azt írja mikor a pst konvertálom, hogy figyelmeztetés az xy betűtípus nem található, ezért cserélni fog. Ezt a hibát nem lehet valahogy megszüntetni? :)
- A hozzászóláshoz be kell jelentkezni
distillerrol kerdezni egy Unix portalon kicsit necces :D
- A hozzászóláshoz be kell jelentkezni
Hát ötletem az van:
A "fejezetek" formázására a \newenvironment-tel készítenék egy új környezetet. A "fejezetek" számozására készítenék egy számlálót (\newcounter). Az új környezetben helyezném el a szöveget. A \label nem kellene, mert lehetne hivatkozni az új számlálóra. Amit nem tudok: a magyar hivatkozások (\aref és társai) fognak-e rendesen működni.
Szörnyek: Meg fogsz lepődni! A tabulart használnám, átdefiniálás nélkül. Ha mindenképpen ragaszkodsz a külön szörny parancshoz, akkor azt javaslom, hogy készíts egy új környezetet, de előtte tanulmányozd a tabular környezet definicióját, majd azt másold le és módosítsd. Valahogy csak megoldották ott is. :-)
Eddig még soha nem kellett új környezetet csinálnom, így ez csak elvi segítség. Számlálót már csináltam régen, de akkor még nem volt \aref.
- A hozzászóláshoz be kell jelentkezni
Hát nem tudom hogy gondoltad. Konkrétumokat is írhatnál esetleg.
Mondjuk pl. \newcounter{fp}
Aztán \newenvironment{fejezetpont}{{\begin{center}\stepcounter{fp} \bfseries \thefp.\end{center}}{\baselineskip}}
Mondjuk ez nem is működik, de hogy adod meg itt, hogy mennyi hely legyen a szám fölött? No meg a \ref-fel hogy hivatkozol többféle számra? Mert ha így adod meg: \ref{fp}.~pont, akkor mindig az aktuális számláló értéket fogja kiírni nem?
a newtheoremstyle-nál meg azért egy csomó mindent előre meg lehet adni.
Például: új környezet neve, a bekezdés feletti és alatti térköz mértéke, a szöveg fontja, behúzás mértéke, a cím fontja, az elválasztó írásjel stb.. stb..
- A hozzászóláshoz be kell jelentkezni
Az új környezetről továbbra sem szeretnék konkrétumokat írni, mert még nem csináltam olyat. Nem azért mert nehéz, hanem mert még nem volt szükségem rá.
Számláló:
\newcounter{fpcounter}
A környezet definicióján belül:
\newenvironment{fejezetpont}........
\refstepcounter{fpcounter}
...
Ez automatikusan megnöveli a számláló értékét, és a \begin{fejezetpont} után álló \label{xxx} erre a megnövelt értékre fog mutatni.
Használata:
\begin{fejezetpont}
\label{Első_fejezet}
...
\end{fejezetpont}
Hivatkozás:
\aref{Első_fejezet}
- A hozzászóláshoz be kell jelentkezni
OFF: edes istenem mit meg nem adnek azert a gyujtemenyert a honlapon... valodi relikviak.
[insert line here]
B.C. 3500 - DIY Vehicle / A.D. 30 - DIY Religion / A.D. 1991 - DIY OS
- A hozzászóláshoz be kell jelentkezni
Szintén off, de csak csatlakozni tudok. (mióta keresem otthon az Országút Harcosát, oh azok a régi szép idők...)
+1 up valamint nagy riszpekt az oldalért
-----------
"Generally, Russian technology assumes dumb machines and smart humans, not the other way around." -- The Russian Tea HOWTO
- A hozzászóláshoz be kell jelentkezni
Ha érdekel megvan a sorozat majd' minden darabja.
Hétvégén felteszem az adás-vétel rovatba :D
--=={ Richee }==--
- A hozzászóláshoz be kell jelentkezni
nekem sokkal rosszabb a helyzetem. meghasad a szivem amikor latom ezeket, mert nekem MEGVOLT tobbek kozott Az orszagut harcosa is, A sarkany haboruja nevu low-cost kiadvany, ezenkivul baromi regi livingstone kotetek mint peldaul A Kaosz Fellegvara.
mi tortent? eladtam oket, es a rossz dontes azota kisert.
SOHA ne adjatok el konyveket.
[insert line here]
B.C. 3500 - DIY Vehicle / A.D. 30 - DIY Religion / A.D. 1991 - DIY OS
- A hozzászóláshoz be kell jelentkezni
A szörnyekre favágó módszer:
\newenvironment{szorny} [3]
{\begin{flushleft}\begin{tabular}{p{4cm}lrlr}\MakeUppercase{#1} & ÜGYESSÉG & #2 & ÉLETERŐ & #3}
{\end{tabular}\end{flushleft}}
\newenvironment{szorny2} [6]
{\begin{flushleft}\begin{tabular}{p{4cm}lrlr}\MakeUppercase{#1} & ÜGYESSÉG & #2 & ÉLETERŐ & \\
\MakeUppercase{#4} & ÜGYESSÉG & #5 & ÉLETERŐ & #6}
{\end{tabular}\end{flushleft}}
Ha két szörnyed van, akkor a szorny2 környezetet használod. Nem szép, de működik. Ha három szörnyet is akarsz egyszerre, akkor tovább kell vágni a fát.
- A hozzászóláshoz be kell jelentkezni
Egy közelítő megoldás: A \told és az \aref az 1.5-ös magyar.ldf-el működik jól.
...
\newcounter{fp}
\newenvironment{fp}
{\refstepcounter{fp}\begin{center}\thefp.\end{center}}
{}
\newenvironment{szorny} [3]
{\begin{flushleft}\begin{tabular}{@{}p{4cm}lrlr}\MakeUppercase{#1} & ÜGYESSÉ G & #2 & ÉLETERŐ & #3}
{\end{tabular}\end{flushleft}}
\newenvironment{szorny2} [6]
{\begin{flushleft}\begin{tabular}{@{}p{4cm}lrlr}\MakeUppercase{#1} & ÜGYESSÉ G & #2 & ÉLETERŐ & #3\\
\MakeUppercase{#4} & ÜGYESSÉG & #5 & ÉLETERŐ & #6}
{\end{tabular}\end{flushleft}}
\newcommand*{\lapozz}[1]{lapozz \told\aref{#1}+ra{}}
\begin{document}
Itt van a hosszú leírás. Fontos dolgok a játékról\ldots
\setlength{\parindent}{0cm}
\begin{fp}
\label{Első_fejezet}
Abrakadabra. Egyszer volt, hol nem volt, volt egyszer egy\ldots
\end{fp}
\begin{szorny2}
{vámpír}{8}{10}
{goblin}{5}{3}
\end{szorny2}
Ha legyőzted őket - \lapozz{Második_fejezet}
\begin{fp}
\label{Második_fejezet}
Itt a vége, fuss el véle. De még előtte meg kell küzdened ezzel a szörnnyel is.
A győzelem jutalma az lesz, hogy újra kezdheted a játékot.
\end{fp}
\begin{szorny}
{vámpír}{8}{10}
\end{szorny}
Ha legyőződ - \lapozz{Első_fejezet}
\end{document}
- A hozzászóláshoz be kell jelentkezni
Ami kimaradt:
A \setlength{\parindent... elé szúrd be a \pagestyle{empty} sort.
- A hozzászóláshoz be kell jelentkezni
Törölve. Rossz ötlet volt.
- A hozzászóláshoz be kell jelentkezni
typo:
újrakezdheted
legyőzöd
- A hozzászóláshoz be kell jelentkezni
nagyon preciz vagy :)
- A hozzászóláshoz be kell jelentkezni
Köszi szépen. Átnéztem. Viszont itt azért magyarázatra szorulna egy-két dolog. (legalább is nekem)
A szörnyes környezet teljesen rendben van, bár én kiszedtem belőle a @{}-t az első oszlop elől, mert szerintem jobban mutat, ha kicsit beljebb kezdi a szöveghez képest a nevet.
A \refstepcounter használatához azért mégis csak kellett az a label. ;) Esetleg még annyi, hogy a \thefp. elé egy \bfseries-t beraknék.
Az fp környezet meghatározásának végére miért kell üresen hagyni a második {} párt? Mondjuk átírtam oda az \end{center}-t de akkor a szöveg a szám mellé került. Ebből a kódból egyébként mi utasítja arra a latexet, hogy 1exnyi helyet kihagyjon a szám és a szövegrész kezdete között?
Illetve azt ezekből az új környezetekből hogy lehetne megoldani hogy picit több kb. 3exnyi hely legyen a fejezetszöveg vége és az új fejezetszám közt?
A lapozzos történetnél több dolgot se értek:
\newcommand*{\lapozz}[1]{lapozz \told\aref{#1}+ra.{}}
A newcommand csillagos verziója mit csinál? \told ? Ez valami toldalék illesztés? Hogy működik? Ja meg mi az a + a hivatkozás szám és a ra közt?
A ra. után miért kell {}? Vagy az egy szóköz akarna lenni? Akkor egyszerűbb lenne egy ~ nem?
Ja meg ami eszembe jutott még hogyan lehetne az úsztatást úgy megoldani, hogy az ábrák tényleg oda kerüljenek, ahova kiadod a parancsot? Mondjuk itt nincs is túlságosan nagy jelentősége, mivel az ábrákat nem számozzuk, nincs képaláírás, nem hivatkozunk rájuk, ugyanakkor a margók kivételével a teljes szövegtükröt elfoglalja.
Kicsit off: most írom a szakdogám természetesen latexben és hülyét kapok, amikor a sima figure környezetet használom, mert a [ht] opcióval ugye elsősorban oda kéne tennie az ábrát, ahol a parancsot kiadtam, de ha az ábra fölé (vagy alá) még fér szöveg, akkor oda még bekerül, holott lehet hogy épp azt írom a szövegben, hogy mint azt a fenti ábra is mutatja. Jó tudom hivatkozni kell, de azért az égő ha ez a szöveg az ábra fölé kerül. :D
A floatflt csomag floatingfigure környezetével meg egymásra került az ábra és a szöveg. Mondom ááá. :D
- A hozzászóláshoz be kell jelentkezni
A \newenvironment{fp}{első}{} első paramétere a \begin{fp} helyére kerül. A második paramétere az \end{fp} helyére. Ami a \begin{fp} és \end{fp} közzé kerül, az a két paraméter közzé fog kerülni. Ezért nem jó az \end{center} a második paraméternek, mert akkor az egészre vonatkozik a center környezet.
A szám és a szöveg közötti hely a center környezet miatt ilyen nagy. Ha kisebbet akarsz, akkor át kell definiálni a center környezetet (szerintem). Erre nem vállalkozom.
Ha meg akarod növelni a fejezet előtti távolságot, akkor valami ilyesmi kell:
{\refstepcounter{fp}\begin{center}\setlength{\parskip}{24pt plus 5pt minus 5pt}\thefp.\end{center}\setlength{\parskip}{6pt plus 1pt minus 1pt}}
A második \setlength... azért kell, hogy a szöveg előtt ne legyen túl nagy hely.
A \newcommand* esetében biztos, hogy a parancs paramétere nem hosszabb egy bekezdésnél. A csillagot akkor illik elhagyni, ha ebben nem vagyunk biztosak.
A \told magyar találmány, toldalékolást csinál számok után. "Kitalálja", hogy melyik a helyes: -ra, re. (-tól, től, -ban, -ben, ...). A +ra{}: ezz jelzi, hogy vége toldaléknak (v.ö.: +ba{}, +ban{}). Ha a végére .-ot is akarsz, akkor inkább így +ra{}. Egyébként több olyan latex parancs van amit {}-al kell zárni.
Ha pontosan oda akarod beszúrni a képet, ahol a forrásban van, akkor ne tedd az \includegraphics...-ot figure környezetbe. Pont. A figure környezetnek pont az a lényege, hogy a latex tipográfiai okok miatt úsztatja a képet. Ha egy nyomdába mégy el az anyagoddal, a tördelő is ezt fogja tenni. A latex -- többek között -- arra törekszik, hogy az oldal jól nézzen ki. Ha valami miatt nem jól néz ki, akkor az úsztatással próbál ezen segíteni.
A [ht] azt jelenti, hogy elsősorban az adott helyre, másodsorban lap tetejére próbálja meg beszúrni. A [!ht]-ben a "!" jel hatására egy kicsit elnézőbb lesz a latex, hajlandó egy kicsit rosszabb oldalképet létrehozni, de ez sem jelent garanciát. Ha a "t" elhagyod, akkor ritkábban fogja az ábrát előrébb tolni a forrásban elfoglalt helyéhez képest.
Szakdolgozathoz:
Két dologra kell figyelni: soha ne írjunk olyat, hogy a következő/előző ábrán. Helyette mindig ábra számmal hivatkozzunk az ábrára. (Minden ábrára hivatkozni kell. Csak egy oka van annak, ha egy ábrára nincs hivatkozás: Megnövelni a szakdolgozat hosszát.) Pl.:
... \aref{kisvacak} ábrán látható a ...
\begin{figure}
\begin{center}
\includegraphics[..]{...}
\caption{Kisvacak dolgok}\label{kisvacak}
\end{center}
\end{figure}
A másik dolog: ha az ábrát a latex csak több oldallal hátrébb tudja elhelyzni, akkor az ábrák közötti szöveg mennyiségét kell megnövelni. (Hivatkozás után le kell írni szövegesen, hogy mi látható az ábrán. Nem biztos, hogy az olvasó egyből rájön az ábra céljára.) Az ok: tipográfiai szempontból fontosabb, hogy az oldal alján ne legyen üres hely, mint az hogy az ábra az adott oldalra kerüljön. Elméleti szempontból: ha túl sok ábra van kevés szöveggel, akkor meg kell fontolni, hogy bizonyos ábrákat függelékbe rakunk. A függelékbe rakott ábrára is lehet hivatkozni (de ekkor már nem kell mindegyikre egyesével hivatkozni). Viszont ábra aláírás ekkor is kell mindegyikhez.
Esetleg egy kicsit lehet csökkenteni az ábrák méretét, és akkor lehet, hogy elfér az adott oldalon.
Hogy szerinted (vagy szerintem) mi az égő az lényegtelen. A latex tipográfiai szempontokat vesz figyelembe. Ha kíváncsi vagy arra hogy egy tipográfus szerint hogy kell kinézni egy jó műszaki kiadványnak, akkor 1980 előtti könyveket vegyél a kezedbe.
A floatflt csomagot még nem használtam.
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
No megint lenne egy kérdésem. Ugye ezeknél a könyveknél a címoldalt és a tartalomjegyzéket leszámítva vagy oldalszámok vagy fejezettartományok vannak.
A címoldal meg a tartalomjegyzék elvileg sima ügy, ott csak \thispagestyle{empty} aztán kész is, de tán még az se kell.
Na most kb. a 20. oldalig úgy kéne megadni a fancyhdr csomaggal (vagy anélkül) az oldal stílust, hogy fejléc nincs, láblécben meg alul az oldalszámok páros oldalon bal oldalon, páratlan oldalon meg jobb oldalon.
A 20. oldal után viszont csak fejléc kéne egy fejezetpont-fejezetpont struktúrában. Tehát pl. páros oldalon, ha az oldalon az 5., 6. és 7. fejezetpont van, akkor bal fent: 5-7, páratlan oldalon pedig ha az oldalon mondjuk 8., 9. és 10. fejezetpont van, akkor jobb fent: 8-10.
Ezt hogy lehet megoldani?
- A hozzászóláshoz be kell jelentkezni