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.pdf
wir mit diesem Durcheinander konfrontiert:
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:
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=
locale
?nroff -ms test.ms
es Fehler, wenn Sie die Ausgabe in einem Terminalemulator ausführen und anzeigen?Antworten:
Charakter
A0
ist 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 "ę".
quelle
Das Problem kann auf eine veraltete Version von zurückzuführen sein
groff
.Siehe diesen Link .
quelle