Wie werden polnische diakritische Symbole in groff korrekt angezeigt?


7

Ich spiele mit groff und wollte aus dem Folgenden ein PDF erstellentest.ms

.TL
Tytuł
.AU
Imię Nazwisko
.NH
Wstęp
.PP
Pierwszy paragraf. Jakieś informacje, żeby były polskie znaki.
.PP
Drugi paragraf. Reszta znaków:

ąęćłńśóżźĄĘĆŁŃŚÓŻŹ
.NH
Bla bla bla
.PP
safsdsdfsasdds

Wie Sie sehen können, enthält es polnische diakritische Symbole. Nach dem Kompilieren mit werden groff -ms test.ms -T pdf > test.pdfwir mit diesem Durcheinander konfrontiert: Schrecklich!

Meine erste Vermutung war das Neukompilieren mit utf-8-Unterstützung.

$ groff -Kutf8 -ms test.ms -T pdf > test.pdf
test.ms:4: warning: can't find special character `u0065_0328'
test.ms:8: warning: can't find special character `u0073_0301'
test.ms:8: warning: can't find special character `u00A0'
test.ms:8: warning: can't find special character `u007A_0307'
test.ms:12: warning: can't find special character `u0061_0328'
test.ms:12: warning: can't find special character `u006E_0301'
test.ms:12: warning: can't find special character `u007A_0301'
test.ms:12: warning: can't find special character `u0041_0328'
test.ms:12: warning: can't find special character `u0045_0328'
test.ms:12: warning: can't find special character `u004E_0301'
test.ms:12: warning: can't find special character `u0053_0301'
test.ms:12: warning: can't find special character `u005A_0307'
test.ms:12: warning: can't find special character `u005A_0301'

Groff hat die meisten Symbole einfach ignoriert und das PDF sieht folgendermaßen aus:

Immer noch schrecklich.

Nach einem bisschen googeln ich habe festgestellt , diese :

groff -Kutf8 -Tdvi -mec -ms test.ms > test.dvi
dvipdfm -cz 9 test.dvi

Ja, es schlägt immer noch fehl (obwohl es besser ist, wird nur ein Charakter übersprungen):

$ groff -Kutf8 -Tdvi -mec -ms test.ms > test.dvi
test.ms:8: warning: can't find special character `u00A0'

Wie kann ich das zum Laufen bringen?

EDIT: Hier ist die Ausgabe vonlocale

LANG=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

Was ist die Ausgabe von locale?
David

@ David Die Ausgabe wurde hinzugefügt.
atmostmediocre

Aufnahmen im Dunkeln: Liefert die verwendete Zeichenschrift die polnischen Zeichen?
RudiC

@RudiC Ich habe keine Ahnung, gibt es eine Möglichkeit, dies zu überprüfen?
atmostmediocre

Gibt nroff -ms test.mses Fehler, wenn Sie die Ausgabe in einem Terminalemulator ausführen und anzeigen?
Mark Plotnick

Antworten:


2

Charakter A0ist ein unzerbrechlicher Raum. Es sieht so aus, als ob es zwischen "Jakieś" und "informacje" liegt. Verwenden Sie Ihren Editor, um ihn durch ein normales Leerzeichen zu ersetzen, und Sie sollten bereit sein, loszulegen.

Hinweis: Ich habe meine Editoren (Emacs, Vim) so eingerichtet, dass sie unzerbrechliche Leerzeichen hervorheben, da ich manchmal ungewollt einige mit AltGr+ tippe, spacewenn ich spacenach dem Eingeben eines Zeichens, das gedrückt werden muss, drücke AltGr.

Die Warnungen nach Ihrer ersten Vermutung scheinen zu zeigen, dass einige Zeichen (ę, ś, ż ...) eher mit der Kombination von Diakritika als nativ codiert sind. ZB ę == e (hex 65) + ogonek (hex 328) anstelle von "e mit ogonek" (hex 119) kombinieren. Wie bearbeiten Sie Ihre Quelldatei? Sie können eine Compose-Taste verwenden, um "eigenständige" diakritische Buchstaben zu erstellen, z. B. Compose e ,für "ę".


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.