Close

Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 10 z 11

Wątek: Skrypty InDyka

  1. #1

    Domyślnie Skrypty InDyka

    Pochwalony!

    Post jest skierowany do DTPowców posługujących się InDesignem w wersji w miarę nie antycznej i mających świadomość, że skrypty ułatwiają życie...

    Opiszę problem...

    Jak każdy, kto zajmuje się dłuższymi publikacjami których sam nie tworzy tylko dostaje je z wydawnictwa, mam swojego 'killera sekretarek' - zestaw Find/Change querries, które poprawiają większość, jeśli nie wszystkie błędy spotykane w textach pisanych niechlujnie: poprawiają interpunkcję, inteligentnie usuwają white spaces, poprawiają miękkie entery, cudzysłowy, załatwiają wiszące spójniki, skróty, indeksy górne i dolne, i tak dalej, i tak dalej... Spokojnie dostając text przepuszczam go przez tego 'killera sekretarek' i dostaję text, który można w końcu zacząć składać. Mój zestaw, używający intensywnie GREPa ma 9 kroków, tzn. 9 Find/Change querries.

    Ale lepsze jest wrogiem dobrego jak powiadają... Dostałem do roboty nie parę plików, które składają się na książkę, tylko serię chyba z osiemdziesięciu maluteńkich pliczków, które w dodatku napisane są wręcz tragicznie, a ja teraz każdy z nich muszę poprawiać. Czyli każdy zaimportowany tekścik muszę przepuścić przez te 9 kroków Find/Change. Nudne...

    Oczywiście można to zrobić tak, że położy się je wszystkie w InDyku na stronie, potem połączy ramki w jeden bardzo długi text i poprawi za jednym pociągnięciem - można i tak, i wtedy zamiast 80 x 9 kroków mam 1 x 9 kroków - co robi dużą różnicę. Ale zainteresowałem się skryptem FindChangeByList - który bierze listę tych 9 kroków i za jednym pociągnięciem robi od razu te wszystkie kroki jeden po drugim. Czyli raz puszczasz skrypt, a on po prostu wykonuje automatycznie tyle kroków Find/Change, ile mu się wpisze.

    W teorii jest pięknie - wszystko działa. Problemem jest to, że działa za szybko. Tak jest, ZA szybko. Na przykład na jakimś etapie, powiedzmy w trzecim kroku ma usunać wszystkie podwójne, lub wielokrotne spacje. I usuwa podwójne, ale jeśli spacji jest więcej, bywa że jakieś mu zostają - np. było 5 spacji, po skrypcie zostają dwie. Tak jakby skrypt nie wykonawszy do końca swojego kroku przechodził zbyt szybko do następnego kroku.

    Macie na ten cały problem jakiś swój sposób? Robicie jakoś inaczej? Czy może przepuszczacie text przez swoje kroki ręcznie?
    pozdrawiam bombelkowo

    Jak ktoś się rzuca, że nie wie jakie zdjęcia robię: proszę bardzo (flickr), choć stare.

  2. #2

    Domyślnie

    Cytat Zamieszczone przez 2pompony Zobacz posta
    W teorii jest pięknie - wszystko działa. Problemem jest to, że działa za szybko. Tak jest, ZA szybko. Na przykład na jakimś etapie, powiedzmy w trzecim kroku ma usunać wszystkie podwójne, lub wielokrotne spacje. I usuwa podwójne, ale jeśli spacji jest więcej, bywa że jakieś mu zostają - np. było 5 spacji, po skrypcie zostają dwie. Tak jakby skrypt nie wykonawszy do końca swojego kroku przechodził zbyt szybko do następnego kroku.
    Absurdalne tłumaczenie. Nie ma czegoś takiego, że skrypt/komputer działa za szybko. Po prostu ten algorytm/skrypt ktory wymysliles nie jest typu zachłannego, tzn. idzie znak po znaku i jesli widzi 5 spacji, a ma usunac podwojne to robi tak:

    [**][**]*
    i zostaje mu ***

    a pewnie chcialbys tak:
    [**]***
    [**]**
    [**]*
    [**]
    *

    Najprosciej, zapusc po prostu ten skrypt ze spacjami n-razy. Przeciez on i tak nic nie zepsuje.
    Ja czesto musze poprawic kod na strone www i przepuszczajac go przez Notepad++ klikam Find/Replace tyle razy az zmian bedzie zero.

    ps. Z tego co pamietam, to wyrazenia regularne zapuszczone w konsoli linuxa dzialaly metodą zachłanną.

  3. #3

    Domyślnie

    1. Nie wiem czy wiesz, mogło Ci się gdzieś zawieruszyć, ale w Indesignie można zapuścić skrypt na wszystkich otwartych plikach, nie trzeba więc nic scalać.

    2. To co Kolega wyżej napisał to jedno, druga rzecz, że czasem spieprzy się w skrypcie kolejność - np. usuwasz podwójne spacje, a później dodajesz jedną po wszystkich przecinkach. Ja wywalam spacje zupełnie na końcu, do skutku.
    ['O]

  4. #4

    Domyślnie

    Cytat Zamieszczone przez docxxx Zobacz posta
    Absurdalne tłumaczenie. Nie ma czegoś takiego, że skrypt/komputer działa za szybko. Po prostu ten algorytm/skrypt ktory wymysliles nie jest typu zachłannego, tzn. idzie znak po znaku i jesli widzi 5 spacji, a ma usunac podwojne to robi tak:

    [**][**]*
    i zostaje mu ***

    a pewnie chcialbys tak:
    [**]***
    [**]**
    [**]*
    [**]
    *
    NIE, NIE i NIE!

    NIE.

    Krok nie znajduje dwóch spacji i nei zamienia ją na jedną tak jak piszesz. To jest działanie prostackie i mocno niedokładne; ja chcę finezji, a nie działania kilofem. Krok jakiego używam znajduje wszystkie wielokrotne spacje (i inne white spaces, wszystkie ich typy poza tabulatorami) występujące w dowolnym ciągu na raz wyrażeniem GREP: (\p{Zs}){2,}

    W Twoim przykładzie będzie to tak

    [***][**][***]* i zamienia to jednokrotnie i na raz na jedną, pojedynczą spację

    pod gwiazdkę można podłożyć wszystkie typu 'odstępów poziomych', jak spacje niełamliwe, ułamkowe, flush, pojedyncze o stałe i zmiennej szerokości, em i en - słowem wszystkie odstępy poziome poza tabulatorem, który trzeba traktować oddzielnie, bo jego akurat nie chcemy usuwać


    Problemem jest to, że ten krok zapuszczony pojedynczo robi to co ma robić: znajduje cały ciąg wszystkich white spaces na raz i jednorazowo zamienia go na jedna spację. W jednym przebiegu wszystko to robi na raz i w dodatku wyśmienicie.

    Ten sam skrypt puszczony w grupie z innymi robi to niechlujnie, jestem ciekaw czemu i jak temu zaradzić.





    @ecml
    ad 1. Wiem, ze można skrypty zapuścić na wszystkich plikach. Ale ja robię inaczej: każdy plik (powiedzmy będący rozdzialem długiej książki) wkładam do InDesigna i zanim zacznę nad nim pracować poprawiam serią komend w określonej kolejności. Tą kolejność mam przećwiczoną i przemyślaną - jej kolejność jest ustalona i sprawdza się idealnie, jeśli ręcznie ją zapodam. Lubię skończyć pracę nad jednym rozdziałem, zanim zabiorę się za następnym, taki mam model pracy, który mi ułatwia późniejsze ogarnięcie całości.

    Jeśli książka ma tych rozdziałów kilka lub kilkanaście, do każdego rozdziału mam na początku pracy 9 komend, po których rozpoczynam właściwą robotę. Niezbyt twórcze, ale do wytrzymania.

    Teraz mam książkę, które ma około 80 tych rozdziałów, więc czeka mnie 80 razy ręczne puszczenie 9-ciu komend. Dlatego postanowiłem sobie uprościć i zamiast puszczać ręcznie te 9 komend, chciałem puścić je jedna po drugiej naraz. Skoro sprawdza się idealnie jak zapuszczam je osobno, miało sprawdzić się tak samo dobrze, jak puszczę je ciurkiem za pomocą specjalnego skryptu.

    Niestety, ten specjalny skrypt od puszczania ciurkiem coś nie działa, albo działa źle... Pytanei dotyczyło właśnie jego...

    ad 2.
    Jak już pisałem poprzednio - ja nie usuwam spacji pojedynczo tylko hurtowo, więc nei muszę tego robić w kilku krokach. Jedn krok mi wystarczy. Moim problemem jest to, że jak robię to ręcznie - działa. A jak wywołuję tą komendę skryptem do puszczanie komend ciurkiem - nie działa.





    Prościej chyba nei uda mi się wyjaśnić o co mi dzie. Ale dziękuję za chęć niesienia pomocy.
    pozdrawiam bombelkowo

    Jak ktoś się rzuca, że nie wie jakie zdjęcia robię: proszę bardzo (flickr), choć stare.

  5. #5

    Domyślnie

    Skoro piszesz, że skrypt "działa za szybko", to by oznaczało, że pracuje w więcej niż jednym wątku, a tak nie jest.
    Problem jest powtarzalny? Skrypt robi źle za każdym razem to samo? Chodzi konkretnie o te wspominane spacje, czy to był tylko przykład?
    ['O]

  6. #6

    Domyślnie

    To jest przykład, ale rzeczywisty, skrypt jest powtarzalny. Usuwa wszystkie odstępy poziome (popularnie mówiąc wielokrotne spacje) poza jednym przypadkiem: zostawia jedną spację na początku akapitu, oraz nie usuwa wszystkich zbędnych akapitów, ale z tym sobie już poradziłem. Nie jestem pewien, czy to wszystkie wady, być może jakieś przegapiłem...

    Są dwa obejścia, oba mało eleganckie, ale jak będę zmuszony, to tak zrobię.

    Pierwsze jest takie, że włożę wszystkie 80 rozdziałów, połączę je w jeden bardzo długi ciąg textu i dopiero wtedy wykonam ręcznie te 9 kroków (przez krok rozumiem pojedyncze Find/Change). Da się, chiociaż takie wstępne łączenie wszystkiego burzy to mój modus operandi i utrudnia w pewnych sytuacjach życie. Niezaprzeczalnym plusem takiego obejścia jest bezpieczeństwo, ponieważ nei zmieniam mozolnie i pieczołowicie ustalonej kolejności moich kroków, czyli jestem pewien że na wyjściu dostanę text bezbłędny, a nie z niespodziankami typu urżnięta kropka po skrócie tu i ówdzie, źle położony nawias, czy coś...

    Drugie obejście jest takie, że zmienię nieco kolejność moich kroków. Listę kroków mam od lat przemyślaną i bynajmniej nie jest przypadkowa, bo jak wiesz jedno wpływa na drugie - więc nie chcę jej zmieniać bez wyraźnego powodu. Nie chcę się boleśnie przekonać, że np. usunęło mi lub coś dodało nie tam, gdzie potrzeba, np. kropkę po skrócie dr, w metrach kwadratowych dwójkę dało do indeksu dolnego zamiast górnego lub poknociło z cudzysłowami. Więc mogę krok, w którym usuwam zbędne white spaces sprzed akapitu dać nie na początek listy, tylko gdzieś dalej - chociaż będę musiał gruntownie sprawdzić, czy czegoś to nei zaburza. A to potrwa.

    Alternatywnie mogę usuwać tą pojedynczą spację sprzed akapitu w dodanym 10tym już kroku, gdybym był pewny, że to jedyna wada tego skryptu do puszczanie kroków ciurkiem. On się nazywa FindChangesByList.




    Liczyłem na to, ze ktoś już zauważył, że w tym skrypcie do ciurka wystarczy gdzie coś poprawić, i zacznie działać po ludzku, ale chyba moje nadzieje były płonne...
    pozdrawiam bombelkowo

    Jak ktoś się rzuca, że nie wie jakie zdjęcia robię: proszę bardzo (flickr), choć stare.

  7. #7

    Domyślnie

    Dobra, dam se spokój z tym skryptem od puszczania ciurkiem, są inne błędy.

    Na przykład ręcznie puszczone Find/Change o składni: Zamień r/{2, } Na \r bierze i zaznacza wszystkie wielokrotne entery za jednym zamachem i zamienia cały ich ciąg na jeden enter. Czyli mówiąc najogólniej usuwa wszystkie zbędne entery, które nawaliła sekretara, zostawiając tylko ten właściwy.

    Dokładnie ten sam krok ale puszczony przez skrypt robi to tak, że na każde 10 enterów zostawia dwa. Było 10, to 2 zostawi, będzie 40, zostawi 8 - a przecież składnia Find/Change się nei zmienia - cały czas jest ta sama i cały czas ma zaznaczyć wszystkie entery na raz. A skrypt robi to jakby mu czasu nie starczało na zaznaczenie wszystkich...

    Nie mam do tego tego nerwów. Jakby ktoś wiedział jak to poprawić - proszę o poradę, ale chyba zaczynam wątpić...
    pozdrawiam bombelkowo

    Jak ktoś się rzuca, że nie wie jakie zdjęcia robię: proszę bardzo (flickr), choć stare.

  8. #8

    Domyślnie

    Nie lepiej skorzystać z opcji uruchamiania skryptu dla wszystkich otwartych dokumentów?

    Otwierasz wszystkie 80 i uruchamiasz skrypt - i masz bez żadnych 'usprawnień' swoje stare sprawdzone i działające...
    Koniecznie odwiedź Podkarpacką Grupę Fotograficzną na Nikoniarzach : Forum Grupy PODKARPACKIEJ
    Informacja jak się z nami spotkać : Czwartkowe P I W K O (czyli jak się z nami spotkać)
    Jesteś z Podkarpacia : Jak do nas dołączyć

  9. #9

    Domyślnie

    A to z kolei nie wiem, czy pociągnie mój komputer. Nie otwierałem nigdy 80 plików na raz, ale może spróbuję powiedzmy z dwudziestoma na początek. Rzeczywiście jest to jakieś obejście problemu, zamiast 80 razy puszczać ręcznie, puścić zestaw powiedzmy kilka razy na otwarej dwudziestce, piętnastce może...

    Dzięki Robert, jak się okazuje partyzanckie sposoby też - miejmy nadzieję - działają cuda.
    pozdrawiam bombelkowo

    Jak ktoś się rzuca, że nie wie jakie zdjęcia robię: proszę bardzo (flickr), choć stare.

  10. #10

    Domyślnie

    Cytat Zamieszczone przez ecml Zobacz posta
    Nie wiem czy wiesz, mogło Ci się gdzieś zawieruszyć, ale w Indesignie można zapuścić skrypt na wszystkich otwartych plikach[...]
    Cytat Zamieszczone przez RobertMiernik Zobacz posta
    Nie lepiej skorzystać z opcji uruchamiania skryptu dla wszystkich otwartych dokumentów?

    Pompon! Skup się ;p
    ['O]

Strona 1 z 2 12 OstatniOstatni

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •