🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.dtp.tex
17 messages
17 total messages Started by Maciej Pilichowski Thu, 14 Jan 2010 20:12
Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16623
Author: Maciej Pilichowski
Date: Thu, 14 Jan 2010 20:12
20 lines
1686 bytes
Hej,

  Pisze prace, ktora w sensie kodu texa troche mi sie rozrosla i chcialbym 
ja podzielic na rozdzialy, w ten sposob, aby kazdy rozdzial wyladowal w 
osobnym pliku.

  Clue problemu jest w tym, jak zrobic to tak, aby kazdy plik byl 
autonomiczny? Tj. jesli dam builda i view calosci, to zobacze calosc, ale 
chcialbym tez moc zbuildowac osobno rozdzial i obejrzec tylko go. 

  Rozwiazanie trywialne -- z N rozdzialow wygenerowac N plikow z zawartoscia 
rozdzialow oraz N plikow "naglowkowych" (preambula, definicje + input danego 
rozdzialu). Chodzi mi jednak o nie generowanie tych dodatkowych plikow -- 
aby rozdzial to byl naprawde 1 plik. Jakies trickowe sprawdzenie, czy jestem 
w srodku dokumentu (plik wlaczony z zewnatrz) czy nie (buildowac calosc 
rozdzialu razem z preambula), tylko jak to zrobic?

  Z gory pieknie dziekuje za pomoc.

milego dnia, hej
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16624
Author: Jarosław Sokołowski
Date: Thu, 14 Jan 2010 21:02
26 lines
2202 bytes
Pan Maciej Pilichowski pisze prace, ktora w sensie kodu texa troche mu
sie rozrosla i chcialby ja podzielic na rozdzialy, w ten sposob, aby
kazdy rozdzial wyladowal w osobnym pliku:

>   Clue problemu jest w tym, jak zrobic to tak, aby kazdy plik byl 
> autonomiczny? Tj. jesli dam builda i view calosci, to zobacze calosc,
> ale chcialbym tez moc zbuildowac osobno rozdzial i obejrzec tylko go. 
>
>   Rozwiazanie trywialne -- z N rozdzialow wygenerowac N plikow z zawartoscia 
> rozdzialow oraz N plikow "naglowkowych" (preambula, definicje + input danego 
> rozdzialu). Chodzi mi jednak o nie generowanie tych dodatkowych plikow -- 
> aby rozdzial to byl naprawde 1 plik. Jakies trickowe sprawdzenie, czy jestem 
> w srodku dokumentu (plik wlaczony z zewnatrz) czy nie (buildowac calosc 
> rozdzialu razem z preambula), tylko jak to zrobic?

W TeXu (w plainie), czy w LaTeXu? Bo to różnica. To trickowe rozwiązanie
może polegać na przedefiniowaniu polecenia "\input". Każdy rozdział
zaczyna się od "\input format", po czym następuje jego treść. Plik
"format.tex" zawierający ustawienia i makra, przedefiniowuje na końcu
"\input" mniej więcej tak "\def\input #1 {}", a chwilę wcześniej podstawia
\let\Input\input. Dalej oczywiście "\endinput" i po kolei wywołania
"\Input" dla kolejnych rozdziałów. Tak to wygląda w plainie. W LaTeXu
też pewnie można podobnie.

-- 
Jarek
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16625
Author: Pawel Baranowski
Date: Fri, 15 Jan 2010 06:50
15 lines
1249 bytes
Jarosław Sokołowski pisze:
> Pan Maciej Pilichowski pisze prace, ktora w sensie kodu texa troche mu
> sie rozrosla i chcialby ja podzielic na rozdzialy, w ten sposob, aby
> kazdy rozdzial wyladowal w osobnym pliku:
> 
ooo! a jak to robisz? (zakładam, że automatycznie? ale....?)

sorry za NTG+OT ale spodobało mi się!

-- 
pozdrowienia

http://free.of.pl/e/ekonometria

Zapraszam na moja strone
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16630
Author: Maciej Pilichowski
Date: Fri, 15 Jan 2010 07:04
22 lines
2231 bytes
On Thu, 14 Jan 2010 21:02:26 +0000 (UTC), Jarosław Sokołowski
<jaros@lasek.waw.pl> wrote:

