[TeX] Вопрос про перенос на следующую строку *закрыто

mcfly67

Блин, наверное, вопрос элементарный: как сделать так, чтобы иногда слова не вылезали за край страницы (такой не больше пары раз, но на каждой странице есть)? Или вроде можно как-то сделать так, чтобы слова переносились по слогам...
Если что, преамбула такая:

\documentclass[pdf,ivvRUS, 12pt, oldfont, titlepage]{article}
\usepackage{indentfirst}
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{geometry}

Lokomotiv59

Чтобы слова не вылезали - в преамбуле указать
\sloppy
\emergencystretch=0pt
Для переносов - включить файл переносов для русского или какого там еще языка, не знаю как в других дистрибутивах tex, в tetex это делается редактированием файла /usr/share/texmf/tex/generic/config/language.dat и затем
команда - texconfig init.
Там должно быть что-то вроде:
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The following languages are disabled by default. Uncomment, what you need.
% To enable, remove %! and the space.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%! bahasa inhyph.tex
%! basque bahyph.tex
%! croatian hrhyph.tex
%! czech czhyph.tex % depends on csplain being installed
%! danish dkhyphen.tex
%! dutch nehyph.tex
%! finnish fi8hyph.tex
%! greek grhyph.tex
%! italian ithyph.tex
%! latin lahyph.tex
%! magyar huhyph.tex
%! norsk nohyph.tex % old file
%! norsk nohyphb.tex % see texmf/doc/generic/nohyph/README.nohyph
%! norsk nohyphbc.tex % see texmf/doc/generic/nohyph/README.nohyph
%! polish plhyph.tex
%! portuges pt8hyph.tex
%! romanian rohyphen.tex
russian ruhyphen.tex % note: edit ruhyphen.tex for your encoding!
%! slovak skhyph.tex % depends on csplain being installed
%! slovene sihyph23.tex
%! spanish sphyph.tex
%! turkish trhyph.tex

mcfly67

Спасибо!
Если использовать одновременно
\sloppy
\emergencystretch=0pt
то за края страницы уже ничего не вылезает, но несколько слов вылезают на пару-тройку символов за края (не страницы, а границы остального текста а вот просто с
\sloppy
все выглядит, как при "выравнивании по ширине" в Ворде. То, что нужно.

ness73

\emergencystretch=0pt
Лучше всё же \emergencystretch=1000pt
Какой смысл на 0pt разрешать растягивать?
P.S. Но при этом слова будут очень жостко укладываться в строчку, не всегда красиво получается.
P.P.S. Когда разберёшься с переносами слов на русском языке, не забудь проверить как переносятся длинные слова с дефисом, TeX может забить на их перенос. В таком случае может помочь ручное указание как переносить отдельные слова, либо пакет hyphenate с командой \hyp{}.

mcfly67

А чем по существу отличается \sloppy от \sloppy + \emergencystretch=1000pt?
Про переносы спасибо, я где-то года два назад так и делал, просто из головы начисто все вылетело.

ness73

А чем по существу отличается \sloppy от \sloppy + \emergencystretch=1000pt?
\emergencystretch явно задаёт, что при выравнивании по обоим краям допускается растяжение строки вплоть до указанного значения. Эффект может проявляться, например, когда мало слов на строке (большой размер шрифта, большое межбуквенное расстояние, маленькая длина строки и так далее). Если слов в строчке много помещается, то разницы, как правило, нет.

mcfly67

Да, уже заметил небольшую разницу.
Всем спасибо еще раз

Lokomotiv59

Лучше всё же \emergencystretch=1000pt
Мда, что-то я постоянно путаю плохие теховские параметры с хорошими
Оставить комментарий
Имя или ник:
Комментарий: