Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introducing SILE: A New Typesetting System

849 views

Published on

SILE is a system for creating beautiful printed documents. It borrows extensively from TeX, but brings some of TeX's ideas into the 21st century with frame-based layouts, native support for Unicode, PDF, Opentype and XML processing, and extensibility and programmability in a modern, high-level language.

Hello, my name's Simon and I wrote a typesetting system by mistake. Then I found out that people needed to use it. Come and hear about how SILE got started, how it's developed since then, and how you can use it to make printed documents.

SILE is a typesetter designed to meet the needs of a particular translation community, with an emphasis on extensibility and layout flexibility. Existing solutions (TeX and friends) were not able to provide the required features in these areas, and so translators and publishers have been looking around for an alternative solution for many years. SILE takes a lot of inspiration from TeX, but updates many of its ideas to match the changes in the software ecosystem in the past 35 years.

SILE does not, however, aim to be a replacement for TeX, but is a separate system for document layout and rendering. Because of this, functionality which is a challenge for TeX users - for instance, laying out text on a grid, or magazine-style frame based layouts - becomes very easy in SILE. SILE is written in an interpreted language, so parts of the system's operation, including core typesetting algorithms, can be redefined at run time.

SILE is also designed to meet the realities of today's data processing. Documents these days are often prepared in authoring software and stored in XML format. This applies both to document-specific XML DTDs, such as DocBook and the Text Encoding Initiative, and also tagged text database formats, such as those for storing linguistic and other annotation data such as the LIFT standard for dictionary data and the USX format used by translators. SILE classes can define processing expectations for XML elements, which means that XML files can then be read in and typeset directly. We will look at examples of complex book layouts driven by XML data sources.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Introducing SILE: A New Typesetting System

  1. 1. Introducing SILE A New Typesetting System
  2. 2. Wide Margin
  3. 3. % cat > specfile.txt pages: 160 title: Asian Christian Encounters author: Kang-San Tan isbn: 9780956594365 blurb: … % perl cover.pl specfile.txt
  4. 4. Academical
  5. 5. 370 PART 38: BREAKING PARAGRAPHS INTO LINES XETEX §855 procedure try break (pi : integer ; break type : small number ); label exit, done, done1 , continue, deactivate, found , not found ; var r: pointer ; { runs through the active list } prev r : pointer ; { stays a step behind r } old l : halfword ; { maximum line number in current equivalence class of lines } no break yet: boolean; { have we found a feasible break at cur p? } ⟨ Other local variables for try break 856 ⟩ begin ⟨ Make sure that pi is in the proper range 857 ⟩; stat if tracing paragraphs > 0 then begin begin diagnostic; print nl ("@␣Inside␣try_break"); end; tats no break yet ← true; prev r ← active; old l ← 0; do all six (copy to cur active); loop begin continue: r ← link (prev r ); ⟨ If node r is of type delta node, update cur active width, set prev r and prev prev r , then goto continue 858 ⟩; ⟨ If a line number class has ended, create new active nodes for the best feasible breaks in that class; then return if r = last active, otherwise compute the new line width 861 ⟩; ⟨ Consider the demerits for a line from r to cur p; deactivate node r if it should no longer be active; then goto continue if a line from r to cur p is infeasible, otherwise record a new feasible break 877 ⟩; end; exit: stat ⟨ Update the value of printed node for symbolic displays 884 ⟩ tats end; 856. ⟨ Other local variables for try break 856 ⟩ ≡ prev prev r : pointer ; { a step behind prev r , if type(prev r ) = delta node } s: pointer ; { runs through nodes ahead of cur p } q: pointer ; { points to a new node being created } v: pointer ; { points to a glue specification or a node ahead of cur p } t: integer ; { node count, if cur p is a discretionary node } f: internal font number ; { used in character width calculation } l: halfword ; { line number of current active node }
  6. 6. http://www.bramstein.com/projects/typeset/
  7. 7. W 9 780956 594365 Wide Margin ISBN 978-0-9565943-6-5 Academical Th t d pr v d rv f J p n h h r h l d r , pl d th l l n l f l d r h p p tt rn n J p n f d pr r l n th l d r h p f v l nt r r n t n nd h t r l r v f h h r h v nt , t d t r n th f r nd f n t n f l d r nd l d r h p th n th v nt . Th f nd n r th t l d r h p f n t n nd n t r l , ft n t r n th d pl n , nd n b h r t r z d pr r n t r f th nt n n f r p h n. Th t d pr v d rv f J p n h h r h l d r , pl d th l l n l f l d r h p p tt rn n J p n f d pr r l n th l d r h p f v l nt r r n t n nd h t r l r v f h h r h v nt , t d t r n th f r nd f n t n f l d r nd l d r h p th n th v nt . Th f nd n r th t l d r h p f n t n nd n t r l , ft n t r n th d pl n , nd n b h r t r z d pr r n t r f th nt n n f r p h n.
  8. 8. + ??? = Knuth-Liang Hyphenation Algorithm ✔ Knuth-Plass Justification Algorithm + ✔ Input PDF
  9. 9. INTERMISSION
  10. 10. PRE-INTERMISSION INTERMISSION
  11. 11. SILE Is Not T XE
  12. 12. INTERMISSION
  13. 13. Hyphenation & Justification Input Macro processor METAFONT TFM Page Breaking Fonts DVI DVI processor Output Virtual Fonts Direct output (pstex, pdftex) System font library (xetex) Embedded programming language (luatex)
  14. 14. END OF INTERMISSION
  15. 15. Hyphenation & Justification Input METAFONT TFM Page Breaking Fonts DVI DVI processor Output Cairo Pango Embedded programming language (Javascript) Frame abstraction XML processor
  16. 16. <sile papersize="129mm x 198mm"> <script src="packages/grid.js"/> <define command="center"> <glue stretch="10000"/><process/><glue ↩ stretch="10000"/> </define> <define command="headline"> <skip height="1cm"/> <font family="Frutiger LT Std" weight="700"↩ size="20"><center><process/></center></font> <skip height="0.5cm"/> </define> <headline>A Scandal In Belgravia</headline>
  17. 17. Hard things about Bible typesetting
  18. 18. Contextual shaping ‫ههه‬ U+0647 ARABIC LETTER HEH Standard Arabic Sindhi Urdu
  19. 19. Language-specific typesetting conventions
  20. 20. Really thin paper
  21. 21. Plus foot + side notes
  22. 22. Columns, balancing and page breaks Chapter Header Cross References
  23. 23. Diglots and Parallels Chapter Header Cross References Chapter Header Cross References 10 10
  24. 24. Diglots and Parallels Chapter Header Cross References Chapter Header Cross References 10 10
  25. 25. How does SILE help?
  26. 26. Hyphenation & Justification Input Page Breaking Fonts Cairo Output libtexpdf Embedded programming language (Lua) Frame abstraction XML Input handler TeX-like Input handler … Fontconfig + Harfbuzz Pango podofo
  27. 27. Frames
  28. 28. The SILE Show-off Document S ILE is a typesetting sys- tem. Its job is to pro- duce beautiful printed doc- uments. It’s similar to TeX, but with some ideas borrowed from InDesign, and written with mod- ern technologies in mind. Let’s demonstrate some of the things which are interesting about SILE. On this page, we are demonstrating SILE’s frame capa- bilities. SILE’s frame system allows you to declare areas of the page where your text should be set. The frames are specified declarative- ly; this means that you say that, for instance, the first two columns on this page must have the same width, and sit either side of a gut- ter of a particular size. For this page we have also declared a sidebar frame of a par- ticular width (200pt), and a box at the bottom of the page. The two columns will be flowed frames. In other words, once this left column is full, text will begin again on the right column. However, the side- bar frame and the bottom frame are not flowed frames; text will not spill over into them, but we will enter text into those sepa- rately. I’m not really expecting you to use this kind of magazine-style layout in your documents, but this is a demonstration of what you can do with the ability to define frames. Here is some more text for the sake of padding out the columns. lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor in- vidunt ut labore et dolore ma- gna aliquyam erat sed diam volup- tua at vero eos et accusam et ju- sto duo dolores et ea rebum stet clita kasd gubergren no sea taki- mata sanctus est lorem ipsum do- lor sit amet lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore ma- gna aliquyam erat sed diam volup- tua at vero eos et accusam et ju- sto duo dolores et ea rebum stet clita kasd gubergren no sea taki- mata sanctus est lorem ipsum do- lor sit Now I will typeset some text on the other frames of this page. The Bottom Frame Here we are in the bottom frame. This frame stretches across the full width of the first two columns on the page, but it doesn’t stretch as far as the third column. I’ve defined this frame to be precisely 90pt high, and so the Table of Contents Frames 1 Multilingual capabilities 2 Typesetting on a grid 3
  29. 29. Cassowary constraint solver x + width >= 100 width := 90 x ?
  30. 30. Cassowary and Frames a: left=5%, right=48.5%
 
 b: left=51.5%, right=95% A B gutter
  31. 31. Cassowary and Frames gutter: width=3%
 
 a: left=5%, right=left(gutter)
 
 b: left=right(gutter), right=95% A B gutter
  32. 32. Options for footnote frames L R F L R F L R LF RF
  33. 33. Drop Caps are easy S ileum ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  34. 34. Embedded Programming Language
  35. 35. robust@def*cptdofunclist{% cptpushnumberdofunclistdepth begingroup edefsav@do{cptmakecs{sav@do@cptrmdofunclistdepth}}% expandafterletsav@dodo expandaftercptdelimitcssav@docpt@nil toks@{defcsv@do##1}% toks1expandafter{expandafterexpandaftersav@do cptrmifbracedTF{##1}{0{##1}}{0 ##1}cpt@nil}% expandafterexpandafterendgroupexpandafter theexpandaftertoks@expandafter{thetoks1}% csv@@parse }
  36. 36. robust@def*cptdofunclist{% cptpushnumberdofunclistdepth begingroup edefsav@do{cptmakecs{sav@do@cptrmdofunclistdepth}}% expandafterletsav@dodo expandaftercptdelimitcssav@docpt@nil toks@{defcsv@do##1}% toks1expandafter{expandafterexpandaftersav@do cptrmifbracedTF{##1}{0{##1}}{0 ##1}cpt@nil}% expandafterexpandafterexpandafterendgroupexpandafter theexpandaftertoks@expandafter{thetoks1}% csv@@parse }
  37. 37. “Programming in TeX is an art practiced only by a few devoted disciples, mere mortals are forbidden to even attempt it.”
 - Till Tantau
  38. 38. define[command=em]{↩ font[style=italic]{process}↩ } em{I am italicised}
  39. 39. define[command=tableofcontents:headerfont]{
 font[size=24pt,weight=800]{process}
 } define[command=tableofcontents:notocmessage{
 tableofcontents:headerfont{
 Rerun SILE to process table of contents! } } define[command=tableofcontents:header]{ parnoindenttableofcontents:headerfont{Table of Contents}medskip }
  40. 40. SILE.registerCommand("lorem", function(options, content) local words = tonumber(options.words) or 50 local s = lorem(words) % defined elsewhere SILE.settings.temporarily(function() SILE.settings.set("document.language","la") SILE.typesetter:typeset(s) SILE.call("par") end) end) script[src=packages/lorem.lua] lorem[words=20]
  41. 41. Docbook PDF
  42. 42. <sile papersize="129mm x 198mm"> <define command="center"> <glue stretch="10000"/><process/><glue stretch="10000"/> </define> <define command="headline"> <skip height="1cm"/> <font family="Frutiger LT Std" weight="700" size="20"><center><process/></center></font> <skip height="0.5cm"/> </define> <headline>A Scandal In Belgravia</headline>
  43. 43. sile -I docbook foo.xml SILE.registerCommand("link", function(options, content) SILE.process(content) if (options["xl:href"]) then SILE.typesetter:typeset(" (") SILE.call("code", {}, {options["xl:href"]}) SILE.typesetter:typeset(")") end end) begin[papersize=a4,class=docbook]{document}% … define[command=abbrev]{ ↩ font[variant=smallcaps]{process}}% define[command=title]{em{process}}%
  44. 44. Small, extensible core SILE Core (~3000 lines of Lua) Document classes Language support Packages
  45. 45. Hyphenation & Justification Input Page Breaking Fonts DVI DVI processor Output libtexpdf Fontconfig + Harfbuzz Embedded programming language (Lua) Frame abstraction XML Input handler TeX-like Input handler …
  46. 46. Diglots and Parallels Chapter Header Cross References Chapter Header Cross References 10 10
  47. 47. 1 This is the genealogy of Jesus the Mes- siah the son of David, the son of Abra- ham: 2 Abraham was the father of Isaac, Isaac the father of Jacob, Jacob the father of Judah and his brothers, 3 Judah the father of Perez and Zerah, whose mother was Tamar, Perez the fa- ther of Hezron, Hezron the father of Ram, 4 Ram the father of Amminadab, Ammi- nadab the father of Nahshon, Nahshon the father of Salmon, 5 Salmon the father of Boaz, whose mother was Rahab, Boaz the father of Obed, whose mother was Ruth, Obed the father of Jesse, 1 Βίβλος γενέσεως Ἰησοῦ χριστοῦ υἱ- οῦ Δαυὶδ υἱοῦ Ἀβραάμ. 2 Ἀβραὰμ ἐγέννησεν τὸν Ἰσαάκ, Ἰσα- ὰκ δὲ ἐγέννησεν τὸν Ἰακώβ, Ἰακὼβ δὲ ἐγέννησεν τὸν Ἰούδαν καὶ τοὺς ἀδελ- φοὺς αὐτοῦ, 3 Ἰούδας δὲ ἐγέννησεν τὸν Φαρὲς καὶ τὸν Ζάρα ἐκ τῆς Θαμάρ, Φαρὲς δὲ ἐ- γέννησεν τὸν Ἑσρώμ, Ἑσρὼμ δὲ ἐγέν- νησεν τὸν Ἀράμ, 4 Ἀρὰμ δὲ ἐγέννησεν τὸν Ἀμιναδάβ, Ἀμιναδὰβ δὲ ἐγέννησεν τὸν Ναασσώ- ν, Ναασσὼν δὲ ἐγέννησεν τὸν Σαλ- μών, 5 Σαλμὼν δὲ ἐγέννησεν τὸν ⸂Βόες ἐκ τῆς Ῥαχάβ, Βόες⸃ δὲ ἐγέννησεν τὸν ⸂Ἰωβὴδ ἐκ τῆς Ῥούθ, Ἰωβὴδ⸃ δὲ ἐγέν- νησεν τὸν Ἰεσσαί,
  48. 48. ΚΑΤΑ ΜΑΘΘΑΙΟΝ Chapter 1 1 Βίβλος γενέσεως Ἰησοῦ χριστοῦ υἱοῦ Δαυὶδ υἱοῦ Ἀβραάμ. 2 Ἀβραὰμ ἐγέννησεν τὸν Ἰσαάκ, Ἰσαὰκ δὲ ἐγέννησεν τὸν Ἰακώβ, Ἰακὼβ δὲ ἐγέννη- σεν τὸν Ἰούδαν καὶ τοὺς ἀδελφοὺς αὐτοῦ, 3 Ἰούδας δὲ ἐγέννησεν τὸν Φαρὲς καὶ τὸν Ζά- ρα ἐκ τῆς Θαμάρ, Φαρὲς δὲ ἐγέννησεν τὸν Ἑσρώμ, Ἑσρὼμ δὲ ἐγέννησεν τὸν Ἀράμ, 4 Ἀρὰμ δὲ ἐγέννησεν τὸν Ἀμιναδάβ, Ἀμινα- δὰβ δὲ ἐγέννησεν τὸν Ναασσών, Ναασσὼν δὲ ἐγέννησεν τὸν Σαλμών, 5 Σαλμὼν δὲ ἐ- γέννησεν τὸν ⸂Βόες ἐκ τῆς Ῥαχάβ, Βόες⸃ δὲ ἐγέννησεν τὸν ⸂Ἰωβὴδ ἐκ τῆς Ῥούθ, Ἰωβὴδ⸃ δὲ ἐγέννησεν τὸν Ἰεσσαί, 6 Ἰεσσαὶ δὲ ἐγέν- νησεν τὸν Δαυὶδ τὸν βασιλέα. Δαυὶδ ⸀δὲ ἐγέννησεν τὸν Σολομῶνα ἐκ τῆς τοῦ Οὐρίου, 7 Σολομὼν δὲ ἐγέννησεν τὸν Ῥοβοάμ, Ῥοβοὰμ δὲ ἐγέννησεν τὸν Ἀβιά, Ἀβιὰ δὲ ἐγέννησεν τὸν ⸂Ἀσάφ, 8 Ἀσὰφ⸃ δὲ ἐγέννησεν τὸν Ἰωσαφάτ, Ἰωσαφὰτ δὲ ἐγέν- νησεν τὸν Ἰωράμ, Ἰωρὰμ δὲ ἐγέννησεν τὸν Ὀζίαν, 9 Ὀζίας δὲ ἐγέννησεν τὸν Ἰωαθάμ, Ἰωαθὰμ δὲ ἐγέννησεν τὸν Ἀχάζ, Ἀχὰζ δὲ ἐγέννησεν τὸν Ἑζεκίαν, 10 Ἑζεκίας δὲ ἐγέν- νησεν τὸν Μανασσῆ, Μανασσῆς δὲ ἐγέννησεν τὸν ⸂Ἀμώς, Ἀμὼς⸃ δὲ ἐγέννησεν τὸν Ἰωσίαν, 11 Ἰωσίας δὲ ἐγέννησεν τὸν Ἰεχονίαν καὶ τοὺς ἀδελφοὺς αὐτοῦ ἐπὶ τῆς μετοικεσίας Βαβυ- λῶνος. 12 Μετὰ δὲ τὴν μετοικεσίαν Βαβυλῶνος Ἰεχονίας ἐγέννησεν τὸν Σαλαθιήλ, Σαλαθιὴλ δὲ ἐγέννησεν τὸν Ζοροβαβέλ, 13 Ζοροβαβὲλ δὲ ἐγέννησεν τὸν Ἀβιούδ, Ἀβιοὺδ δὲ ἐγέν- νησεν τὸν Ἐλιακίμ, Ἐλιακὶμ δὲ ἐγέννησεν τὸν Ἀζώρ, 14 Ἀζὼρ δὲ ἐγέννησεν τὸν Σα- δώκ, Σαδὼκ δὲ ἐγέννησεν τὸν Ἀχίμ, Ἀχὶμ δὲ ἐγέννησεν τὸν Ἐλιούδ, 15 Ἐλιοὺδ δὲ ἐγέννη- σεν τὸν Ἐλεάζαρ, Ἐλεάζαρ δὲ ἐγέννησεν τὸν Ματθάν, Ματθὰν δὲ ἐγέννησεν τὸν Ἰακώβ, 16 Ἰακὼβ δὲ ἐγέννησεν τὸν Ἰωσὴφ τὸν ἄνδρα Μαρίας, ἐξ ἧς ἐγεννήθη Ἰησοῦς ὁ λεγόμενος χριστός. 17 Πᾶσαι οὖν αἱ γενεαὶ ἀπὸ Ἀβραὰμ ἕως Δαυὶδ γενεαὶ δεκατέσσαρες, καὶ ἀπὸ Δαυὶδ ἕως τῆς μετοικεσίας Βαβυλῶνος γενεαὶ δεκα- τέσσαρες, καὶ ἀπὸ τῆς μετοικεσίας Βαβυλῶνος 3
  49. 49. But so that you may know that the Son of Man has authority on earth to forgive sins,”–he said to the paralytic– “I tell you, stand up, take your stretcher, and go home.” And immediately the man stood up, took his stretcher, and went out in front of them all. They were all amazed and glorified God, saying, “We have never seen anything like this!” Jesus went out again by the sea. The whole crowd came to him, and he taught them. As he went along, he saw Levi, the son of Alphaeus, sitting at the tax booth. “Follow me,” he said to him. And he got up and followed him. As Jesus was having a meal in Levi’s home, many tax collectors and sinners were eating with Jesus and his disciples, for there were many who followed him. When the experts in the law and the Pharisees saw that he was eating with sinners and tax collectors, they said to his disciples, “Why does he eat with tax collectors and sinners?” When Jesus heard this he said to them, “Those who are healthy don’t need a physician, but those who are sick do. I have not come to call the righteous, but sinners.” Now John’s disciples and the Pharisees were fasting. So they came to Jesus and said, “Why do the disciples of John and the disciples of the Pharisees fast, but your disciples don’t fast?” Jesus said to them, “The wedding guests cannot fast while the bridegroom is with them, can they? As long as they have the bridegroom with them they do not fast. But the days are coming when the bridegroom will be taken from them, and at that time they will fast. No one sews a patch of unshrunk cloth on an old garment; otherwise, the patch pulls away from it, the new from the old, and the tear becomes worse. And no one pours new wine into old wineskins; otherwise, the wine will burst the skins, and both the wine and the skins will be de- stroyed. Instead new wine is poured into new wineskins.” Jesus was going through the grain fields on a Sabbath, and his disciples began to pick some heads of wheat as they made their way. So the Pharisees said to him, “Look, why are they doing what is against the law on the Sabbath?” He said to them, “Have you never read what David did when he was in need and he and his companions were hungry– how he entered the house of God when Abiathar was high priest and ate the sa- cred bread, which is against the law for any but the priests to eat, and also gave it to his companions?” Then he said to them, “The Sabbath was made for people, not people for the Sabbath. For this reason the Son of Man is lord even of the Sabbath.” Then Jesus entered the synagogue again, and a man was there who had a withered hand. They watched Jesus closely to see if he would heal him on the Sabbath, so that they could ac- cuse him. So he said to the man who had the withered hand, “Stand up among all these people.” Then he said to them, “Is it lawful to do good on the Sabbath, or evil, to save a life or de- stroy it?” But they were silent. After looking around at them in anger, grieved by the hardness of their hearts, he said to the man, “Stretch out your hand.” He stretched it out, and his hand was restored. So the Pharisees went out immediately and began plotting with the Herodians, as to how they could assassinate him. Then Jesus went away with his disciples to the sea, and a great multitude from Galilee followed him. And from Judea, Jerusalem, Idumea, beyond the Jordan River, and around Tyre and Sidon a great multitude came to him when they heard about the things he had done. Because of the crowd, he told his disciples to have a small boat ready for him so the crowd demons. He appointed twelve: To Simon he gave the name Pe- ter; to James and his brother John, the sons of Zebedee, he gave the name Boanerges (that is, “sons of thunder”); and Andrew, Philip, Bartholomew, Matthew, Thomas, James the son of Al- phaeus, Thaddaeus, Simon the Zealot, and Judas Iscariot, who betrayed him. Now Jesus went home, and a crowd gathered so that they were not able to eat. When his family heard this they went out to restrain him, for they said, “He is out of his mind.” The ex- perts in the law who came down from Jerusalem said, “He is possessed by Beelzebul,” and, “By the ruler of demons he casts out demons.” So he called them and spoke to them in parables: “How can Satan cast out Satan? If a kingdom is divided against itself, that kingdom will not be able to stand. If a house is di- vided against itself, that house will not be able to stand. And if Satan rises against himself and is divided, he is not able to stand and his end has come. But no one is able to enter a strong man’s house and steal his property unless he first ties up the
  50. 50. ἅγιος adj. 1. holy 2. saint ἅλις adv. 1. enough (Euripides) 2. sufficeth ἅλλομαι verb. 1. leapt (Homer) ἅλμη noun. f. 1. brine 2. brine from ἅλς noun. f. 1. sea (Homer) 2. salt ἅλυσις noun. f. 1. chain ἅλωσις noun. f. 1. capture (Pausanias) ἅμα adv. 1. same time 2. with 3. at 4. at once 5. together ἅμιλλα noun. f. 1. rivalry ἅπαξ adv. 1. once 2. have once (Epictetus) 3. has once 4. once only 5. had once ἅπας adj. 1. all 2. whole 3. every 4. everything ἅπτω verb. 1. touch (Plato) ἅρμα noun. n. 1. chariot 2. car (Homer) ἅρπαξ noun. m. 1. harpago ἅτε adv. 1. since (Plato) 2. since they (Plato) 3. inasmuch as (Xenophon) ἁγνός adj. 1. holy (Aeschylus) adv. ἁλίσκομαι verb. 1. capture 2. convict (Demosthenes) 3. be convicted (Demosthenes) 4. was captured (Strabo) 5. be taken (Flavius Josephus) 6. was taken 7. be caught (Xenophon) 8. were captured (Xenophon) ἁλίζω verb. 1. so much as ἁλιεύς noun. m. 1. fisherman (Pausanias) ἁλμυρός adj. 1. salt (Homer) 2. salty ἁμάρτημα noun. n. 1. error (Plato) 2. sin (Flavius Josephus) 3. offence (Lysias) 4. fault (Epictetus) 5. mistake 6. blunder ἁμαρτάνω verb. 1. miss (Homer) 2. err 3. sin 4. mistake 5. error (Aristotle) 6. fault (Epictetus) ἁμαρτία noun. f. 1. sin 2. error 3. mistake ἁμαρτωλός adj. 1. sinner ἁνδάνω verb. 1. found favour ἁπαλός adj. 1. tender (Homer) ἁπλόος adj. 1. simple 2. straightforward ἁπλός adv. 1. absolute (Aristotle) 2. simp 3. in short (Epicte- tus) ἁπλότης noun. f. 1. straightforwardness ἁρμάμαξα noun. f. 1. carriage (Xenophon) ἁρμόζω verb. 1. fit 2. suitable (Aristotle) 3. harmonize ἁρμονία noun. f. 1. harmony (Plato) ἁρπάζω verb. 1. seize (Flavius Josephus) 2. snatch (Euripi- des) 3. plunder 4. carried off ἁρπαγή noun. f. 1. plunder (Flavius Josephus) 2. rapine ἄαπτος adj. 1. invincible (Homer) ἄατος adj. 1. ear (Plato) 2. insatiate (Homer) ἄβατος adj. 1. impassable 2. inaccessible ἄβιος adj. 1. abii (Strabo) ἄβυσσος adj. 1. abyss ἄξενος adj. 1. inhospitable ἄξιος adj. 1. worthy 2. worth 3. deserve 4. value ἄξων noun. m. 1. axle (Xenophon) ἄδεια noun. f. 1. impunity (Demosthenes) 2. security 3. im- munity (Demosthenes) ἄδηλος adj. 1. uncertain 2. uncertainty ἄδικος adj. 1. unjust (Plato) 2. injustice 3. wrong (Plato) 4. wrongful (Plato) 5. unjust man (Plato) adv. 1. unjust (Lysi- as) ἄδοξος adj. 1. inglorious ἄδολος adj. 1. without treachery 2. without fraud 3. with- out guile adv. ἄεισμα noun. n. 1. ode (Plato) 2. lyric (Pausanias) ἄφαρ adv. 1. straightway she ἄφεσις noun. f. 1. remission ἄφιλος adj. 1. friendless adv. ἄφνω adv. 1. sudden (Appian) ἄφοβος adj. 1. fearless (Plato) adv. ἄφθαρτος adj. 1. imperishable (Aristotle) ἄφθιτος adj. 1. imperishable (Homer) ἄφθονος adj. 1. abundance (Xenophon) 2. abundant ἄφρων adj. 1. foolish (Plato) 2. fool 3. unwise (Plato) 4. senseless (Plato) 5. unintelligent (Plato) 6. witless adv. ἄφωνος adj. 1. mute 2. voiceless ἄγαλμα noun. n. 1. image (Pausanias) 2. statue (Pausanias) 1
  51. 51. འདི་སྐད་བདག་གིས་ཐོས་པ་དུས་གཅིག་ན། བཅོམ་ལྡན་འདས་རྒྱལ་པོའི་ཁབ་བྱ་རྒོད་ཕུང་པོའི་རི་ལ་དགེ་སློང་གི་ དགེ་འདུན་ ཆེན་པོ་དང་། བྱང་ཆུབ་སེམས་དཔའི་དགེ་འདུན་ཆེན་པོ་དང་ཐབས་གཅིག་དུ་བཞུགས་ཏེ། དེའི་ཚེ་བཅོམ་ལྡན་འདས་ཟབ་མོ་སྣང་ བ་ཞེས་བྱ་བའི་ ཆོས་ཀྱི་རྣམ་གྲངས་ཀྱི་ཏིང་ངེ་འཛིན་ལ་སྙོམས་པར་ བཞུགས་སོ།། ཡང་དེའི་ཚེ་བྱང་ཆུབ་སེམས་དཔའ་ སེམས་དཔའ་ཆེན་པོ་འཕགས་པ་ སྤྱན་རས་གཟིགས་དབང་ཕྱུག་ ཤེས་རབ་ཀྱི་ཕ་རོལ་ཏུ་ ཕྱིན་པ་ཟབ་མོའི་སྤྱོད་པ་ཉིད་ལ་རྣམ་ པར་བལྟ་ཞིང་། ཕུང་པོ་ལྔ་དེ་དག་ལ་ཡང་ རང་བཞིན་གྱིས་སྟོང་པར་རྣམ་པར་བལྟའོ།། དེ་ནས་སངས་རྒྱས་ཀྱི་མཐུས། ཚེ་ དང་ལྡན་པ་ཤཱ་རིའི་བུས་བྱང་ཆུབ་སེམས་དཔའ་སེམས་དཔའ་ ཆེན་པོ་འཕགས་པ་སྤྱན་རས་གཟིགས་དབང་ཕྱུག་ལ་འདི་སྐད་ཅེས་ ཤེས་རབ་སྙིང་པོ་ 1
  52. 52. ➠ ✞「 ✔! ~! 」 ➠ ✔! ~! xxx xxx ➠ xxx ✞「 」 ✞「 」 ~! ➠ xxx ✔!
  53. 53. Your Article Name Jirka Kosek jirka@kosek.cz http://xmlguru.cz Jirka Kosek is a freelance XML consultant and teacher at the University of Economics in Prague. He has more than 10 years of experience in providing XML consultancy and training. Jirka is an active member in several standardization bodies, including OASIS (DocBook TC and RELAX NG TC), the W3C (XSL WG and ITS WG), and ISO/IEC JTC1/SC34 (DSDL, Topic Maps). You can get familiar with his recent work and thoughts through his blog (http://xmlguru.cz). He's currently engaged in preparing the next XML Prague conference. freelance ACME Leading text before the first section can be there… … and there 1 Introduction Introductory section goes here… … more text … 2 Another section You can use not only paragraphs, but also programlistings: �������� ������������������������������������� �� ������������� ��������������� ���������� �� � ������ ����� ��������������� ���������� DocBook offers plenty of elements for inline markup, for example <code> for arbitrary code, e.g. print 2+3;. You can give titles to your programlistings using <example>: Example 1: DocBook V4.5 document ����� ������������� ������������������ ��������� ������� ������ �������������� ������� ��� ��������� ��������������������������������������������������������� �������� ���������� ������������� ��������������� ���������� �� � ���� ����� ��������������� ���������� Lists can be created using <itemizedlist> or <orderedlist> elements: • DocBook V4.x is feature frozen. DocBook V4.5 is the last version of DocBook in the V4.x series. Any new DocBook development, like the addition of new elements, will be done in DocBook V5.0. It is only matter of time before useful, new elements will be added into DocBook V5.0, but they are not likely to be back ported into DocBook V4.x. DocBook V4.x will be in maintenance mode and errata will be published if necessary. • DocBook V5.0 offers new functionality. DocBook V5.0 provides significant improvements over DocBook V4.x. For example there is general markup for annotations, a new and flexible system for linking, and unified markup for information sections using the 1
  54. 54. Things I learnt
  55. 55. Lua
  56. 56. PDF Libraries
  57. 57. Simon’s Law of Extensibility A system which can be extended in multiple dimensions cannot prevent conflict between extensions.
  58. 58. “Hacker” News
  59. 59. I need to avoid buses
  60. 60. The Future of SILE
  61. 61. Technical goals • Vertical typesetting • PDF outline features • Split off libtexpdf
  62. 62. Community goals
  63. 63. Thank you http://www.sile-typesetter.org/ google://sile+typesetter
  64. 64. Bonus Material
  65. 65. Context: Columns and notes http://tex.stackexchange.com/questions/67078/ text-in-outer-margin-of-multiple-columns
  66. 66. Context: Grid and notes

×