Portál AbcLinuxu, 5. května 2025 09:18

Dotaz: TeX -- zarovnání odstavce

15.6.2018 09:13 jsk | skóre: 10
TeX -- zarovnání odstavce
Přečteno: 378×
Odpovědět | Admin
Zdravím ve spolek,

co mne trápí:
  1. zarovnávám odstavec vpravo na praporek \noindent\leftskip = 0pt plus1fill, ale na praporek se mi zarovná i veškerý další text mimo poznámek pod čaou a nejsem to sto ukončit
  2. nejde mi přidat vertikální mezera na začátku stránky resp. stránka obsahuje jediné slovo, a to by mělo být cca o 7 cm níže
Začínám používat plainTeX a OPMAC pana Olšáka, tak mne nekamenujte, díky

Předem moc děkuji za pomoc. Pepa

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.6.2018 11:11 ttt
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Odpovědět | | Sbalit | Link | Blokovat | Admin
1. Podobně jako v kódu jde platnost "proměnné" omezit blokem ze složených závorek:
{
\noindent\leftskip = 0pt plus1fill
Lores ipsum ...
}
Případně by šlo uložit hodnotu leftskip a na konci ji odstance ji nastavit na původní.

2. TeX zahazuje mezery (resp. vše discardable) ze začátku odstavce nebo řádku. Dej na začátek stránky něco non-discardable, třeba vbox nulové výšky. Neslibuju, že to je nejelegantnější řešení.
15.6.2018 11:46 jsk | skóre: 10
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Díky,
  1. nicméně to nefunguje, to jsem zkoušel jako první variantu, takže mám chybu jinde :-(
  2. zatím jsem to obešel vložením odstavce s parametrem \White, ale je to jen náhražka.
Pepa
15.6.2018 12:06 ttt
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Toto mi vykreslí první odstavec odsazený bez odsazeného prvního slova, další bez odsazení s odsazeným prvním slovem:
{
\noindent
\leftskip 30truemm plus 1fill
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tristique
metus eu elit mattis, vel tincidunt purus gravida. Pellentesque molestie
vehicula scelerisque. Cras ac odio vel urna blandit euismod. Donec sodales
ornare gravida. Curabitur justo est, bibendum commodo nisi sed, hendrerit
condimentum ex.

}

Praesent sit amet sollicitudin purus. Maecenas id metus sit amet metus posuere
cursus ac et dui. Nam elementum porttitor nisi, ac elementum velit eleifend id.
Praesent ultricies accumsan nisl, vitae consequat mi cursus in. Nullam at velit
mollis justo consequat consequat. Maecenas sit amet tortor a purus iaculis
egestas. Suspendisse ac felis at tortor ullamcorper sollicitudin a vitae nunc.

\end
Chová se to trochu podivně, něco mi uniká zřejmě ohledně chování leftskip. Prázdný řádek před uzavírací závorkou je nutný a nenapadá mě teď proč.
15.6.2018 12:23 jsk | skóre: 10
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Skvělé, moc děkuji, ano, potřebuje to jeden prázdný řádek. Takže i když použiju definici prpavého praporku \pp

\def\pp{\noindent\leftskip = 0pt plus1fill}

musím přidat prázdný řádek a složenou závork, pže do definice to přidat neumím.

Moc děkuji, co já na tom strávil času...

Zdraví Pepa
15.6.2018 12:40 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Nemusí to být prázdný řádek, můžete použít \par. IIRC se použije hodnota platná na konci odstavce, takže ten odstavec musíte ukončit ještě uvnitř "group". Stejně tak je potřeba, aby předcházející odstavec skončil ještě před přenastavením hodnoty.
15.6.2018 12:36 jsk | skóre: 10
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Mám ještě jednu prosbu, některé odstavce potřebuji zúžit a vycentrovat, v textu jsou delší citace, můžete mne nasměrovat, moc se mi to nedaří :-( , děkuji.

Pepa
15.6.2018 12:48 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce

Na to by mělo stačit nastavit \leftskip i \rightskip např. na 2em. Případně něco jako

\def\blockquote#1{%
  \vskip 1ex
  \hbox to \hsize{%
    \hss
    \vbox{%
      \advance\hsize by -4em%
      #1%
    }%
    \hss
  }%
  \vskip 1ex
}

ale pak by nešlo uvnitř citace udělat zlom stránky.

17.6.2018 21:07 jsk | skóre: 10
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Díky moc,

nakonec jsem to včera "vyřešil" takto leftskip = 1.9 cm \hsize = 13.65 cm, protože jsem \rightskip dával asi na špatné místo v kódu. Páč mi to nedalo, koumal jsem dál a zjistil, že mi funguje \def\cit{\leftskip = 1.9 cm\rightskip = 1.9 cm}. Ale pořád nevím, kde dělám chybu když to píšu přímo k odstavci. Také mi nejde dostat do definice zrušení zarážky, prostě \noindent musím dát na začátek odstavce, a to určitě není nejelegantnější.

Děkuje a zdraví Pepa
15.6.2018 12:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Ad 2: osobně pro ten účel většinou používám "\hrule height 0pt" (pokud byste to chtěl jako univerzální makro, přidejte ještě \relax).
18.6.2018 07:40 jsk | skóre: 10
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Děkuji,

prima trik, jen mi nefunguje před \chap, takže asi bude potřeba upravit si definici \chap nebo si vytvořit \chap2. Jde v TeXu říci "vytvoř nový styl, stajný jako již existující a přidej/uprav některé vlastnosti" resp. udělat to tak?

Pepa
18.6.2018 08:21 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
V TeXu jako takovém žádné styly nejsou. Máte prostě prostě jen makro \input, které se chová tak, jako byste příslušný soubor vložil místo toho řádku. Jestli si pak přidáte další makra nebo předefinujete některá z těch, která se nadefinovala v tom souboru, to už je jen na vás.
18.6.2018 08:24 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Pro úplnost: makro \chap2 si nevytvoříte, protože "2" není "písmeno" (přesněji kategorie 11).
21.6.2018 11:47 jsk | skóre: 10
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Zdravím,

tak jsem nakonec našel univerzálnější řešení, a to \vglue 3 in viz str. 42 (49). Každopádně upřímně děkuji za užitečné rady a tipy.

S přáním pěkných letních dnů

Pepa
Josef Kufner avatar 15.6.2018 12:59 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vím, že to je trochu mimo téma, ale stejně si to neodpustím: Koukni na LyX (je běžně k dispozici v distribucích). Na takové zarovnávání tam je čudlík a ušetří ti to spoustu času i na mnoha dalších drobnostech.
Hello world ! Segmentation fault (core dumped)
17.6.2018 10:44 jsk | skóre: 10
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Rozumím a vím velmi, dobrý nástroj, ale rád bych se vyznal v kódu a k tomu mi pro začátek TeX přijde vhodnější.

Pepa
Josef Kufner avatar 17.6.2018 12:10 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: TeX -- zarovnání odstavce
Viz menu "Prohlížet" → "Zdrojový text výstupu".
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.