responsywna poprawność formatowania akapitów w sieci: ciąg dalszy...

mam nadzieję, że się komuś przyda...

   
...pisać każdy może, jeden lepiej, drugi gorzej...
A przecież każdy chciałby chociaż poprawnie pisać...

To w nawiązaniu do kultowej piosenki Jerzego Sthura z 1977 roku jakiej fragment tutaj cytujemy. 

Kiedy pisano teksty drukowane finalnie na papierze to ,,WIELKIM OBCIACHEM'' było pozostawianie w tekście tzw, ,,sierot'' czyli błędów edytorskich łamania tekstu, które na końcu linii tekstu w akapicie pozostawiało pojedynczy znak. Zresztą wygląda to w tekście ,,dość paskudnie''
(o innych błędach edycyjnych przeczytać możesz tutaj: https://born-to-create.pl/bledy-skladu-tekstu/ )
W tekście drukowanym sprawa była prosta: końcowa czynność edycji tekstu polegała na prześledzenie prawego marginesu całego tekstu i ręczna zamiana w miejscu wystąpienia ,,sierot'' spacji na ,,niełamliwą spację'' (w MS WORD sekwencja klawiszy SHIFT+CONTRO+SPACJA)

SPRAWA WYSOCE KOMPLIKUJE SIĘ W PUBLIKOWANIU TEKSTU W INTERNECIE.  Ponieważ udostępniany jest on responsywnie dostosowując szerokość szpalty z akapitem do szerokości wyświetlacza (inaczej smartfony, tablety, laptopy, monitory...)
Tekst jest łamany dynamicznie dopiero na urządzeniu końcowym i tym samym nie wiadomo w którym miejscu akapitu będzie przełamana linia i  który z pojedynczych znaków stanie się nieestetyczną (jeśli nie ,,obciachową'') ,,sierotą''.

NAJLEPSZĄ METODĄ ABY TEMU ZARADZIĆ JEST NADWMIAROWA ZAMIANA W EDYTOWANYM TEKŚCIE WSZYSTKICH SPACJI ZA  KAŻDYM POJEDYNCZYM ZNAKIEM NA NIEŁAMLIWĄ SPACJĘ. 

Pisałem o tym JAK TO ZROBIĆ wykorzystując wbudowane mechanizmy MS WORD 5 lat temu w 37 numerze naszego miesięcznika: ==> http://old.e-kreatywni.eu/index.php/artykuly-38/latwe-pozbycie-sie-sierot-w-calym-tekscie-jan-jackowicz-korczynski i spotkało się to z dość dużym zainteresowaniem (19475 odsłon wg stanu na teraz)
Niedawno dopowiedziałem jak to można zrobić w niekomercyjnym (open source) Libre Office: e-kreatywni.eu/index.php/tekst-responsywny-w-dokumentach-cyfrowych-likwidacja-sierot-w-libre-office (oglądalność na dzień dzisiejszy: 7711 odsłon).

Od zawsze wiedziałem, że można to sobie bardziej uprościć przygotowując odpowiednie MAKRO dla aplikacji MS WORD aby tą sprawę załatwić przez uruchomienie makra. 
ZAWSZE BYŁEM ZBYT LENIWY, aby się zabrać za napisanie takiego makra.
W dniu dzisiejszym nareszcie się zmobilizowałem i tak powstała obecna ,,ściągawka''

jak się pozbyć za pomocą makra w MS WORD 365 ,,sierot'' w całym tekście
aby dostosować go do responsywnej publikacji w Internecie.

Trzeba napisać odpowiednie makro, zainstalować go w aplikacji MS WORD i wygodnie go użyć w miarę potrzeby:

  1. Napisałem w języku VisualBasic odpowiednie macro i dzielę się nim poniżej. Wystarczy go zainstalować w aplikacji MS WORD 365 na swoim własnym komputerze
    Poniżej kod makra:
    (użycie  Skopiuj tekst  kopiuje tekst makra do systemowego schowka)

Sub ZamienSpacjeNaNielamliwe()
    Dim doc As Document
    Dim rng As Range
    Dim regex As Object
    
    ' Odniesienie do bieżącego dokumentu
    Set doc = ActiveDocument
    
    ' Tworzenie obiektu wyrażeń regularnych
    Set regex = CreateObject("VBScript.RegExp")
    regex.Pattern = "\s([^\s])\s" ' Szukaj pojedynczego znaku otoczonego spacjami
    regex.Global = True
    
    ' Iteracja przez cały tekst dokumentu
    For Each rng In doc.StoryRanges
        Do
            Set Matches = regex.Execute(rng.Text)
            If Matches.Count > 0 Then
                For Each Match In Matches
                    rng.Text = Replace(rng.Text, Match.Value, " " & Match.SubMatches(0) & Chr(160))
                Next
            End If
        Loop While Matches.Count > 

Wystarczy skopiować kod powyższego MAKRA i zainstalować go w swoim MS WORD.

  1. Aby zainstalować MAKRO w swojej aplikacji WORD w ten sposób aby można go było używać we wszystkich dokumentach należy je zapisać w szablonie Normal.dotm lub innym szablonie globalnym:

    Jak to zrobić?

    ==> Otwórz edytor VBA (Alt + F11).
    ==> W oknie VBA znajdź Normal w sekcji Project (po lewej stronie).
    ==> Kliknij prawym przyciskiem myszy na Normal > Insert > Module.
    ==> Wklej skopiowany powyżej kod makra w nowym module.
    ==> Zapisz zmiany (Ctrl + S) i zamknij edytor VBA (Alt + Q).

  2. Jak używać makra:
    Uruchom makro:

    W Wordzie kliknij Alt + F8, znajdź makro ZamienSpacjeNaNielamliwe na liście, a następnie kliknij Uruchom.

  3. Efekt działania:

    Makro przeanalizuje cały dokument i zmieni drugą spację w niełamliwą dla każdego wystąpienia pojedynczego znaku otoczonego spacjami.
    Uwaga:
    Po uruchomieniu makra nie zapomnij zapisać dokumentu, aby zachować wprowadzone zmiany.
    Jeśli dokument ma dużą liczbę stron, proces może chwilę potrwać.

Zanim wkleisz swój tekst do Internetu warto się zatroszczyć i jakość jego formatowania. Stosując powyższe makro można to zrobić szybko i łatwo. Twoje teksty opublikowane w Internecie przestaną straszyć ,,sierotami'' w prawym marginesie Twojego tekstu.

P. S. (1)
Mam nadzieję, że w najbliższym czasie znajdę czas aby napisać i udostępnić kody wtyczek dla popularnych systemów CMS (WORDPRESS, Joomla, Drupal). Ciągle to odkładam na razie ,,do jakiegoś jutra''.

P. S. (2)
Systemowe edytory SOCIAL MEDIÓW (np. dla publikowania tekstu na Facebooku - ale nie tylko na nim) mają dużo więcej PUŁAPEK niepoprawnego formatowania tekstu, ale o tym napiszę innym razem ,,kiedyś tam..."



W nawiązaniu do tematu cytujemy fragment kultowej piosenki i robimy to z pełnym poszanowaniem praw autorskich nie tylko ..na prawach cytatu'' ale również w zgodzie ze Standardową  Licencją YouTube metodą osadzania kodu. Odpowiedni cytat piosenki nawiązujący do tematu odtwarza sie przy każdym wyświetleniu niniejszego dokumentu.