Frontttalks nov2013

Post on 16-Jun-2015

610 views 1 download

Tags:

Transcript of Frontttalks nov2013

Justify, от которого не тошнитАлексей Иванов (@iadramelk) и Александр Остапенко (@alexalx13)

www.princexml.com
Prince - Non-commercial License
This document was created with Prince, a great way of getting web content onto paper.

Типографика1. mdash.ru

2. Типограф Лебедева

3. Тысячи других

Библиотеки для расстановки переносов1. hyper.js + Словарь переносов

2. hypenator.js

3. http://quittance.ru/hyphenator.php

4. http://quittance.ru/blog/index.php?category=21 - описание алгоритма

Правильная настройка переносов1. Минимальная длина для оставляемого куска 3 символа.

2. Минимальная длина для переносимого куска 3 символа.

3. Не допускается разделение переносами сокращений, набираемых

прописными буквами (ВЛКСМ), прописными с отдельными строчными

(КЗоТ) и с цифрами (ФАIООО).

4. Переносить последнее слово в абзаце не рекомендуется.

Алгоритм Кнута-ПлассаРеализация для веба: http://www.bramstein.com/projects/typeset/

• Бокс: Базовый блок текста, у него есть ширина.

• Клей: Элемент с изменяемым размером. У него есть три параметра:

Базовая ширина, насколько его можно растянуть, насколько его можно

сжать. Пример: 1/3, 5/12, 1/12.

• Штраф: Место где допустим или недопустим перенос. У него есть

ширина и коэффицент штрафа и флаг.

Пример разбитого предложенияВошел ямщик просить на водку.

box (w(indent)) — параграфный отступpenalty (0, ∞, false) — запрет переносаbox (w("вошел")) — "вошел"glue (1em/3, 5em/12, 1em/12) — пробелbox (w("ямщик")) — "ямщик"glue (1em/3, 5em/12, 1em/12) — пробелbox (w("про")) — "про"penalty (w('-'), 100, true) — мягкий переносbox (w("сить")) — "сить"glue (1em/3, 5em/12, 1em/12) — пробелbox (w("на")) — "на"penalty (0, ∞, false) — запрет переносаglue (1em/3, 5em/12, 1em/12) — пробелbox (w("водку")) — "водку."penalty (0, ∞, false) — запрет переносаglue (0, ∞, 0) — пробел а последней строкеpenalty (0, —∞, false) — принудительный перенос

01.02.03.04.05.06.07.08.09.10.11.12.13.14.15.16.17.

Ссылки• Где поиграться: http://github.com/ridero/fronttalks

• Когда-нибудь тут будет сервис по подготовке книг к печати:

http://ridero.ru

• Мы в Твиттере: @iadramelk и @alexalx13

• Вопросы?