>W TeXu (w plainie), czy w LaTeXu? Bo to różnica. 

Przepraszam, mozna powiedziec, ze jestem weekend-user. To latex.

>To trickowe rozwi±zanie
>może polegać na przedefiniowaniu polecenia "\input". Każdy rozdział
>zaczyna się od "\input format", po czym następuje jego tre¶ć. Plik
>"format.tex" zawieraj±cy ustawienia i makra, przedefiniowuje na końcu
>"\input" mniej więcej tak "\def\input #1 {}", a chwilę wcze¶niej podstawia
>\let\Input\input. Dalej oczywi¶cie "\endinput" i po kolei wywołania
>"\Input" dla kolejnych rozdziałów. Tak to wygl±da w plainie. 

Chociaz rozumiem tylko troche ;-) nie widze zroznicowania miedzy
preambula a trescia rozdzialu. Tresc rozdzialu powinna byc czytana
zawsze, natomiast preambula (i inne rzeczy z "naglowka") powinny byc
martwe jesli rozdzial jest buildowany jako cala praca, a aktywizowac
sie, jesli builduje indywidualny rozdzial.

milego dnia, hej
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16626
Author: Maciej Pilichowski
Date: Fri, 15 Jan 2010 07:05
17 lines
1857 bytes
On Fri, 15 Jan 2010 07:50:35 +0100, Pawel Baranowski
<baranowski_USUNTO_@list.pl> wrote:

>> Pan Maciej Pilichowski pisze prace, ktora w sensie kodu texa troche mu
>> sie rozrosla i chcialby ja podzielic na rozdzialy, w ten sposob, aby
>> kazdy rozdzial wyladowal w osobnym pliku:
>> 
>ooo! a jak to robisz? (zakładam, że automatycznie? ale....?)

Hmm, nie wiem, czy po bozemu, po prostu tworze kolejny plik, np.
wstep.tex, pisze tam wstep, a w glownej pracy -- praca.tex, wpisuje
\input{wstep}.

Problem w tym, ze przy takim podejsciu nie moge buildowac odrebnie
rozdzialow.

milego dnia, hej
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16627
Author: Pawel Baranowski
Date: Fri, 15 Jan 2010 07:07
24 lines
1774 bytes
Maciej Pilichowski pisze:
> On Fri, 15 Jan 2010 07:50:35 +0100, Pawel Baranowski
> <baranowski_USUNTO_@list.pl> wrote:
> 
>>> Pan Maciej Pilichowski pisze prace, ktora w sensie kodu texa troche mu
>>> sie rozrosla i chcialby ja podzielic na rozdzialy, w ten sposob, aby
>>> kazdy rozdzial wyladowal w osobnym pliku:
>>>
>> ooo! a jak to robisz? (zakładam, że automatycznie? ale....?)
> 
> Hmm, nie wiem, czy po bozemu, po prostu tworze kolejny plik, np.
> wstep.tex, pisze tam wstep, a w glownej pracy -- praca.tex, wpisuje
> \input{wstep}.
> 
Hmmm, dzięki, ale nie do końca mi o to chodziło. Chodziło o ustawienie 
czytnika newsów, tak żeby robił taki nagłówek wprowadzający. Podejrzewam, 
że automatycznie ale problemów jest tyle (choćby gramatyka)...

-- 
pozdrowienia

http://free.of.pl/e/ekonometria

Zapraszam na moja strone
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16628
Author: Łukasz Zaryczny
Date: Fri, 15 Jan 2010 08:11
2 lines
1512 bytes
Jeżeli robisz to pod linuksem to według mnie najlepiej załatwić do
skryptem bashowym.
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16629
Author: Paweł Wlaź
Date: Fri, 15 Jan 2010 08:21
27 lines
1921 bytes

On Fri, 15 Jan 2010, Maciej Pilichowski wrote:

> On Fri, 15 Jan 2010 07:50:35 +0100, Pawel Baranowski
> <baranowski_USUNTO_@list.pl> wrote:
>
>>> Pan Maciej Pilichowski pisze prace, ktora w sensie kodu texa troche mu
>>> sie rozrosla i chcialby ja podzielic na rozdzialy, w ten sposob, aby
>>> kazdy rozdzial wyladowal w osobnym pliku:
>>>
>> ooo! a jak to robisz? (zakładam, że automatycznie? ale....?)
>
> Hmm, nie wiem, czy po bozemu, po prostu tworze kolejny plik, np.
> wstep.tex, pisze tam wstep, a w glownej pracy -- praca.tex, wpisuje
> \input{wstep}.
>
> Problem w tym, ze przy takim podejsciu nie moge buildowac odrebnie
> rozdzialow.
>

Mozesz na poczatku takiego malego pliku porownywac nazwe \jobname z 
nazwa tego glownego pliku ktory inputuje inne. Jezeli jest inna, to 
oznacza, ze budujemy "odrebnie" rozdzial i trzeba wtedy wlaczyc to co 
jest potrzebne do autonomicznej budowy rozdzialu.

PW
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16637
Author: Wojtek Myszka
Date: Fri, 15 Jan 2010 08:28
31 lines
2498 bytes
On 14 Sty, 21:12, Maciej Pilichowski <ba...@SKASUJTOpoczta.FM> wrote:

> Pisze prace, ktora w sensie kodu texa troche mi sie rozrosla i chcialbym
> ja podzielic na rozdzialy, w ten sposob, aby kazdy rozdzial wyladowal w
> osobnym pliku.
>
> Clue problemu jest w tym, jak zrobic to tak, aby kazdy plik byl
> autonomiczny? Tj. jesli dam builda i view calosci, to zobacze calosc, ale
> chcialbym tez moc zbuildowac osobno rozdzial i obejrzec tylko go.

Rozwiązanie zaproponowane przez Pana Jarka, jest jak zwykle
pobudzające
do myślenia.

Autonomiczność rozdziałów można też zrealizować nieco inaczej:

W pliku głównym umieszczamy deklarację klasy i wszystkie polecenia
obowiązujące w całej pracy (użyte pakiety, własne definicje, rozmiary
papieru, i ta dalej).

Umieszczamy tam też polecenie \includeonly{} zawierające listę plików
(rozdziałów), które mają być przetwarzane.

Same rozdziały włączamy za pomocą polecenia \include{} (a nie input).

Modyfikujemy zatem tylko plik główny wskazując rozdziały, które chcemy
przetwarzać i zawsze przetwarzamy plik główny.

Oczywiście, jak ktoś się uprze polecenie \includeonly można podać
w linii polecenia :-)
Wojtek
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16631
Author: Jarosław Sokołowski
Date: Fri, 15 Jan 2010 13:18
41 lines
2691 bytes
Pan Maciej Pilichowski napisał:

>> W TeXu (w plainie), czy w LaTeXu? Bo to różnica. 
>
> Przepraszam, mozna powiedziec, ze jestem weekend-user. To latex.

No to świetnie się składa, dzisiaj piątek, może jutro moja pisanina
na coś się przyda.

> Chociaz rozumiem tylko troche ;-) nie widze zroznicowania miedzy
> preambula a trescia rozdzialu. Tresc rozdzialu powinna byc czytana
> zawsze, natomiast preambula (i inne rzeczy z "naglowka") powinny byc
> martwe jesli rozdzial jest buildowany jako cala praca, a aktywizowac
> sie, jesli builduje indywidualny rozdzial.

No to może jeszcze raz, ograniczając triki do minimu. Ja sprawę
stawiam (jak zwykle) na głowie. Plik główny z preambułą i wczytywaniem
kolejnych rozdziałów z osobnych plików, to rzecz powszednia. Ale da się
też odwrotnie -- do pliku z treścią można wczytywać z zewnętrznego pliku
preambułę. Kompletny (sprawdzony) przepis wygląda tak:

1. W pliku głównym scalającym wszystkie rozdziały używamy poleceń
\include, a nie \input. Dodajemy do niego dwie puste definicje
"\def\enddoc{} \def\input#1{}".

