🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.dtp.tex
5 messages
5 total messages Started by Tomasz Surmacz Sun, 23 Nov 1997 23:40
\nopagebreak ?
#4
Author: Tomasz Surmacz
Date: Sun, 23 Nov 1997 23:40
32 lines
1968 bytes
Po wtępnych listach niezupełnie na temat (Subject: No - NARESZCIE :)),
które i tak lepsze są od zwyczajowych 'jestem pierwszy!'  proponuję zabrać
się do rzeczy, stąd moje pytanie:


Mam taki fragmencik wyliczający parę opcji programu (LaTeX, styl article
lub book):

| \begin{itemize}
...
| \item{m2nxmit -t \emph{czas}}}
| 
|         Czas w sekundach, przez jaki artkuły mają być przetrzymywane

Pusta linia za \item{} jest po to, by opis zaczynał się w nowej linii,
a nie w tej samej co 'tytuł', zaraz za niewielkim odstępem między liniami.
Niestety, zdarza się, że taki mini-tytuł zostanie na końcu strony, a opis
opcji trafi na następną.  Wpisanie \nopagebreak w linii item nie pomaga,
bo -- jak domyślam się -- nie zezwala na zlamanie strony dokładnie w tym
miejscu, ale już nie na początku następnego akapitu, czyli przed 'Czas'.

Jak więc osiągnąć mój cel -- zrobić listę, w której jest mały odstęp
między nagłówkiem a opisem, a zarazem zabronić łamania strony między
tymi dwoma elementami?

Tomek

-- 
 _________
(_   _' __) Tomasz R. Surmacz *-* Work:(071)3202636, tsurmacz@ict,pwr,wroc,pl
  |  (__  \ http://www.ict.pwr.wroc.pl/~tsurmacz/ *--* Home: ts @wroc,apk,net
  |__(____/ For PGP key finger tsurmacz@cyber.ict,pwr,wroc.pl *-* irc: TomekS
Re: \nopagebreak ?
#5
Author: Wojciech Myszka
Date: Mon, 24 Nov 1997 20:25
72 lines
3448 bytes
Tomasz Surmacz <ts@blurp.bnafh.bofh.org.pl> wrote in article
<65aesh$238$1@papaja.wroc.apk.net>...
  [... przechodząc bezpośrednio do meritum :-)]
: Pusta linia za \item{} jest po to, by opis zaczynał 
: się w nowej linii, a nie w tej samej co 'tytuł', 
: zaraz za niewielkim odstępem między liniami.
: Niestety, zdarza się, że taki mini-tytuł zostanie 
: na końcu strony, a opis opcji trafi na następną.
  [...]

  Być może powiem wielkie bluźnierstwo, ale takiego 
  problemu nie da się lekko, łatwo i przyjemnie 
  rozwiązać.

  W każdym takim przypadku należy złożyć całość 
  tekstu, podjąć decyzję o wymiarach strony i innych
  takich a następnie zabrać się za walkę ze szczegółami.

  LaTeX ma bardzo rozbudowane (i dosyć niezrozumiałe :-)
  zasady łamania ekstu na strony. Robione jest to metodą 
  "kija i marchewki". Zawsze można przedefiniować kary 
  i nagrody, ale nie zawsze kończy się to dobrze.

  Do wykonywania kosmetycznych zmian służą (a właściwie 
  służyły) polecenia:
  \samepage
  \nopagebreak
  \pagebreak
  Było tak w LaTeX2.09. Dokumentacja do LaTeX2e wspomina, 
  że już \samepage nie ma, ale jest.

  Działanie \samepage jest takie (cytuje za Kopką po 
  angielsku, żeby nie narozrabiać kiepskim tłumaczeniem):
  "The declaration \samepage limits page breaks to 
  occurring only between paragraphs, before or after
  displayed formulas or text, before or after a section 
  heading, or beween \item (except the first) in a list 
  environment. If a page break must occur at some other 
  point in the text, then the command \pagebreak is used
  to allow it explicitly." (\somepage działa do końca 
  bieżącego środowiska.)

  Tak więc nawet po ograniczeniu algorymu łamania na strony
  spokojnie można łamać je między ustępami ekstu (paragraph).

  Jedna pusta linia to właśnie początek ustępu...

  Co robić (znowu za Kopką): 
  + używać \somepage w stosunku do wystarczająco dużego 
    fragmentu tekstu ograniczonego nawiasami klamrowymi 
    {...}
  + dawać \nopagebreak po pustej linii aby zabronić 
    zmianę strony po poprzednim ustępie tekstu
  + wstawiać \pagebreak (być może z dodatkowym parametrem
    w nawiasach kwadratowych) tam, gdzie zmiana strony jest 
    wymagana.

  W końcu przynosi to rezultaty, ale jakakolwiek 
  poważniejsza (a czasami nawet infinizytemalna)
  zmiana przed fragmentem tekstu, który sprawia kłopoty 
  powoduje katastrofę.

  W LaTeX2e wymyślono inny mechanizm: zamiast łamać stronę
  w złym miejscu może trochę ja przedłużyć :-) 

  I w tym celu udostępniono polecenie \enlargethispage{size}
  na przykład \enlargethispage{\baselineskip} albo 
  \enlargethispage{-\baselineskip}.

  Powodzenia

  Wojtek
