spacja nierozdzielająca ("twarda")
spacja nierozdzielająca ("twarda")
Czy ktoś natnął sie na makro, które zamieniałoby zwykłe spacje po spójnikach "i" "a" itp oraz po przyimkach typu "do" "na" "za" "u" "w"?
Chodzi o to by nie zostawały na końcu wiersza
Chodzi o to by nie zostawały na końcu wiersza
Re: spacja nierozdzielające ("twarda")
Nie ma takiego, ale można np. zmodyfikować rozszerzenie Predlogi:
http://extensions.services.openoffice.o ... t/Predlogi
Albo czeskie makro Vlnka:
http://www.openoffice.cz/doplnky/prepra ... -verze-0-4
To drugie jest chyba nawet bardziej rozbudowane i powinno być stosunkowo łatwo zrobić polską wersję.
http://extensions.services.openoffice.o ... t/Predlogi
Albo czeskie makro Vlnka:
http://www.openoffice.cz/doplnky/prepra ... -verze-0-4
To drugie jest chyba nawet bardziej rozbudowane i powinno być stosunkowo łatwo zrobić polską wersję.
Koordynator projektu http://pl.openoffice.org
- mellonedain
- Posty: 48
- Rejestracja: pn maja 25, 2009 8:49 pm
- Lokalizacja: Zabrze
- Kontakt:
Re: spacja nierozdzielające ("twarda")
Niestety nie znam czeskiego i ciężko jest mi ocenić to drugie makro. Jest na extensions site?
Kiedyś napisałem sobie takie makro, ale ma wiele błędów, tzn. robi to zawsze i bezwzględnie, a w OOo twarda spacja miała wtedy zawsze tę samą szerokość i efekt nie zawsze był zgodny z zamierzonym.
Jeżeli potrzebujesz to mogę go wygrzebać z mojego archiwum. Swoją zasadę działania opierał na słowniku. I chyba nawet pozwalał na odwrócenie operacji, ale tę kwestię musiałbym sobie przypomnieć.
Kiedyś napisałem sobie takie makro, ale ma wiele błędów, tzn. robi to zawsze i bezwzględnie, a w OOo twarda spacja miała wtedy zawsze tę samą szerokość i efekt nie zawsze był zgodny z zamierzonym.
Jeżeli potrzebujesz to mogę go wygrzebać z mojego archiwum. Swoją zasadę działania opierał na słowniku. I chyba nawet pozwalał na odwrócenie operacji, ale tę kwestię musiałbym sobie przypomnieć.
Re: spacja nierozdzielające ("twarda")
Nie jest, ale można je ściągnąć z podanego adresu. Rzuciłem okiem, dostosowanie do polszczyzny to kwestia kilkunastu minut. Kod klarowny, w Pythonie. Mógłbym to dostosować, ale nie dziś - może za tydzień lub dwa.
Jeśli chodzi o szerokość spacji, to ono wstawia chyba wąską twardą spację (są tam jakieś komentarze na ten temat). Bardziej inteligentne makro mogłoby zmieniać tylko spacje w okolicach miękkiego końca wiersza, żeby nie było problemów tego rodzaju, ale wtedy trzeba by inaczej tekst przetwarzać (na pewno nie wystarczy normalne zastępowanie tekstu).
Aha, na extensions site jest jeszcze makro do spacji nierozdzielających w języku francuskim - nie patrzyłem na kod:
http://extensions.services.openoffice.o ... /insecable
Jeśli chodzi o szerokość spacji, to ono wstawia chyba wąską twardą spację (są tam jakieś komentarze na ten temat). Bardziej inteligentne makro mogłoby zmieniać tylko spacje w okolicach miękkiego końca wiersza, żeby nie było problemów tego rodzaju, ale wtedy trzeba by inaczej tekst przetwarzać (na pewno nie wystarczy normalne zastępowanie tekstu).
Aha, na extensions site jest jeszcze makro do spacji nierozdzielających w języku francuskim - nie patrzyłem na kod:
http://extensions.services.openoffice.o ... /insecable
Koordynator projektu http://pl.openoffice.org
Re: spacja nierozdzielające ("twarda")
No nie wiem czy to dobry pomysł, bo spacja niełamliwa jest we Writerze źle zrobiona i jest niestety również nierozciągliwa i jej wstawianie wszędzie, jak to się robi w LaTeXu, jest bardzo często bez sensugrzegi44 pisze:Czy ktoś natnął sie na makro, które zamieniałoby zwykłe spacje po spójnikach "i" "a" itp oraz po przyimkach typu "do" "na" "za" "u" "w"?
Chodzi o to by nie zostawały na końcu wiersza
Re: spacja nierozdzielające ("twarda")
Dziękuję wszystkim za szybką reakcję, może coś się da dostosować, niestety jestem tylko użytkownikiem, nieco bardziej zaawansowanym jak mniemam.
Przejrzałem podane linki, francuskie rozszerzenie nie nadaje się, czeskie wydaje sie super po zrzutach ekranu, nie znam czeskiego ale domyslam sie, że można wybrac wstawianie twardej spacji po jednoliterowych, dwuliterowych, przed %, jednostkami miary. Byłoby wspaniale jakby to ktoś zaadoptował do języka polskiego.
Przejrzałem podane linki, francuskie rozszerzenie nie nadaje się, czeskie wydaje sie super po zrzutach ekranu, nie znam czeskiego ale domyslam sie, że można wybrac wstawianie twardej spacji po jednoliterowych, dwuliterowych, przed %, jednostkami miary. Byłoby wspaniale jakby to ktoś zaadoptował do języka polskiego.
Re: spacja nierozdzielające ("twarda")
Tak, Vlnka wygląda solidnie.
Dla użycia od przypadku do przypadku pozostaje całkiem skuteczne użycie formularza Znajdź/Zamień, z wyrażeniami regularnymi. Tzn. zautomatyzowana praca ręczna. W razie zainteresowania podeślę dalsze szczegóły.
Dla użycia od przypadku do przypadku pozostaje całkiem skuteczne użycie formularza Znajdź/Zamień, z wyrażeniami regularnymi. Tzn. zautomatyzowana praca ręczna. W razie zainteresowania podeślę dalsze szczegóły.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: spacja nierozdzielające ("twarda")
Dla jedno lub dwustronicowego dokumentu i literek i, a, w, można sie "pobawić", mam to opanowane, ale dla dalszych typu na, do , za itd i przy większej ilości stron to zabiera dużo czasu.Jan_J pisze:Tak, Vlnka wygląda solidnie.
Dla użycia od przypadku do przypadku pozostaje całkiem skuteczne użycie formularza Znajdź/Zamień, z wyrażeniami regularnymi. ...
Re: spacja nierozdzielające ("twarda")
Problem w tym, że rozwiązanie z użyciem twardej spacji jest... tragiczne. Cały problem z tym rodzajem spacji polega na tym, że jest ona traktowana jako pojedynczy, zwykły znak. "O to przecież chodzi", powiecie. No nie całkiem o to. Spacja musi mieć zdolność do rozszerzania się, gdy musi (przy justowanym tekście). Twarda spacja zawsze ma natomiast stałą szerokość. Jeśli chcę, by tekst wyglądał ładnie, muszę nie tylko znajdować linie kończące się na 'w', 'a' itp., ale również wstawiać tyle twardych spacji, by to jakoś wyglądało. A potem wprowadzę jedną zmianę do dokumentu i znowu jest bieda.
Nie dałoby się tego jakoś zautomatyzować? Dam sobie głowę uciąć, że to jeden z najszerszych problemów, na jakie ludzie się w życiu natykają...
Innymi słowy, potrzeba nam spacji nierozdzielającej, NIE zaś spacji twardej -- ta druga ma stałą szerokość, co jest tutaj wadą. LaTeX sobie z tym radzi -- nierozdzielająca spacja to "~", twarda to "\ ".
Nie dałoby się tego jakoś zautomatyzować? Dam sobie głowę uciąć, że to jeden z najszerszych problemów, na jakie ludzie się w życiu natykają...
Innymi słowy, potrzeba nam spacji nierozdzielającej, NIE zaś spacji twardej -- ta druga ma stałą szerokość, co jest tutaj wadą. LaTeX sobie z tym radzi -- nierozdzielająca spacja to "~", twarda to "\ ".
Michał Gołębiowski
student Jednoczesnych Studiów Informatyczno-Matematycznych na UW
student Jednoczesnych Studiów Informatyczno-Matematycznych na UW
- mellonedain
- Posty: 48
- Rejestracja: pn maja 25, 2009 8:49 pm
- Lokalizacja: Zabrze
- Kontakt:
Re: spacja nierozdzielające ("twarda")
To co piszesz jest słuszne. Daje okazję do zgłoszenia tego developerom OOo jako nową cechę, o którą warto powalczyć. Jednak może minąć trochę czasu zanim wszystko zostanie zrobione. dlatego na bazie Vlnka zbudowałem nowe rozszerzenie. Nowe ze względu na to, że ktoś może chcieć używać oryginału do pracy z językiem czeskim.
Postaram się teraz troszkę ogarnąć regułki zawarte w rozszerzeniu i oddać całość pod testy i wokandę.
[blockquote]
Uff... Jak widać powyżej, już w tej chwili jest tego sporo. Błędy i uwagi językowe proszę zgłaszać w dalszej części tematu.
Postaram się teraz troszkę ogarnąć regułki zawarte w rozszerzeniu i oddać całość pod testy i wokandę.
[blockquote]
- spójniki - spacja po
- a
- i
- oraz
- albo
- bądź
- czy
- lub
- ani
- ni
- ale
- lecz
- zaś
- czyli
- przeto
- tedy
- więc
- zatem
- przyimki - spacja po
- do
- za
- od
- na
- po
- o
- u
- z
- w
- bez
- pod
- nad
- znad
- poprzez
- sprzed
- zza
- przed partykułami - spacja przed
- się
- no
- jednostki miary spacja pomiędzy cyframi a:
- cl
- cm
- dl
- dm
- g
- hl
- sk
- kg
- km
- ks
- l
- m
- mg
- ml
- mm
- t
- zł
- gr
- tytuły, zaimkach, partykułach i stopniach - spacja po
- mgr
- inż.
- dr
- lek.
- dent.
- mjr
- gen
- hab.
- prof.
- zw.
- ndzw.
- lic.
- ppor
- pplk
- ja
- ty
- my
- wy
- oni
- one
- mój
- twój
- nasz
- wasz
- ich
- jego
- jej
- ten
- ta
- to
- tamten
- tam
- tu
- ów
- tędy
- taki
- ci
- tamci
- owi
- razy
- tylko
- nie
- by
- niech
- niechaj
- tak
- bodaj
- oby
- liczby - zamienia separator cyfr ze zwykłej spacji na niełamliwą
- symbole jednostek - spacja pomiędzy cyfry lub litery a:
- °
- %
Uff... Jak widać powyżej, już w tej chwili jest tego sporo. Błędy i uwagi językowe proszę zgłaszać w dalszej części tematu.
Ostatnio zmieniony ndz cze 07, 2009 12:02 am przez Jan_J, łącznie zmieniany 1 raz.
Powód: zmiana zaczników: quote --> blockquote (niestandardowy)
Powód: zmiana zaczników: quote --> blockquote (niestandardowy)
Re: spacja nierozdzielające ("twarda")
Kodowi się przyjrzę. Warto, niezależnie czy spacja klejąca jest elastyczna, czy nie.
Między liczbą a znakiem stopnia lub procenta nie powinno w ogóle być spacji.
Długie (wielosylabowe, a nawet tylko wieloliterowe) przyimki i spójniki -- czy to nie jest przedobrzenie? muszę przejrzeć wydawnictwa poprawnościowe, ale z tych co mam teraz pod ręką, żadne nie wskazuje takich przypadków. Podobnie zaimki: ja, ty, my itd. są samodzielnymi słowami i nie trzeba ich z niczym kleić.
Stosunkowo często spotykane, a nie ujęte przypadki:
Między liczbą a znakiem stopnia lub procenta nie powinno w ogóle być spacji.
Długie (wielosylabowe, a nawet tylko wieloliterowe) przyimki i spójniki -- czy to nie jest przedobrzenie? muszę przejrzeć wydawnictwa poprawnościowe, ale z tych co mam teraz pod ręką, żadne nie wskazuje takich przypadków. Podobnie zaimki: ja, ty, my itd. są samodzielnymi słowami i nie trzeba ich z niczym kleić.
Stosunkowo często spotykane, a nie ujęte przypadki:
str. przed cyfrą
godz. przed cyfrą
rok, roku, rokiem itp. przed cyfrą
między słowem a itd.|itp.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
- mellonedain
- Posty: 48
- Rejestracja: pn maja 25, 2009 8:49 pm
- Lokalizacja: Zabrze
- Kontakt:
Re: spacja nierozdzielające ("twarda")
Miałem wątpliwości czy ująć co najmniej w związku z 30% całej tej listy, ale lepiej je wykluczyć od razu i już do tego nie wracać.
Może ma ktoś propozycję na inną nazwę rozszerzenia? Możemy poszaleć w przeróbkach
Istotnie brakuje. Trzeba dodać nową regułkę. Możemy na forum zbudować listę, a ja w przyszłym tygodniu wprowadzę to w kod.str. przed cyfrą
godz. przed cyfrą
Może ma ktoś propozycję na inną nazwę rozszerzenia? Możemy poszaleć w przeróbkach
Re: spacja nierozdzielające ("twarda")
Zmień rozszerzenie na .oxt i dodaj autorskie logo, tak by nie gryzło się z pierwowzorem.
Standardowa diagnostyka rozwiązuje 90% problemów typu "wcześniej działało, ale już nie działa".
Przepis na LibreOffice
Uzyskałeś pomoc? Poinformuj innych o sprawdzonym rozwiązaniu i podziękuj. Dodaj [SOLVED] w tytule.
Przepis na LibreOffice
Uzyskałeś pomoc? Poinformuj innych o sprawdzonym rozwiązaniu i podziękuj. Dodaj [SOLVED] w tytule.
Re: spacja nierozdzielające ("twarda")
Jak to robią w innych systemach:
A. Wolański, Edycja tekstów, PWN 2008, str. 24--25 wymienia m.in. zasady regulujące podział tekstu pomiędzy wiersze na znaku spacji. Nie załączam dosłownego cytatu, tylko przygotowany przeze mnie wyciąg:
[blockquote]Nie wolno rozdzielać:
Ciekawe, ale nie ma nic o przyimkach, takich jak na, po, przed. Tu bym dał możliwość klejenia, ale tylko tych jednosylabowych. Natomiast klejenie dłuższych jest nienaturalne, bo preferuje dzielenie wyrazów, które jest zabiegiem bardziej drastycznym od dzielenia na spacji.
// edit date=2009.06.23
Z kolei Donald E. Knuth w sławnym TeXbook-u (WNT 2005) wymienia na str. 109--111 (podobnie jak poprzednio nie cytuję, tylko załączam luźny wyciąg; także niektóre przykłady są moje):[blockquote]
PS.
Dot. elastyczności znaku nbsp w OOoWriter: wiedziałem, że kiedyś wiedziałem. I rzeczywiście: http://www.openoffice.org/issues/show_bug.cgi?id=89129
- Mikołaj Machowski: porzadki.pl (TeX)
- Jakub Narębski: sierotki.el (TeX+Emacs)
- mój skromny skrypcik: wisielce.sed (TeX+sed)
A. Wolański, Edycja tekstów, PWN 2008, str. 24--25 wymienia m.in. zasady regulujące podział tekstu pomiędzy wiersze na znaku spacji. Nie załączam dosłownego cytatu, tylko przygotowany przeze mnie wyciąg:
[blockquote]Nie wolno rozdzielać:
- liczb rozdzielonych na grupy cyfrowe, np. 1 000 000
- liczb między którymi stoi znak proporcji, np. 1 : 25 000
- oznaczeń miar po liczbie, np. 13 km
- skrótów ze znakiem /, np. m/s
- słowa tworzącego sensowną całość z liczbą po niej następującą, np. rozdział 8
- oznaczenia porządkowego i treści, np. a. chleb, b. mleko
- tekstu i skrótu itp.., itd, i podobnych
- skrótu odnoszącego się do następującego po nim tekstu, np. tj. coś tam, tzn. coś
- elementów daty w notacji cyfrowej, np. 13 IV 1955
- w wierszach o długości powyżej 40 znaków: jednoliterowych spójników (a, i, o, u, w, z) i następujących po nich słów
Ciekawe, ale nie ma nic o przyimkach, takich jak na, po, przed. Tu bym dał możliwość klejenia, ale tylko tych jednosylabowych. Natomiast klejenie dłuższych jest nienaturalne, bo preferuje dzielenie wyrazów, które jest zabiegiem bardziej drastycznym od dzielenia na spacji.
// edit date=2009.06.23
Z kolei Donald E. Knuth w sławnym TeXbook-u (WNT 2005) wymienia na str. 109--111 (podobnie jak poprzednio nie cytuję, tylko załączam luźny wyciąg; także niektóre przykłady są moje):[blockquote]
- odsyłacze do nazwanych części dokumentu, jak Rozdział~12, Twierdzenie~1.2 itp., ale Strony 5 i~6;
- imiona jednej osoby i nazwiska wieloczłonowe pisane ze spacją (komentarz DEK: lepiej w takim wypadku podzielić słowo, niż złamać wiersz na spacji);
- symbole matematyczne + rzeczownik, liczba + miano: rozmiar~d, szerokość~w, ciąg o długości~3;
- między symbolami w ciągach znaków: 1,~2 lub 3, a,~b i~c;
- przy związku symbolu z przyimkiem: z~x, od~A do~B;
- w słownych wyrażeniach związków ilościowych: mniej niż~N, dla każdego~K;
- po symbolach wyliczeń: a.~pierwszy, b.~drugi, c.~trzeci.
PS.
Dot. elastyczności znaku nbsp w OOoWriter: wiedziałem, że kiedyś wiedziałem. I rzeczywiście: http://www.openoffice.org/issues/show_bug.cgi?id=89129
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: spacja nierozdzielająca ("twarda")
Ba! wydaje się, że rozwiązanie istnieje, przynajmniej z punktu widzenia praktyki.
Znak ,,nonbreaking space'' (U+00a0) istotnie ma we Writerze stałą szerokość, podczas gdy ,,space'' (U+0020) jest elastyczny.
Mało kto wie/pamięta o znaku ,,word joiner'' (U+2060), będącym zerowym odstępem z zakazem podziału.
Kombinacja <słowo>U+2060U+0020<słowo> oddziela słowa elastycznym niełamliwym odstępem -- i o to chodzi.
Oczywiście ten sposób równie dobrze nadaje się do oskryptowania, jak tradycyjny.
Jeszcze tylko zrobić skrót klawiaturowy, dajmy na to <Ctrl><Spacja> (jako że nbsp jest wyzwalana przez <Ctrl><Shift><Spacja>), i już można używać na codzień.
Aha: dialog Wstaw/znak specjalny daje dostęp tylko do podzbioru Unikodu, i znaku wj tam nie znajdziecie.
Pytanie, czy znak nbsp powinien być elastyczny, to zupełnie inna sprawa. Przed zajęciem stanowiska odsyłam do lektury dokumentacji Unikodu.
W ogóle, tabele Unikodu warto przejrzeć sobie od czasu do czasu. To kształci.
Znak ,,nonbreaking space'' (U+00a0) istotnie ma we Writerze stałą szerokość, podczas gdy ,,space'' (U+0020) jest elastyczny.
Mało kto wie/pamięta o znaku ,,word joiner'' (U+2060), będącym zerowym odstępem z zakazem podziału.
Kombinacja <słowo>U+2060U+0020<słowo> oddziela słowa elastycznym niełamliwym odstępem -- i o to chodzi.
Oczywiście ten sposób równie dobrze nadaje się do oskryptowania, jak tradycyjny.
Jeszcze tylko zrobić skrót klawiaturowy, dajmy na to <Ctrl><Spacja> (jako że nbsp jest wyzwalana przez <Ctrl><Shift><Spacja>), i już można używać na codzień.
Aha: dialog Wstaw/znak specjalny daje dostęp tylko do podzbioru Unikodu, i znaku wj tam nie znajdziecie.
Pytanie, czy znak nbsp powinien być elastyczny, to zupełnie inna sprawa. Przed zajęciem stanowiska odsyłam do lektury dokumentacji Unikodu.
W ogóle, tabele Unikodu warto przejrzeć sobie od czasu do czasu. To kształci.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
- mellonedain
- Posty: 48
- Rejestracja: pn maja 25, 2009 8:49 pm
- Lokalizacja: Zabrze
- Kontakt:
Re: spacja nierozdzielająca ("twarda")
Spróbuję to zaimplementować. Chciałem podobnego rozwiązania użyć w wspominanym przeze mnie makrze, ale mi nie wyszło. Basic jest uboższy. Może Python mi w tym pomoże
Re: spacja nierozdzielająca ("twarda")
Spróbowałem skorzystać (z U+2060U+0020), ale stwierdzam, że u mnie działa to trochę niedeterministycznie. To znaczy w niektórych przypadkach mi się jednak łamie (choć w większości działa jak powinno) i, przynajmniej na razie, nie jestem tu w stanie dostrzec jakiejś reguły, która by tym rządziła.
OO310m11, Windows Vista Business SP1
OO310m11, Windows Vista Business SP1
Re: spacja nierozdzielająca ("twarda")
A czy aby tego word joinera nie trzeba użyć po obu stronach spacji? Bo tak na logikę, to jak się wpisze tylko z jednej, to spacja może zostać rozdzielona z drugiej strony.
Michał Gołębiowski
student Jednoczesnych Studiów Informatyczno-Matematycznych na UW
student Jednoczesnych Studiów Informatyczno-Matematycznych na UW
Re: spacja nierozdzielająca ("twarda")
Z http://unicode.org/versions/Unicode5.0.0/ch16.pdf, str 534:
Chyba masz rację, z tym że standardowo łamanie wiersza następuje przed spacją po słowie. Pozwolenie na podział między spacją a słowem może w ogóle nie być dopuszczane w niektórych systemach. Może też jest tak, że algorytm dopuszcza taki podział w szczególnych (zaplanowanych lub nie) sytuacjach, co przynajmniej częściowo mogłoby tłumaczyć wspomnianą przez Dynia ,,niestabilność''.
@m_gol
Offtopowe sprostowanie: w LaTeX-u ~ wstawia elastyczną spację klejącą, a \ elastyczną spację zwykłą. Sztywne spacje wprowadzasz np. przez \hspace, \hskip, \mbox, \kern ze sztywną długością.
@m_golWord Joiner. U+2060 word joiner behaves like U+00A0 no-break space in that it indicates the absence of word boundaries; however, the word joiner has no width. The function of the character is to indicate that line breaks are not allowed between the adjoining characters, except next to hard line breaks. For example, the word joiner can be inserted after the fourth character in the text “base+delta” to indicate that there should be no line break between the “e” and the “+”. The word joiner can be used to prevent line breaking with other characters that do not have nonbreaking variants, such as U+2009 thin space or U+2015 horizontal bar, by bracketing the character.
The word joiner must not be confused with the zero width joiner or the combining grapheme joiner, which have very different functions. In particular, inserting a word joiner between two characters has no effect on their ligating and cursive joining behavior. The word joiner should be ignored in contexts other than word or line breaking.
Chyba masz rację, z tym że standardowo łamanie wiersza następuje przed spacją po słowie. Pozwolenie na podział między spacją a słowem może w ogóle nie być dopuszczane w niektórych systemach. Może też jest tak, że algorytm dopuszcza taki podział w szczególnych (zaplanowanych lub nie) sytuacjach, co przynajmniej częściowo mogłoby tłumaczyć wspomnianą przez Dynia ,,niestabilność''.
@m_gol
Offtopowe sprostowanie: w LaTeX-u ~ wstawia elastyczną spację klejącą, a \ elastyczną spację zwykłą. Sztywne spacje wprowadzasz np. przez \hspace, \hskip, \mbox, \kern ze sztywną długością.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: spacja nierozdzielająca ("twarda")
Jak zamieniłem rozszserzenie z zip na oxt to pisało o jakiś błędach w menedżerze rozszerzeń.
Re: spacja nierozdzielająca ("twarda")
Nie trzeba zmieniac rozszerzenia!rofrol pisze:Jak zamieniłem rozszserzenie z zip na oxt to pisało o jakiś błędach w menedżerze rozszerzeń.
Re: spacja nierozdzielająca ("twarda")
czy można by dodać jeszcze do wyboru przed nawiasem otwierajacym a poprzedzającym wyrazem.mellonedain pisze:To co piszesz jest słuszne. Daje okazję do zgłoszenia tego developerom OOo jako nową cechę, o którą warto powalczyć. Jednak może minąć trochę czasu zanim wszystko zostanie zrobione. dlatego na bazie Vlnka zbudowałem nowe rozszerzenie. Nowe ze względu na to, że ktoś może chcieć używać oryginału do pracy z językiem czeskim.
Jak widać powyżej, już w tej chwili jest tego sporo. Błędy i uwagi językowe proszę zgłaszać w dalszej części tematu.
Często pisze teksty gdzie odsyłam do oznaczeń na rysunku. Na pewno przyda sie piszacym teksty techniczne.
- mellonedain
- Posty: 48
- Rejestracja: pn maja 25, 2009 8:49 pm
- Lokalizacja: Zabrze
- Kontakt:
Re: spacja nierozdzielająca ("twarda")
Oczywiście, można.grzegi44 pisze: czy można by dodać jeszcze do wyboru przed nawiasem otwierajacym a poprzedzającym wyrazem.
Często pisze teksty gdzie odsyłam do oznaczeń na rysunku. Na pewno przyda sie piszacym teksty techniczne.
Odnośnie kombinacji wszelkich zamienników do twardej spacji: przetestowałem i muszę niestety odrzucić ten sposób bo w OOo (przynajmniej u mnie) nie widziałem oczekiwanego efektu. Może są inne propozycje?
Re: spacja nierozdzielająca ("twarda")
Odgrzewam starty temat, bo właśnie próbowałem dociec dlaczego klejenie za pomocą \u2060\u0020 nie zawsze działa. Wyniki są zadziwiające.
Przy dostatecznie szerokich spacjach w wierszu fraza "litera\2060\spacja", o ile znajdzie się na końcu, jest przerzucana do następnego wiersza. Dodawanie spacji, czy też skracanie słów w wierszu sprawia, że na spację przypada mniej wolnego miejsca. W pewnym momencie skraca się ona jeszcze bardziej, i fraza nagle ,,wskakuje'' z początku następnego wiersza na koniec bieżącego.
Zatem końcówka: litera + word joiner jest wtłaczana do wiersza niejako ,,na siłę'' wtedy, kiedy jest on już bliski przepełnienia. Przy tym joiner kończący wiersz wcale nie jest zerowej szerokości. Podejrzewam bug w systemie podziału akapitów na wiersze.
W załączeniu durny dokument z tą wadą -- spróbujcie dodać spację w drugim wierszu.
Przy dostatecznie szerokich spacjach w wierszu fraza "litera\2060\spacja", o ile znajdzie się na końcu, jest przerzucana do następnego wiersza. Dodawanie spacji, czy też skracanie słów w wierszu sprawia, że na spację przypada mniej wolnego miejsca. W pewnym momencie skraca się ona jeszcze bardziej, i fraza nagle ,,wskakuje'' z początku następnego wiersza na koniec bieżącego.
Zatem końcówka: litera + word joiner jest wtłaczana do wiersza niejako ,,na siłę'' wtedy, kiedy jest on już bliski przepełnienia. Przy tym joiner kończący wiersz wcale nie jest zerowej szerokości. Podejrzewam bug w systemie podziału akapitów na wiersze.
W załączeniu durny dokument z tą wadą -- spróbujcie dodać spację w drugim wierszu.
- Załączniki
-
- loremipsum.odt
- (7.61 KiB) Pobrany 477 razy
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: spacja nierozdzielająca ("twarda")
Potwierdzam u siebie (Ubuntu 9.10, OOo 3.1).Jan_J pisze:W załączeniu durny dokument z tą wadą -- spróbujcie dodać spację w drugim wierszu.
Re: spacja nierozdzielająca ("twarda")
To chyba będzie tu (dotyczy wersji OOo3.2beta, a ściślej: jej kodu źródłowego OOO320_m2): plik /i18npool/source/breakiterator/breakiterator_unicode.cxx, metoda BreakIterator_Unicode::getLineBreak(), wiersze 405--420. Jest to jedyne miejsce, gdzie znak x2060 jest jawnie wykorzystywany przy dzieleniu tekstu na wiersze. I wygląda na (doraźną?) łatę.
IMHO jedyną skuteczną drogą rozwiązania tego problemu jest rewizja algorytmu wymienionej funkcji, a nie wykluczone, że także czegoś więcej.
IMHO jedyną skuteczną drogą rozwiązania tego problemu jest rewizja algorytmu wymienionej funkcji, a nie wykluczone, że także czegoś więcej.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: spacja nierozdzielająca ("twarda")
Witam Panowie,
czytając ten, niesamowicie istotny dla większych dokumentów temat, odnoszę wrażenie, że nie udało się Wam znaleźć pełnego rozwiązania problemu. Ale znaleźliście wyjście za pomocą stworzonego makra. Czy mógłbym prosić o zamieszczenie ostatecznej - najnowszej jego wersji.
A może od czasu ostatniego postu coś się w tej kwestii zmieniło?
Pozdrawiam
czytając ten, niesamowicie istotny dla większych dokumentów temat, odnoszę wrażenie, że nie udało się Wam znaleźć pełnego rozwiązania problemu. Ale znaleźliście wyjście za pomocą stworzonego makra. Czy mógłbym prosić o zamieszczenie ostatecznej - najnowszej jego wersji.
A może od czasu ostatniego postu coś się w tej kwestii zmieniło?
Pozdrawiam
OpenOffice 3.2 na Windows XP SP3
Re: spacja nierozdzielająca ("twarda")
Dołączam się do tej prośby. To bardzo ważne niedociągnięcie w Openoffice, rozwiązanie tego problemu przywróciłoby uśmiech na wielu twarzachkszulca pisze:Witam Panowie,
czytając ten, niesamowicie istotny dla większych dokumentów temat, odnoszę wrażenie, że nie udało się Wam znaleźć pełnego rozwiązania problemu. Ale znaleźliście wyjście za pomocą stworzonego makra. Czy mógłbym prosić o zamieszczenie ostatecznej - najnowszej jego wersji.
A może od czasu ostatniego postu coś się w tej kwestii zmieniło?
Pozdrawiam
Pozdrawiam
OpenOffice 3.2, OS X 10.6
Re: spacja nierozdzielające ("twarda")
Tutaj chyba tak prosto nie jest i może być problem z pełną automatyzacją. Z tego co wiem jeśli stopień oznacza np. stopień Celsjusza to spacja powinna być. Tak jak przed każdą jednostką (7 mm, 25 oC). Jeśli stopień dotyczy kątów to spacji nie powinno być.Jan_J pisze:(...)Między liczbą a znakiem stopnia lub procenta nie powinno w ogóle być spacji.(...)
Chciałem się jeszcze dopytać o problem z uruchomieniem skryptu z załącznika do tego postu. Po przegraniu go do katalogu skryptów i próbie uruchomienia otrzymuję błąd (zrzut ekranu z załączniku).
OpenOffice 3.2 /Windows 7
Re: spacja nierozdzielająca ("twarda")
Z pełną automatyzacją zgadza się: może być duży problem. Donald Knuth przytacza w TeXBook-u kilka ciekawych sytuacji, ale z działki anglojęzycznej.
Same stopnie kątowe (°, u+00B0), minuty (prime, u+2032), sekundy (double prime, u+2033), procenty (%, u+0025 == ASCII 37) i promile (‰, u+2030) pisze się bez odstępu po liczbie.
Ciekawostka: stopień Celsjusza to nie oC (nawet z o we frakcji górnej) ani °C, tylko jeden znak: ℃ == u+2103.
Co do spacji przy stopniach temperatury, to ja nie jestem pewien. Twój argument brzmi logicznie: liczbę od miana oddziela spacja niełamliwa. Wpis w Wikipedii stwierdza podobnie, lecz nie jest przekonywający: powołuje się na rozporządzenie w którym wszystko jest opisane jak mówisz, ale
//del Słownika ortograficznego PWN pod ręką nie mam.
//insert
W Wielkim Słowniku Ortograficznym PWN (wyd. 2003) nie ma o tym ani słowa. Poniekąd słusznie, wszak to nie ortografia.
Za to w kilku poważnych książkach z PWN (konkretnie: Nowa Encyklopedia Powszechna, 1997; P. G. Hewitt: Fizyka wokół nas, 2003) temperatura jest pisana bez spacji: 90°C.
//tresni
Także Adam Wolański (Edycja tekstów, PWN 2008) na stronie 125 pokazuje przykład ze stopniami Celsjusza bez odstępu jako poprawny. Osoby autora i konsultantów oraz miejsce przygotowania tego poradnika pozwalają nie wątpić w jego rzetelność.
Same stopnie kątowe (°, u+00B0), minuty (prime, u+2032), sekundy (double prime, u+2033), procenty (%, u+0025 == ASCII 37) i promile (‰, u+2030) pisze się bez odstępu po liczbie.
Ciekawostka: stopień Celsjusza to nie oC (nawet z o we frakcji górnej) ani °C, tylko jeden znak: ℃ == u+2103.
Co do spacji przy stopniach temperatury, to ja nie jestem pewien. Twój argument brzmi logicznie: liczbę od miana oddziela spacja niełamliwa. Wpis w Wikipedii stwierdza podobnie, lecz nie jest przekonywający: powołuje się na rozporządzenie w którym wszystko jest opisane jak mówisz, ale
(nb. w pdf-ie z rozporządzeniem zamiast prime jest inny znak...).§ 15. Oznaczenia jednostek miar, których budowa lub pisownia nie odpowiada zasadom, o których mowa w § 11—14, są następujące:
1) °C — stopień Celsjusza;
2) eV — elektronowolt;
3) ° — stopień;
4) ′ — minuta;
[...]
//del Słownika ortograficznego PWN pod ręką nie mam.
//insert
W Wielkim Słowniku Ortograficznym PWN (wyd. 2003) nie ma o tym ani słowa. Poniekąd słusznie, wszak to nie ortografia.
Za to w kilku poważnych książkach z PWN (konkretnie: Nowa Encyklopedia Powszechna, 1997; P. G. Hewitt: Fizyka wokół nas, 2003) temperatura jest pisana bez spacji: 90°C.
//tresni
Także Adam Wolański (Edycja tekstów, PWN 2008) na stronie 125 pokazuje przykład ze stopniami Celsjusza bez odstępu jako poprawny. Osoby autora i konsultantów oraz miejsce przygotowania tego poradnika pozwalają nie wątpić w jego rzetelność.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)