各文字間のスペース値を取得するにはどうすればよいですか?

各文字間のスペース値を取得するにはどうすればよいですか?

スペース、行、文字を含む章のすべての情報をファイルに書き込むことは可能ですか?

例
(ソース:バンクフォテック

テキストと5cm幅の線があります。ASCIIテキストファイルが必要です。

Śród (space x1) takich (space x2) pól (x3) przed (x4)  laty(x5),(x6) 

nad (x7) brzegiem (x8) ruczaju,(x9) Na(x10)

pagórku () niewielkim,() we () br()-

zozowym gaju, .....

文字とスペース、そして次の文字のスペースが必要です...独自のカーニングを使用して tex に変換し直す必要があります。

\documentclass[a4paper, 12pt]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\begin{document}
\parbox{5cm}{Śród takich pól przed laty, nad brzegiem ruczaju,
Na pagórku niewielkim, we brzozowym gaju,
Stał dwór szlachecki, z drzewa, lecz podmurowany;
Świeciły się z daleka pobielane ściany,
Tym bielsze, że odbite od ciemnej zieleni}
\end{document}

http://bankfotek.pl/image/1833810

答え1

少しの労力でログからこの情報を取得できます。

\documentclass{article}

\showoutput

\begin{document}

One two three four five six seven eight nine ten.
One two three four five six seven eight nine ten.
One two three four five six seven eight nine ten.
One two three four five six seven eight nine ten.
One two three four five six seven eight nine ten.


\end{document}

ここに画像の説明を入力してください

最初の行に次のようなログが出力されます

...\hbox(6.94444+1.94444)x345.0, glue set - 0.0698
....\hbox(0.0+0.0)x15.0
....\OT1/cmr/m/n/10 O
....\OT1/cmr/m/n/10 n
....\OT1/cmr/m/n/10 e
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmr/m/n/10 t
....\kern-0.27779
....\OT1/cmr/m/n/10 w
....\kern-0.27779
....\OT1/cmr/m/n/10 o
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmr/m/n/10 t
....\OT1/cmr/m/n/10 h
....\OT1/cmr/m/n/10 r
....\OT1/cmr/m/n/10 e
....\OT1/cmr/m/n/10 e

これは(縦に読むと)どのフォントからの各文字セットと単語間のスペースを示しています。これらは伸縮コンポーネントと収縮コンポーネントの入力として表示されますが、係数を使用してボックスの開始から実際のサイズを計算できますglue set。ここでは glue set - 0.0698、有限の収縮コンポーネントを持つ各グルーはその収縮コンポーネントの比率で縮小されています。

次の行も同様で、3行目は

...\hbox(6.94444+1.94444)x345.0, glue set 0.08626

正の接着セット比を持つため、この場合は単語間接着のストレッチ コンポーネントが使用されました。

最後の行には無限のグルーがあります。

...\hbox(6.67859+0.0)x345.0, glue set 306.6666fil
....\OT1/cmr/m/n/10 n
....\OT1/cmr/m/n/10 i
....\OT1/cmr/m/n/10 n
....\OT1/cmr/m/n/10 e
....\glue 3.33333 plus 1.66666 minus 1.11111
....\OT1/cmr/m/n/10 t
....\OT1/cmr/m/n/10 e
....\OT1/cmr/m/n/10 n
....\OT1/cmr/m/n/10 .
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0
...\glue 0.0 plus 1.0fil
...\glue 0.0
...\glue 0.0 plus 0.0001fil
..\glue(\baselineskip) 23.55556
..\hbox(6.44444+0.0)x345.0, glue set 170.0fil
...\glue 0.0 plus 1.0fil

ここで、グルー セットは、各1filグルーの価値がその数であることを示しますpt。この場合、すべてが から来て、\parfillskip最後の 2 つの単語の後の短い行が完成します。

関連情報