Re: \nopagebreak ?
#6
Author: Tomasz Surmacz
Date: Tue, 25 Nov 1997 01:22
95 lines
4533 bytes
Wojciech Myszka <W.Myszka@immt.pwr.wroc.pl> wrote:
: Tomasz Surmacz <ts@blurp.bnafh.bofh.org.pl> wrote in article
:   [... przechodząc bezpośrednio do meritum :-)]
: : Pusta linia za \item{} jest po to, by opis zaczynał 
: : się w nowej linii, a nie w tej samej co 'tytuł', 
: : zaraz za niewielkim odstępem między liniami.
: : Niestety, zdarza się, że taki mini-tytuł zostanie 
: : na końcu strony, a opis opcji trafi na następną.
...

:   W każdym takim przypadku należy złożyć całość 
:   tekstu, podjąć decyzję o wymiarach strony i innych
:   takich a następnie zabrać się za walkę ze szczegółami.

Tego bym chciał uniknąć, bo jednak zdarza się czasem dopisać np. jakiś
fragment wcześniej, a nie moją sprawą powinno być pilnowanie potem,
by nagłówki trzymały się opisów, lecz (La)TeXa :-)

:   Do wykonywania kosmetycznych zmian służą (a właściwie 
:   służyły) polecenia:
:   \samepage
:   \nopagebreak
:   \pagebreak
:   Było tak w LaTeX2.09. Dokumentacja do LaTeX2e wspomina, 
:   że już \samepage nie ma, ale jest.

Ok, spróbowałem tak:

| \item{m2nxmit -C \emph{plik}}\nopagebreak
| 
| \nopagebreak
|         Wskazanie innego niż domyślny pliku konfiguracyjnego.  Domyślnie
|         jest to \file{/usr/local/news/lib/m2nxmit.ctl}, chyba, że
| ...

i..  zadziałało.  Tzn. Wcześniej laTeX łamał stronę przed 'Wkazanie',
a teraz wciągnął tę linię z następnej strony.  Lepiej być może by było
przenieść nagłówek na następną, ale czepialski nie będę :-)

Tylko że nie jestem pewien, czy to tak musi zadziałać w ogólnym przypadku,
czy niekoniecznie.  Ale chyba powinno, bo skoro \nopagebreak tyczy się
tego, za czym występuje, to tutaj występuje za tytułem i za odstępem,
mówiąc, że w żadnym z tych miejsc złamać tekstu nie można.  Pewnie jakbym
jeszcze zamknął jakiś fragment opisu w \samepage{} to by przeniósł
całość na następną stronę....  Bingo...  przetestowałem -- przeniósł...
prawie dobrze...  ale niezupełnie...  tzn. przenieść przeniósł, ale efekt
uboczny jest taki, że to działa nie tylko na zaznaczonym tekście, ale do
końca środowiska itemize, więc niestety nie łamie w połowie następnych
akapitów, a nawet co gorsza -- zwiększa mu to tendencję do łamania za
nagłówkiem zamiast przed.