2. Tworzymy kopię tego pliku pod nazwą "pre.tex", usuwamy puste definicje,
ucinamy po "\begin{document}" i dopisujemy "\let\enddoc\enddocument".

3. Na początku każdego pliku rozdziału dodajemy "\input{pre}", a na
końcu "\enddoc". Pliki rozdziałów oczywiście zawierają samą treść,
bez preambuły.

Teraz można procesować zarówno główny plik z preambułą jak i poszczególne
rozdziały. Uzyskuje się przy tym odrębne pliki DVI o adekwatnych nazwach.

Zazwyczaj do częściowego procesowania używa się mechanizmu "\includeonly",
ale powyższe rozwiązanie może być dla kogoś z jakichś powodów lepsze.
To rzecz gustu, a z tym się nie dyskutuje.

-- 
Jarek
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16638
Author: Maciej Pilichowski
Date: Fri, 15 Jan 2010 14:14
18 lines
1874 bytes
On Fri, 15 Jan 2010 00:28:08 -0800 (PST), Wojtek Myszka
<wojciech.myszka@gmail.com> wrote:

>W pliku głównym umieszczamy deklarację klasy i wszystkie polecenia
>obowi±zuj±ce w całej pracy (użyte pakiety, własne definicje, rozmiary
>papieru, i ta dalej).
>
>Umieszczamy tam też polecenie \includeonly{} zawieraj±ce listę plików
>(rozdziałów), które maj± być przetwarzane.
>
>Same rozdziały wł±czamy za pomoc± polecenia \include{} (a nie input).

Dziekuje, jedno pytanie na wszelki wypadek -- jak dobrze rozumiem,
nalezy wtedy dzialac tak, ze jesli chce obejrzec rozdzial nr 1 (i
tylko ten) to mam zakomentowac wszystkie includy rozdzialow nie-1 i
zbuildowac plik calosciowy?

milego dnia, hej
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16632
Author: Maciej Pilichowski
Date: Fri, 15 Jan 2010 14:17
19 lines
1910 bytes
On Fri, 15 Jan 2010 13:18:00 +0000 (UTC), Jarosław Sokołowski
<jaros@lasek.waw.pl> wrote:

>> Przepraszam, mozna powiedziec, ze jestem weekend-user. To latex.
>
>No to ¶wietnie się składa, dzisiaj pi±tek, może jutro moja pisanina
>na co¶ się przyda.

:-)))

>Teraz można procesować zarówno główny plik z preambuł± jak i poszczególne
>rozdziały. Uzyskuje się przy tym odrębne pliki DVI o adekwatnych nazwach.

Piekne dzieki, nawet kojarze co jest grane (ale sam niestety bym tego
nie wymyslil). Dzis wieczorkiem wyprobuje w praktyce.

Jeszcze raz dziekuje.

milego dnia, hej
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16639
Author: Jarosław Sokołowski
Date: Fri, 15 Jan 2010 15:03
21 lines
1803 bytes
Pan Maciej Pilichowski napisał:

>> Umieszczamy tam też polecenie \includeonly{} zawieraj?ce listę plików
>> (rozdziałów), które maj? być przetwarzane.
>>
>> Same rozdziały wł?czamy za pomoc? polecenia \include{} (a nie input).
>
> Dziekuje, jedno pytanie na wszelki wypadek -- jak dobrze rozumiem,
> nalezy wtedy dzialac tak, ze jesli chce obejrzec rozdzial nr 1 (i
> tylko ten) to mam zakomentowac wszystkie includy rozdzialow nie-1 i
> zbuildowac plik calosciowy?

Nie, ten mechanizm wymyśłono właśnie po to, by nie trzeba było robić
takich kombinacji. Polecenia \include{} umieszcza się tam gdzie są
potrzebne i więcej się ich nie rusza. A na okoliczność przetwarzania
częściowego dodaje się na początku polecenie \includeonly{}, które
w klamrach ma podaną listę plików oddzieloną przecinkami. *Tylko te*
pliki będą dołączone, pozostałe zostana zignorowane.

-- 
Jarek
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16633
Author: Maciej Pilichowski
Date: Fri, 15 Jan 2010 21:14
20 lines
1943 bytes
Jarosław Sokołowski wrote:

