czwartek, 23 czerwca 2022

Idioten aller Länder, vereinigt euch!

Tusk w swojej działalności wyróżnia się 100% jałowością, demagogią oraz bezczelnością (na tle Hołowni, K-Kamysza czy Czarzastego). Przykładem drożyzna -- na-tem-chwilę temat numer jeden. Jest drogo/winny jest PiS. Co konkretnie ten PiS źle zrobił nie wiadomo. Albo nieszczęsna Leszczyna, która musi dupę podcierać za szefa. Pieprzy szef jak połamany, że na przykład mieszkanie prawem albo, że da 20% podwyżki dla wszystkich urzędników, potem się Leszczyny w RFM pytają o szczegóły a ona: że po wyborach będzie (o mieszkaniach), albo że nie jest ekonomistką! (o podwyżce 20%.) I wychodzi na idiotkę, albo i nie -- dochodzimy bowiem do kluczowgo pytania.

Może strategia Tuska ma sens? Może mamy już tylu idiotów, że zero-programowość, 100% demagogia, strategia wszystkim-obiecam-wszystko przyciągnie odpowiednią ich liczbę, partia osiągnie wynik a demagog zostanie premierem? Czy też jednak nie i dziad się przeliczył? Zobaczymy najdalej za nieco mniej niż półtora roku.

Aktualizacja WP na nazwa.pl

Kolega DM używa wordpressa na nazwa.pl. Dostawca do czerwca kazał mu zmienić system z Ubuntu 16 na 20 udostępniając stosowny guziczek w panelu https://admin.nazwa.pl/. Po wciśnięciu guziczka z Ubuntu 20 wordpress przestał działać. Trzeba było czterech listów do dostawcy żeby uruchomić WP w Ubuntu 20. A w sumie chodziło o jeden wiersz w konfiguracji (chyba):

/** The name of the database for WordPress */
define('DB_NAME', 'danmarszal_test');
/** MySQL database username */
define("DB_USER", 'danmarszal_test');

W starym systemie nie było deklaracji DB_USER; nie było--to niepotrzebna pomyślałem; a góffno się okazało, że potrzebna i to wcale nie username tylko ma zawierać to samo co DB_NAME. Helpdesk nazwa.pl nie potrafił nam tego wytłumaczyć; ani nie było to jasno napisane w ich (beznadziejnej) dokumentacji.

Teraz dobrze by było zaktualizować WP, bo kolega używa jakiejś prehistorycznej wersji 4.9. Na szczęście jest zainstalowane wp-cli. Dla bezpieczeństwa połączyłem się z nazwa.pl przez sshfs; skopiowałem wsio do siebie i dopiero teraz:

wp core update 

Bezproblemowo zadziałało. Przejście na nowsze PHP znowu skończyło się błędem PHP. Ręcznie z panela WP uaktualniłem pluginy i wtedy aktualizacja PHP też się powiodła. Kolega ma teraz WP6+PHP8. Najnowsze.

Na przyszłość warto wypróbować full-upgrade za pomocą wp-cli, żeby nie klikać:

## najpierw eksport potem upgrade
wp db export && \
wp core update && wp plugin update --all &&\
wp core language update

plain LuaTeX

luaTeX to najlepsza wersja TeXa bo ma tę przewagę nad pdfTeXem, że natywnie używa Unicode + potrafi korzystać z fontów systemowych. Jak się używa LaTeXa, to na tym można zakończyć. Jak ktoś chce plain-TeX (czyli zapewne kiedyś używał MeXa), to potrzebuje jako minimum: format z polskimi regułami przenoszenia wyrazów, no i możliwość dołączania rysunków.

W luaTeXu robi się to następująco (TeXlive):

Należy odszukać plik etex.src (np. /usr/local/texlive/2022/texmf-dist/tex/luatex/hyph-utf8/etex.src). Plik ten powinien zawierać wiersz:

  \addlanguage {USenglish}{hyphen}{}{2}{3}%

Po tym wierszu należy dodać

\addlanguage{polish}{loadhyph-pl.tex}{}{2}{2}

Teraz należy wygenerować format:

  luatex -ini luatex.tex
  ## powstał plik luatex.fmt; który kopiuję
  ## do katalogu z innymi formatami

Polskie reguły są włączane poleceniem:

\uselanguage{polish}

Fonty można deklarować tak, jak w poniższym przykładzie, w którym zakładamy skład fontem ChaparralPro

\input luaotfload.sty
%% https://www.wfonts.com/font/chaparral-pro
%% Potrzebujemy `family name` ale ChaparralPro też działa (why?)
%% otfinfo -a FONT wypisze family name
\def\MainSFont{name:Chaparral Pro}
\font\rm = "\MainSFont:+tlig" at 9.9pt
\font\it = "\MainSFont/I:+tlig" at 9.9pt
\font\bf = "\MainSFont/B:+tlig" at 9.9pt
\font\bi = "\MainSFont/BI:+tlig" at 9.9pt
%% \bf włącza odmianę grubą \it kursywę jak to plainie...

Zwróćmy uwagę, że odmiana jest deklarowana jako /X po nazwie kroju; potem po dwukropku (opcjonalnie) deklaruje się font features. Jako minimum warto dodać tlig, co włączy ligatury TeXowe (takie jak -- zamiast myślnika.) Inne użyteczne features, to smcp oraz onum:

%% Caps/smallcaps
\font\sc = "\MainSFont:+tlig,+smcp" at 9.9pt
%% Old style numbers
\font\sco = "\MainSFont:+tlig,+smcp,+onum" at 9.9pt

Dołączanie rysunków/kolorowanie/obracanie:

