61. ߦׂॲཧΛॏΈ͖ͭ༗ඇ८ճάϥϑ্ͷ࠷ܦ࿏ʹؼண͢Δ
༰ ͱߦࢦఆ ͔Β Λߏ
w ू߹
r ࣜਤɿ
w ลʢ Ͱ ΑΓखલͷʣ
r l Ͱߦׂͯͦ͠ͷ࣍ʹ Ͱߦׂͨ͠ͱ͖ɼ ͱ ͷؒͷ༰Λ
͕͞ ʹͳΔΑ͏ʹߦͱͯ͠Ήͱɼͦͷݟө͑ͷධՁ z
w େ͖͍΄Ͳݟө͕͑ѱ͍͜ͱΛද͢ϖφϧςΟʢܾఆํ๏࣍ทͰઆ໌ʣ
ͷʮઌ಄ʯ͔ΒʮඌʯࢸΔ࠷ܦ࿏ΛٻΊΔͱɼͦΕ͕௨Δ֤͕
ϖφϧςΟ૯Λ࠷খԽ͢Δʢʹ࠷ݟө͑ͷྑ͘ͳΔʣΓ͚Օॴ
ib ℓ G = (V, E; d)
V := ( ib தͷߦׂՄೳͳՕॴશମ ) ⊎ {ઌ಄, ඌ}
ib v v′
v v′ v v′
ℓ p
p
G
,OVUIr1MBTTΞϧΰϦζϜ
v v′
p
ʜ
v1 v2 v3 v4 v5
ઌ಄ ඌ
,OVUI
1MBTT
62. ߦׂީิՕॴ ͱͦͷ࣍ͷީิՕॴ ΛܾΊͨΒɼۭനΛ৳ॖͯ͠
ͱ ͷؒͷ༰͕͞ ʹͳΔΑ͏ʹ͠ɼͦͷݟө͑ΛධՁ
v v′
v v′ ℓ
ߦͷݟө͑ͷධՁํ๏
ℓ
v v′
ݟө͑ධՁͷͨΊʹɼۭന
ࣗવ
৳ͼΔڐ༰ྔ
ॖΉڐ༰ྔ
ͱ͍͏ͭͷύϥϝʔλΛ͍࣋ͬͯΔ
w όωͷΑ͏ͳΠϝʔδ
w ࣗવʹ͍ۙ΄Ͳݟө͕͑ྑ͍
͜ͱΛද͢ɼԼʹತͳධՁവΛͭ ࣗ
વ
࠷
ृѱ
࠷ྑ
ϖ
φ
ϧ
ς
ỹ
࠷
࠷
,OVUI1MBTT
65. w จ൛
r ҎԼͷΑ͏ͳنଇʹ͓͓Αͦ४ڌ
w ʰຊޠ൛ॲཧͷཁ݅ʱɼ௨শ+-SFR8$ຊޠ൛λεΫϑΥʔε
w 6OJDPEF-JOF#SFBLJOHMHPSJUIN6OJDPEF$POTPSUJVN
r େͷจࣈؒߦׂͯ͠Α͍
w ݪଇͱ֤ͯ͠จࣈؒʹࣗવͷۭനΛͭEJTDSFUJPOBSZCSFBL͕ೖΔ
r ͨͩ͠ɼߦ಄ߦېଇ͋Δ
w ߦ಄ෆՄͷจࣈɿด͡ހׅɼ۟ಡɼʮΌʯɼʮʔʯͳͲ
w ߦෆՄͷจࣈɿ։͖Ͳͳހׅ
%JTDSFUJPOBSZCSFBLʹΑΔछʑͷߦׂͷදݱ
{ε / ε}
100
{ε / ε}
100
{ε / ε}
100
{ε / ε}
100
{ε / ε}
100
67. ߦׂॲཧͷར༻ྫ
ஈམΛΉίϚϯυ+p
ࠐΈവline-breakΛ༻͍࣮ͯɿ
ଞͷࠐΈവɿ
w inline-skip
r ࢦఆͨ͠͞ͷ৳ॖͰ͖ͳ͍ۭനΛฦ͢
r ͜͜Ͱஈམ಄ͷࣈԼ͛ʹ༻
w inline-fil
r ࣗવ͕Ͱɼ͔ͭϖφϧςΟͳ͘Ͳ͜·Ͱ৳ͼΒΕΔಛघͳۭന
r ͜͜Ͱʮஈམ࠷ऴߦߦ·Ͱ౸ୡ͠ͳͯ͘Α͍ʯ͜ͱͷ࣮༻ʹݱ
: [inlinetext] blockcmd
: length → inlineboxes
: inlineboxes
let-block ctx +p it =
let ib = read-inline ctx it in
let indent = inline-skip (get-font-size ctx) in
line-break true true ctx (indent ++ ib ++ inline-fil)
ʜ
indent
inline-fil
ib
81. ҎԼͷํʑʹਂ͘ँײਃ্͛͠·͢ɿ
w ։ൃΛࢧԉ͍ͨօ༷
r *1ະ౿*5ਓࡐൃ۷ɾҭࣄۀ
r ࣜגձࣾυϫϯΰʢΞϧόΠτͱͯ͠ʣ
r 5IF45:4'*CPPLΛ͝ߪೖ͍ͨօ༷
w ৺ʹ1VMM3FRVFTUॿݴΛԼͬͨ͞։ൃऀͷօ༷
r %BJLJ.BUTVOBHB matsud224
͞Μɼ%BJDIJ0PIBTIJ leque
͞Μɼ
/PSJBLJ4BLBNPUP na4zagin3
͞Μɼ5BLVNB*TIJLBXB nekketsuuu
͞Μɼ
elpinal͞Μɼ.BTBLJ)BSB qnighy
͞Μɼsakas--͞Μɼଞଟ໊
w ύοέʔδɾपลπʔϧ։ൃऀͷօ༷
w 45:4'*4MBDLɾ45:4'*$POGɼίϛϡχςΟΛӡӦͯ͠Լ͞Δօ༷
r /BPLJ,BOFLP puripuri2100
͞Μɼmonaqa͞Μɼଞଟ໊
ँࣙ
84. • Rowan Davies. A temporal-logic approach to binding-time analysis. In Proc. of LICS’96, pp. 184–195, 1996.
• Sebastian Erdweg and Klaus Ostermann. Featherweight TeX and parser correctness. In SLE 2010. LNCS,
vol. 6563, pp. 397–416, 2011.
• Steve Ganz, Amr Sabry, and Walid Taha. Macros as multi-stage computations: type-safe, generative,
binding macros in MacroML. In Proc. of ICFP’01, pages 74–85, 2001.
• Benedict Gaster and Mark Jones. A polymorphic type system for extensible records and variants, 1996.
• Oleg Kiselyov. The design and implementation of BER MetaOCaml. In Functional and Logic Programming.
FLOPS 2014. Lecture Notes in Computer Science, vol 8475, 2014.
• Donald Knuth and Michael Plass. Breaking paragraphs into lines. So︎ftware–Practice and Experience, 11,
pages 1119–1184, 1981.
• Franklin Liang. Word Hy-phen-a-tion by Com-put-er. Ph. D. thesis, Stanford University, 1983.
• Andres Löh and Ralf Hinze. Open data types and open functions. In Proc. of PPDP’06, pp. 133–144, 2006.
• Atsushi Ohori. A polymorphic record calculus and its compilation. In ACM Transactions on Programming
Languages and Systems, 17(6), pages 844–895, 1995.
• Didier Rémy. Type inference for records in a natural extension of ML. Theoretical Aspects of Object-
Oriented Programming. Types, Semantics and Language Design, pages 67–95, 1993.
• Walid Taha and Tim Sheard. Multi-stage programming with explicit annotations. Theoretical Computer
Science, 248 (1-2), pp. 211–242, 2000.
• Unicode Consortium. Unicode Standard Annex #14: Unicode Line Breaki︎ng Algorithm (Unicode 10.0.0).
http://unicode.org/reports/tr14/, 2017.
• W3C ຊޠ൛λεΫϑΥʔεʰW3C ٕज़ϊʔτ ຊޠ൛ॲཧͷཁ݅ʱ౦ػిژେֶग़൛ہ, 2012.
ࢀߟจݙ