ハイフネーションの最小文字数を設定するにはどうすればいいですか?

ハイフネーションの最小文字数を設定するにはどうすればいいですか?

(私の他の質問と関連していますここ) 音訳されたサンスクリット語の多言語ハイフネーション規則では、デフォルトで 1 文字の後にハイフネーションが許可されているようです。例を見ると、3 行目と 4 行目の間の単語はulūkādayaḥ1 文字の後にのみハイフネーションされています。これを、たとえば 2 文字に変更するにはどうすればよいでしょうか。

\documentclass[12pt]{article}

\usepackage{fontspec}
\usepackage{polyglossia}

\setdefaultlanguage{sanskrit}
\newfontfamily\sanskritfont{TeX Gyre Pagella}

\setotherlanguage{english} 
\newfontfamily\englishfont{TeX Gyre Pagella}

\begin{document}

asmadādiviśeṣaṇaśūnyasyārthasākṣātkāritvamātrasyaivendriyādhīnatvadarśanād anaikāntikatvam asambhavīti cet | yady evam arthasākṣātkāritvamātrasyendiryavadālokādhīnatvam upalabdham iti na santamase paśyeyur ulūkādayaḥ | atha vyabhicāradarśanād ālokasyāvyāpakatvam, vyabhicāraśaṅkayā tarhīndriyasyāpy avyāpakatvam | vyāptyā śaṅkā khaṇḍyata iti cet | śaṅkāsambhavād vyāptir evāsambhavinī yadi prathamata eva vyāptiḥ, vyabhicāro 'pi na dṛśyeta | 


\end{document}

サンプル出力

編集: まだ完全には理解できていません。現在、両端のハイフンでつなぐことができる最小文字数を 1 文字に減らそうとしています。

\documentclass[12pt]{article}

\usepackage{fontspec}
\usepackage{polyglossia}
\tracingparagraphs=1
\setdefaultlanguage{sanskrit}
\setotherlanguage{english}

\PolyglossiaSetup{sanskrit}{
  hyphenmins={1,1},
}

\newfontfamily\sanskritfont{TeX Gyre Pagella}
\newfontfamily\englishfont{TeX Gyre Pagella}

\begin{document}

anaikāntikatvam asambhavīti cet | yady evam arthasākṣātkāritvamātrasyendiryavadālokādhīnatvam upalabdham iti na santamase xx paśyeyur ulūkādayaḥ | atha vyabhicāradarśanād ālokasyāvyāpakatvam, vyabhicāraśaṅkayā tarhīndriyasyāpy avyāpakatvam | vyāptyā śaṅkā khaṇḍyata iti cet | śaṅkāsambhavād vyāptir evāsambhavinī yadi prathamata eva vyāptiḥ, vyabhicāro 'pi na dṛśyeta | 


\end{document}

次の出力が得られます。

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

単語がハイフンで区切られず、オーバーフルの \hbox が生成されないことに驚きましたkhaṇḍya-ta。そう期待していたのですが。

ログファイル内:

@firstpass
@secondpass
[]\EU1/TeXGyrePagella(0)/m/n/12 anaikāntikatvam a-sa-mbha-vīti cet | yady e-vam
 a-rtha-sā-kṣā-tkā-ri-tva-mā-
@\discretionary via @@0 b=12 p=50 d=2984
@@1: line 1.2- t=2984 -> @@0
tra-sye-ndi-rya-va-dā-lo-kā-dhī-na-tvam u-pa-la-bdham iti na sa-nta-mase xx pa-
śye-
@\discretionary via @@1 b=26 p=50 d=13796
@@2: line 2.1- t=16780 -> @@1
yur u-lū-kā-da-yaḥ | a-tha vya-bhi-cā-ra-da-rśa-nād ā-lo-ka-syā-vyā-pa-ka-tvam,
 vya-
@\discretionary via @@2 b=56 p=50 d=16856
@@3: line 3.1- t=33636 -> @@2
bhi-cā-ra-śa-ṅkayā ta-rhī-ndri-ya-syāpy a-vyā-pa-ka-tvam | vyā-ptyā śa-ṅkā kha-
ṇḍyata 
@ via @@3 b=* p=0 d=*
@@4: line 4.3 t=33636 -> @@3
iti cet | śa-ṅkā-sa-mbha-vād vyā-ptir e-vā-sa-mbha-vinī yadi pra-tha-mata eva v
yā-
@\discretionary via @@4 b=31 p=50 d=4181
@@5: line 5.3- t=37817 -> @@4
ptiḥ, vya-bhi-cāro 'pi na dṛśyeta | 
@\par via @@5 b=0 p=-10000 d=*
@@6: line 6.2- t=37817 -> @@5

一般的に、最後の音節の前でハイフンを付けたくないのはわかりますが、なぜでしょうか?

答え1

あなたは付け加えられます

\PolyglossiaSetup{sanskrit}{
  hyphenmins={2,3},% default is {1,3}
}

\documentclass[12pt]{article}

\usepackage{fontspec}
\usepackage{polyglossia}

\setdefaultlanguage{sanskrit}
\setotherlanguage{english}

\PolyglossiaSetup{sanskrit}{
  hyphenmins={1,3},
}

\newfontfamily\sanskritfont{TeX Gyre Pagella}
\newfontfamily\englishfont{TeX Gyre Pagella}

\begin{document}

asmadādiviśeṣaṇaśūnyasyārthasākṣātkāritvamātrasyaivendriyādhīnatvadarśanād anaikāntikatvam asambhavīti cet | yady evam arthasākṣātkāritvamātrasyendiryavadālokādhīnatvam upalabdham iti na santamase paśyeyur ulūkādayaḥ | atha vyabhicāradarśanād ālokasyāvyāpakatvam, vyabhicāraśaṅkayā tarhīndriyasyāpy avyāpakatvam | vyāptyā śaṅkā khaṇḍyata iti cet | śaṅkāsambhavād vyāptir evāsambhavinī yadi prathamata eva vyāptiḥ, vyabhicāro 'pi na dṛśyeta | 


\end{document}

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

答え2

この投稿はgithubの問題、彼らはそれを wontfix として閉じました。しかし、その後のスレッドではいくつかの回避策について言及されていました:

  1. \providehyphenmins{sanskrit}{11}いつでもお電話ください\setdefaultlanguage{sanskrit}
  2. マクロを(前、後)\sanskrithyphenminsに設定する11providecommand\setdefaultlanguage{sanskrit}renewcommand
  3. 電話
\lefthyphenmin=1
\righthyphenmin=1

after \begin{document}(\AtBeginDocumentは動作しませんが、etoolbox はAfterEndPreamble動作します)。「ただし、これは言語の変更時に上書きされます。」

方法2の例:

\documentclass{article}

\usepackage[width=4.4in]{geometry}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{sanskrit}
\renewcommand*{\sanskrithyphenmins}{11}
\setotherlanguage{english}

\PolyglossiaSetup{sanskrit}{} % still necessary

\begin{document}

anaikāntikatvam asambhavīti cet | yady evam arthasākṣātkāritvamātrasyendiryavadālokādhīnatvam upalabdham iti na santamase xx paśyeyur ulūkādayaḥ | atha vyabhicāradarśanād ālokasyāvyāpakatvam, vyabhicāraśaṅkayā tarhīndriyasyāpy avyāpakatvam | vyāptyā śaṅkā khaṇḍyata iti cet | śaṅkāsambhavād vyāptir evāsambhavinī yadi prathamata eva vyāptiḥ, vyabhicāro 'pi na dṛśyeta | 

\end{document}

その結果:

例の出力

関連情報