
(Im Zusammenhang mit meiner anderen FrageHier.) Es scheint, dass die Polyglossie-Silbentrennungsregeln für transliteriertes Sanskrit standardmäßig eine Silbentrennung nach einem einzelnen Zeichen zulassen. Siehe das Beispiel, das Wort ulūkādayaḥ
zwischen der dritten und vierten Zeile wird nach nur einem Zeichen getrennt. Wie könnte ich das ändern, sodass es beispielsweise zwei Zeichen sind?
\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}
Edit: Ich verstehe es immer noch nicht ganz. Ich versuche jetzt, die Mindestanzahl an mit Bindestrichen verknüpfbaren Zeichen an beiden Enden auf eins zu reduzieren:
\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}
Und erhalten Sie die folgende Ausgabe:
Ich bin überrascht, dass das Wort, das die überfüllte \hbox erzeugt, nicht getrennt wird, ich hätte das erwartet khaṇḍya-ta
.
In der Protokolldatei:
@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
Ich sehe, dass es im Allgemeinen nicht vor der letzten Silbe einen Bindestrich geben möchte. Warum ist das so?
Antwort1
Du kannst hinzufügen
\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}
Antwort2
Dieser Beitrag führte zu einemGitHub-Problem, das sie mit der Begründung geschlossen haben, dass es nicht behoben werden kann. Im darauffolgenden Thread wurden jedoch mehrere Workarounds erwähnt:
- Rufen Sie
\providehyphenmins{sanskrit}{11}
jederzeit an, bevor\setdefaultlanguage{sanskrit}
- Stellen Sie das Makro
\sanskrithyphenmins
auf11
(providecommand
vorher\setdefaultlanguage{sanskrit}
,renewcommand
nachher) ein. - Anruf
\lefthyphenmin=1
\righthyphenmin=1
danach \begin{document}
( \AtBeginDocument
funktioniert nicht, etoolbox AfterEndPreamble
schon). „Aber das wird bei jeder Sprachänderung überschrieben.“
Ein Beispiel für Methode 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}
Ergebend: