Выравнивание в LaTeX (Добавляет перед выравниваемым абзацем строку :()
Модератор: /dev/random
Выравнивание в LaTeX
При использовании любого выравнивания(flushleft, center, flushright), между предыдущим абзацем и выравниваемым добавляется лишнее расстояние, равное примерно одной пустой строке. Как это можно вылечить?
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Выравнивание в LaTeX
Если я ничего не путаю, окружения
flushleft
flushright
center
создают новый абзац.
Если это нежелательно, нужно использовать декларации
\raggedleft
\raggedright
\centering
А вообще, книг и статей по LaTeX полно, в том числе и свободно распространяемых. На русском языке.
Читайте. Там все уже давно расписано. А пересказывать их здесь вряд ли кто-то будет, ибо незачем.
flushleft
flushright
center
создают новый абзац.
Если это нежелательно, нужно использовать декларации
\raggedleft
\raggedright
\centering
А вообще, книг и статей по LaTeX полно, в том числе и свободно распространяемых. На русском языке.
Читайте. Там все уже давно расписано. А пересказывать их здесь вряд ли кто-то будет, ибо незачем.
Спасибо сказали:
Re: Выравнивание в LaTeX
А у меня и так новый абзац. Я выравниваю не \\ а следующий абзац. Если не делать ему выравнивание, то расстояние между абзацами равно расстоянию между строками внутри каждого абзаца, визуально по крайней мере. А \raggedleft не понятно как использовать {\raggedleft paragraph} эффекта не даёт, а \raggedleft paragraph \raggedright убирает у всего последующего текста абзацные отступы.
Не расписано, а коротко написано. И не во всех, а все читать времени нету. llang.pdf, это, кажется, Львовский, не содержит информации об выравнивании в абзацах. В lurs.pdf "LaTeX в России", Е.М. Балдин, этого тоже нету. Сколько же мне литературы нужно перелопатить, чтобы найти такую, казалось бы обыкновенную вещь?
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Выравнивание в LaTeX
vipermagi писал(а): ↑04.02.2011 13:11Не расписано, а коротко написано. И не во всех, а все читать времени нету. llang.pdf, это, кажется, Львовский, не содержит информации об выравнивании в абзацах. В lurs.pdf "LaTeX в России", Е.М. Балдин, этого тоже нету. Сколько же мне литературы нужно перелопатить, чтобы найти такую, казалось бы обыкновенную вещь?
У Котельникова и Чеботаева точно есть. И у кого-то еще видел, сразу не вспомню.
Я верстал диплом в LaTeX, а это порядка сотни страниц с таблицами, формулами и определенными требованиями нормоконтроля (что не всегда по ГОСТ).
Так вот, мне на все, про все хватило этой книги (Чеботаева). Другие источники смотрел так, по мелочи, если нужно было что-то нестандартное сделать (например, таблицу). Ну и еще заглядывал в блог "Записки дебианщика", там тоже есть материал. Так что, ничего я особенно не лопатил, обходился, в основном, одной книгой.
Цитата из Чеботаева
(Котельников, Чеботаев. На правах цитирования) писал(а):Процедуры позиционирования работают, используя определённые декларации, которые изменяют способ форматирования абзацев, причём имена соответствующих деклараций и процедур совпадают. Например, процедуре center соответствует декларация \center. Она, как и одноимённая процедура, вставляет вертикальный пробел, как перед началом абзаца. Однако иногда такой пробел не желателен. На этот случай припасены декларации \centering, \raggedright и \raggedleft.
Соответствие деклараций и процедур устанавливает следующая таблица:
процедура: center flushleft flushright
декларация: \center \flushleft \flushright
декларация: \centering \raggedright \raggedleft
\raggedright - выравнивает влево, т.е. создает невыровненный ("рваный") правый край
\raggedleft - выравнивает вправо, т.е. создает невыровненный ("рваный") левый край
любая из этих деклараций ставится один раз в конце абзаца, действие декларации ограничивается командными скобками.
Если все-таки не получается, тогда формулируйте точнее, что именно надо сделать и давайте исходники, будем говорить предметно. А так, могу сказать, УМВР.
ЗЫ: LaTeX - инструмент сложный, требует понимания механизмов его работы. С налету его не возьмешь.
Посему, если уж он нужен, то наберитесь терпения, вооружитесь книжками и вперед.
Спасибо сказали:
Re: Выравнивание в LaTeX
Вы забыли пустую строку в конце группы:
Код: Выделить всё
{\raggedleft какой-то текст
}
Действие \ragged[left|right] включается лишь при обнаружении окончания абзаца.
"Убить" лишнее расстояние можно при помощи \vspace*. Например, картинки я вставляю при помощи окружения pict, описанного так:
Код: Выделить всё
\newenvironment{pict}%
{\begin{figure}[h]\vspace*{-6pt}\begin{center}\noindent}{\end{center}\vspace*{-18pt}\end{figure}}
Кстати, у меня при \ragged[left|right] никаких вертикальных промежутков не добавляется:
Код: Выделить всё
абзац
{\raggedright
второй
}
третий
четвертый
превращается в
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
Спасибо сказали:
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Выравнивание в LaTeX
Конечно, не добавляется. Потому о нем и говорим.
ТС жаловался на flush[left|right]. Там добавляется. Чтобы не добавлялось, надо \ragged[left|right]
Эх... Помню, я в свое время пытался \vspace поставить вертикальный отступ в начале страницы.
Нужно было точно 20см.
Но... То ли я не осилил, то ли LaTeX как-то по своему пересчитывал, но получалось все что угодно, кроме того, что мне нужно.
Пришлось подгонять.
Спасибо сказали:
Re: Выравнивание в LaTeX
eddy писал(а): ↑04.02.2011 14:06
Вы забыли пустую строку в конце группы:
Код: Выделить всё
{\raggedleft какой-то текст }
Действие \ragged[left|right] включается лишь при обнаружении окончания абзаца.
Ну вот ни в жизни бы не догадался об этом костыле, Благодарствую. Этот бы момент не помешало бы во всех книгах по латеху описать.
eddy писал(а): ↑04.02.2011 14:06Кстати, у меня при \ragged[left|right] никаких вертикальных промежутков не добавляется:
Код: Выделить всё
абзац {\raggedright второй } третий четвертый
превращается в
У меня тоже не добавляется.
Всем спасибо, проблема решена.
Re: Выравнивание в LaTeX
У Львовского этот момент очень четко оговаривается. Читайте внимательнее.
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
Re: Выравнивание в LaTeX
Кстати, если бы вы посмотрели на определение \flushright, то поняли бы, почему добавляется вертикальная отбивка:
А в \trivlist'е вверху вставляется \topsep. Если она вам не нужна, достаточно где-нибудь в начале (или в преамбуле после всех определений) написать
// если вам непонятно, откуда "вылезает" какая-то проблема в латеховской команде, потратьте пару минут на просмотр ее исходника.
Достаточно было использовать команду "со звездочкой", или же воспользоваться более "низкоуровневыми" теховскими командами для "клея".
Код: Выделить всё
\def\flushright{\trivlist \raggedleft\item\relax}
А в \trivlist'е вверху вставляется \topsep. Если она вам не нужна, достаточно где-нибудь в начале (или в преамбуле после всех определений) написать
Код: Выделить всё
\topsep=0mm
// если вам непонятно, откуда "вылезает" какая-то проблема в латеховской команде, потратьте пару минут на просмотр ее исходника.
Достаточно было использовать команду "со звездочкой", или же воспользоваться более "низкоуровневыми" теховскими командами для "клея".
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
Re: Выравнивание в LaTeX
Может быть у вас какой-то другой львовский? В моём точно нету. У моего нет первой страницы с названием книги и автором, так что мне пришлось искать автора по имени файла. Короче поиск по "raged" и по "flush" ни чего не дал.
Re: Выравнивание в LaTeX
Страница 123, издание М.:МЦНМО, 2003. - 448с. (3-е изд., испр. и доп.)
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Выравнивание в LaTeX
Суть в том, что отступ вставлялся, но не того размера.
Команду "со звездочкой" тоже пробовал. А разбираться с низкоуровневыми средствами не было времени. Поскольку задача была разовая, проще оказалось подогнать размер.
Львовский раздел 6.5 Абзацы без выравнивания и переносов (стр. 123).
А также см. раздел 7.2. Центрирование, выравнивание текста по краю (стр. 129).Можно перевести TEX в режим, при котором он вообще не будет пы-
таться выравнивать текст по правому краю и не будет (почти никогда)
делать переносов. Для этого служит команда \raggedright. Ее можно
дать как в преамбуле, так и внутри документа; в любом случае, чтобы
она подействовала на абзац, необходимо, чтобы ее действие не прекра-
тилось до того, как TEX’ом будет прочтена пустая строка, завершающая
абзац...
eddy , опередил немножко
Re: Выравнивание в LaTeX
Чё-то я с ним затупил, там же вообще поиск не возможен.
Скачал 3-е издание, в нём есть текстовый слой.
Скачал 3-е издание, в нём есть текстовый слой.