> 1. W pliku głównym scalającym wszystkie rozdziały używamy poleceń
> \include, a nie \input. Dodajemy do niego dwie puste definicje
> "\def\enddoc{} \def\input#1{}".

Zmodyfikowalem sobie to dodatkowo wlaczajac do tego pliku pre.tex tez, zeby 
preambula i inne rozbiegowe rzeczy trzymac w jednym miejscu.

> Zazwyczaj do częściowego procesowania używa się mechanizmu "\includeonly",
> ale powyższe rozwiązanie może być dla kogoś z jakichś powodów lepsze.

Mi sie wydaje, ze jest lepsze do moich potrzeb, bo rozdzial X builduje z 
poziomu tego wlasnie rozdzialu. A z includeonly pisalbym tresc w rozdziale 
X, ale musialbym sie przelaczyc do drugiego pliku (calosciowego) 
dodajac/zmieniajac odpowiednio includeonly. I to przy kazdym buildzie.

Jeszcze raz bardzo dziekuje za pomoc!

milego wieczoru/weekendu zycze :-)
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16634
Author: Wojciech Myszka
Date: Sat, 16 Jan 2010 14:01
13 lines
1415 bytes
Dnia 2010-01-15, pią o godzinie 22:14 +0100, Maciej Pilichowski pisze:
[...]
> Mi sie wydaje, ze jest lepsze do moich potrzeb, bo rozdzial X builduje
> z 
> poziomu tego wlasnie rozdzialu. [...]

To może być istotny argument. Rozwiązanie z include(only) ma jeszcze
taką zaletę, że dzięki wczytywaniu wszystkich plików aux zachowuje
numerację rozdziałów i stron. Czasami może to być wygodne.

Wojtek
-- 
---(___C'>
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16635
Author: Jarosław Sokołowski
Date: Sat, 16 Jan 2010 14:22
18 lines
1792 bytes
Pan Wojciech Myszka napisał:

>> Mi sie wydaje, ze jest lepsze do moich potrzeb, bo rozdzial X
>> builduje z poziomu tego wlasnie rozdzialu. [...]
>
> To może być istotny argument. Rozwiązanie z include(only) ma jeszcze
> taką zaletę, że dzięki wczytywaniu wszystkich plików aux zachowuje
> numerację rozdziałów i stron. Czasami może to być wygodne.

Czasem nawet nie tylko wygorne, ale i niezbędne do poprawnego składu.
Jeśli w odwołaniach numery dwucyfrowe zostaną zastąpione jednocyfrowymi,
to akapity moga połamać się inaczej. Chociaż przy wstępnej redakcji
nie ma to zwykle wiekliego znaczenia. Z drugiej strony, można metodę
osobnego procesowania rozdziałów udoskonalać, czytać cały aux, albo
odwrotnie -- składać go z kawałków. Świat jest różnorodny.

-- 
Jarek
Re: Jak podzielic duzy tekst na _autonomiczne_ male bloki?
#16636
Author: Jarosław Sokołowski
Date: Sat, 16 Jan 2010 14:23
18 lines
1867 bytes
Pan Wojciech Myszka napisał:

>> Mi sie wydaje, ze jest lepsze do moich potrzeb, bo rozdzial X
>> builduje z poziomu tego wlasnie rozdzialu. [...]
>
> To może być istotny argument. Rozwiązanie z include(only) ma jeszcze
> taką zaletę, że dzięki wczytywaniu wszystkich plików aux zachowuje
> numerację rozdziałów i stron. Czasami może to być wygodne.

Czasem nawet nie tylko wygodne, ale i niezbędne do poprawnego składu.
Jeśli w odwołaniach numery dwucyfrowe zostaną zastąpione jednocyfrowymi,
to akapity moga połamać się inaczej. Chociaż przy wstępnej redakcji
nie ma to zwykle wiekliego znaczenia. Z drugiej strony, można metodę
osobnego procesowania rozdziałów udoskonalać, czytać cały aux, albo
odwrotnie -- składać go z kawałków. Świat jest różnorodny.

-- 
Jarek
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