%% zPlainowany LaTeXowy pakiet graphicx:
\input graphicx.tex
\includegraphics[width=.9\hsize]{plik.png}
%% zPlainowany LaTeXowy pakiet color:
\input color.tex
\textcolor{red}{bbb}  \colorbox{green}{one two}
%% obracanie:
\rotatebox{90}{\colorbox{blue}{\textcolor{yellow}{Stand with Ukraine}}}
%% skalowanie
%% x-przeskaluj na 40% \hsize
\resizebox{.4\hsize}{!}{Stand with Ukraine}
%% xy-przeskaluj na 40%
\resizebox{.4\hsize}{2cm}{Stand with Ukraine}
%% Powiększ oryginał 2 razy
\scalebox{2}{Stand with Ukraine}

No i tyle. Podstawowa funkcjonalność jest. Z MeXa zostały tylko wzorce przenoszenia. Reszta stała się zbędna, więc nie ma czegoś takiego jak luaMeX. Postęp jest nieubłaganyn nawet w świecie TeXa...

Kompletny mini-przykład

%% -*- coding: utf-8 -*-
%% należy kompilować luaTeXem
\input luaotfload.sty
\input graphicx.tex
\input color.tex
%%
\uselanguage{polish}
%%%
\def\MainSFont{Iwona}
\font\rm = "\MainSFont:+tlig;+onum" at 9.9pt
\font\it = "\MainSFont/I:+tlig;+onum" at 9.9pt
\font\bf = "\MainSFont/B:+tlig;+onum" at 9.9pt
\font\bi = "\MainSFont/BI:+tlig;+onum" at 9.9pt
%% Small caps
\font\sc = "\MainSFont:+tlig;+smcp" at 9.9pt
%% Old style numbers
\font\sco = "\MainSFont:+tlig;+smcp;+onum" at 9.9pt

\def\SwUA{\colorbox{blue}{\textcolor{yellow}{Stand with Ukraine}}}
\def\dig{0123--456---789}

\rightskip0pt plus 1fil
\nopagenumbers

\rm \SwUA \dig {\bf \SwUA \dig } {\it \SwUA \dig }

{\sc \SwUA \dig } vs {\sco \SwUA \dig }


\rotatebox{90}{\resizebox{.4\hsize}{!}{\SwUA}}

\scalebox{2}{\SwUA}
\bye

i wynik

UWAGA: uważny czytelnik zauważy, że nie do końca jest to co miało być (small caps zawsze jest z OldStyleNumbers i nie idzie tego wyłączyć), bo niektóre font features są ignorowane. Z fontem Chaparral jest jeszcze gorzej: nawet smcp jest ignorowane.

Żeby było śmieszniej po usunięciu \input luaotfload.sty i kompilacji xeTeXem jest OK. Dalsze testy można streścić następująco: niektóre fonty nie są poprawnie deklarowane; deklarowanie tych samych fontów w LaTeXu daje poprawne rezultaty (ale z użyciem fontspeca); przetwarzanie xeTeXem też daje poprawne rezultaty. Na moje coś jest spieprzone w plainowej wersji luaotfload, ale konkretnie co to nie ustaliłem albo fontspec jest bardziej cwany i lepiej deklaruje fonty.

Relewantna literatura to dokumentacja do dwóch pakietów: https://www.ctan.org/pkg/fontspec oraz https://www.ctan.org/pkg/luaotfload.

Dopisane 23 czerwca 2022 (wieczorem): Pytanie zadałem na githubie (https://github.com/latex3/luaotfload/issues/229) i już wiem co było nie tak. Trzeba było dodać mode=node;script=latn, tj. na przykład:

\font\sc = "\MainSFont:mode=node;script=latn;+tlig;+smcp" at 9.9pt

You can check in the log how exactly fontspec specifies the font and copy that in your plaintex document.

wtorek, 7 czerwca 2022

Nasz człowiek w Warszawie

Cytat za https://gospodarka.dziennik.pl/news/artykuly/8438295,donald-tusk-ukraina-pomoc-wojna-rosja-zboze-rolnicy.html

Tusk o sytuacji polskich rolników: Jest wojna, jest blokada portów, coraz więcej transportów (z produktami rolnymi) idzie z Ukrainy przez Polskę do innych krajów, ale z punktu widzenia polskich rolników oznacza to, że część tych zbóż będzie sprzedawana tutaj w Polsce po wyraźnie niższych cenach. To także powoduje, że opłacalność produkcji polskiego rolnika może okazać się bardzo kłopotliwa -- powiedział Tusk.

Chcemy wszyscy pomagać Ukrainie, to jest bezdyskusyjna sprawa, ale trzeba to też tak zorganizować, aby pomoc dla Ukrainy nie oznaczała jakichś bardzo dotkliwych strat dla polskich rolników. Władze muszą wziąć pod uwagę ten niespodziewany problem, bo chcemy pomagać, ale musimy także zadbać o swoich ludzi -- dodał.

Ukraina jest jednym z największych światowych eksporterów zboża, które eksportuje głównie drogą morską. Rosyjska blokada portów Morza Czarnego zagraża niedoborom żywności w wielu krajach Afryki i Bliskiego Wschodu. W związku z blokadą portów Ukraina nie jest w stanie wywieźć około 22 mln ton zboża zgromadzonego w silosach. Trwają zabiegi dyplomatyczne w celu zdjęcia blokady. Komisja Europejska uruchomiła w piątek platformę do nawiązywania kontaktów biznesowych między przedsiębiorcami z Ukrainy i UE, co ma w założeniu pomóc w eksporcie ukraińskiego zboża.

Mój komentarz: jest wojna nie judzimy na wiecach politycznych w/s wojennych, zwłaszcza jak nie mamy nic lepszego do powiedzenia oprócz tego, że rząd robi źle.