Ale ogólnie da się i to w miarę prosto.  W takim razie następne pytanie... ;-)

Czy da się prościej :-)

Tzn. czy nikt do tej pory nie wymyślił otoczenia, które by działało
podobnie jak itemize/małe rozdziały.  Czyli:

\begin{środowisko}

\item{nagłówek}
	Tekst...

\item{nagłówek}
	Tekst...

\end{środowisko}

zapewniając jednak:

	-  jakiś (definiowany?) odstęp między nagłówkiem a tekstem, 
	-  gwarancję niezłamania strony między nagłówkiem a tekstem,
	-  sensowny sposób łamania akapitów -- przeniesienie na nową
	   stronę, gdyby się miało okazać, że zostanie nagłówek + jedna
	   linia, dociągnięcie jeszcze jednej linii, gdyby standardowo
	   mieściła się akurat tylko linia nagłówka+1 linia.

:   W końcu przynosi to rezultaty, ale jakakolwiek 
:   poważniejsza (a czasami nawet infinizytemalna)

Stanowczo protestuję przeciwko używaniu takiego słownictwa!  Tę grupę
mogą czytać dzieci, a jak tu przypadkiem zajrzą, to się przestraszą i
nie będą mogły w nocy zasnąć!!!

;-)

Tomek

[PS.  Co to znaczy?  Połączenie infinitum z czymś ekstremalnym? ;-) ]

--
 _________
(_   _' __) Tomasz R. Surmacz,  Work: (071)3202636,  tsurmacz@ict.pwr.wroc.pl
  |  (__  \ http://www.ict.pwr.wroc.pl/~tsurmacz/ *--* Home: ts@ wroc,apk,net
  |__(____/ M$oft:Where do you want to go today? Linux:Been there, done that.
Re: \nopagebreak ?
#7
Author: Wojciech Myszka
Date: Tue, 25 Nov 1997 07:32
14 lines
1359 bytes
On 25 Nov 1997, Tomasz Surmacz wrote:

> :   W końcu przynosi to rezultaty, ale jakakolwiek 
> :   poważniejsza (a czasami nawet infinizytemalna)
> 
> Stanowczo protestuję przeciwko używaniu takiego słownictwa!  Tę grupę
> mogą czytać dzieci, a jak tu przypadkiem zajrzą, to się przestraszą i
> nie będą mogły w nocy zasnąć!!!
> [PS.  Co to znaczy?  Połączenie infinitum z czymś ekstremalnym? ;-) ]
  ---
  Nieskończenia mała o ile dobrze pamiętam zajęcia z analizy
  matematycznej ponad (aż wstyd się przyznać)...

  W
Re: \nopagebreak ?
#8
Author: Qrczak
Date: Sun, 30 Nov 1997 14:18
20 lines
1633 bytes
On Tue, 25 Nov 1997, Wojciech Myszka wrote:

> > :   W końcu przynosi to rezultaty, ale jakakolwiek 
> > :   poważniejsza (a czasami nawet infinizytemalna)
> > 
> > Stanowczo protestuję przeciwko używaniu takiego słownictwa!  Tę grupę
> > mogą czytać dzieci, a jak tu przypadkiem zajrzą, to się przestraszą i
> > nie będą mogły w nocy zasnąć!!!
> > [PS.  Co to znaczy?  Połączenie infinitum z czymś ekstremalnym? ;-) ]
>   ---
>   Nieskończenia mała o ile dobrze pamiętam zajęcia z analizy
>   matematycznej ponad (aż wstyd się przyznać)...

Ja pamiętam "infinitezymalna", ale mogę źle pamiętać.

--
                                QRCZAK
    __("<             Marcin Kowalczyk
    \__/             qrczak@knm.org.pl
     ^^      http://kki.net.pl/qrczak/
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads