Почему \vspace можно, после заголовка раздела, иногда кнопки прыжка в дискретные шаги?

Ну, это один вопрос, что я'ве было в течение длительного времени, и тот, который всегда заставляет меня крайне раздражала. Однако, на этот раз я'м даже несколько радует - что я могу ask в at вопрос all; и именно благодаря силе анимированные .гиф :)

Это вещь - иногда бывают некоторые конструкции Я'd, как, чтобы реплицировать в LaTeX; как правило, Вы читаете инструкции, вы измените свое длины, бывает. Впрочем, иногда - и особенно после того, как заголовки разделов - я'd, как сказать, поднимите или опустите отправной пункт после раздел немного; однако, без пересмотра мастер-секции после пропуска.

А так я обычно вставить \vspace можно{\длина} после заголовка раздела, а начать тюнинг \длина; текст начинает двигаться, а затем, если я переместить его на, скажем, 1 ст, он чуть не прыгает в этом направлении; я сократить до 0,5 пт - текст, как будто не двигался вообще ?! (и тогда я начну искать \vspace можно* или \ \\[длина\], или что works). И я всегда хотел спросить об этом - но я не могу придумать ничего лучше, чем "по-Why ли латекс прыжок вертикальный space", и, возможно, никто не понимает, что происходит :). Ну, и наконец, это то, что я имею в виду, что "прыжки" или "щелкать" и в "дискретные шаги и" (atest_animate_10_p.gif, 900КБ):

В МВт на изображение ниже (составлена с pdflatex) - однако, это баш-скрипт, который генерирует 100 PDF-файлы, а затем извлекает изображения из них, и, наконец, сочиняет изображений в анимированный GIF. В принципе, для каждого "рама" по (PDF-файл), скрипт меняет параметр, который заканчивается как длина, упаси\, который используется только в одном месте: \ \\[\упаси]. упаси \ увеличивается с постоянным шагом (меньше кегль) для каждого кадра; и записывается в качестве первого слова в абзаце.

Обратите внимание, что вместо плавного перехода, в пункте "не встанет" и на место и doesn'т двигаться на определенные ценности - и тогда, когда он начинает двигаться снова, ее "прыгает" больше, чем обычно. И это на самом деле и в каком размере (Note, что вы можете иметь некоторые затруднения в браузере, а гиф нагрузки; как только он загружается, однако в одежде должна быть заметна, когда этого пункта не'т двигаться - и число индикация изменения, тем не менее... хотя, некоторые кадры из GIF может еще оказаться dropped)

Ну, когда я пришел к этой проблеме, я получаю разочарование трудность объяснить это на словах. А потом думаю, ладно - пусть мне приготовьте МВт, будет легче для других. Тогда я пишу что-то минимальное, кинь\lipsum1 там - и я больше не могу продемонстрировать проблему !! Черт, всегда со мной! Именно поэтому, первым .GIF (и в МВт) имеет значение \lipsum[1-10] - чтобы продемонстрировать проблему; однако это то, что произойдет, если, скажем, \lipsum[1-2] вместо (atest_animate_02_p.gif, 899KB):

То есть - все идет гладко, как ожидалось (also построен с pdflatex`). Я обнаружил более-менее случайно, что вы не можете продемонстрировать это на "нервозности" и если вы не используете достаточно текста в пунктах, поэтому она перетекает на следующую страницу!

&ампер;усилитель; nbsp;

Наконец-то, я думала, для удовольствия, для создания такой анимированный GIF, но с lualatexиЛуа-визуально-отладка` - и это, безусловно, объясняет что-то больше (atest_animate_10_l.gif, 1599KB):

А именно, здесь заметно, что когда абзацы на "Замок" и в вертикальном положении - один из тех голубых линий начинает идти на "Вверх", и потом ее "прыгает" ПО -; что это значит, однако, выходит за меня :)

Так что, если кто-нибудь может объяснить, что происходит здесь - и есть возможность, что "ровная" и вертикальное позиционирование пролетаемых пунктов, пожалуйста, напишите снова...

Заранее огромное спасибо за любые ответы, Ура!

Вот код скрипта МВт (atextest.sh):

#!/bin/bash

# to force exit loop:
trap 'echo Control-C trap caught; cleanup; exit 1' 2 #traps Ctrl-C (signal 2)

MYFN="atest"
MYFNIMG="${MYFN}_img"
MYFNTEX=${MYFN}.tex
MYFNIN="${MYFN}-input"
MYFNINTEX=${MYFNIN}.tex

function cleanup() {
  echo rm ${MYFNTEX} ${MYFNINTEX} -rf ${MYFN} -rf ${MYFNIMG}
  rm ${MYFNTEX} ${MYFNINTEX}
  rm -rf ${MYFN}
  rm -rf ${MYFNIMG}
}

mkdir ${MYFN}
mkdir ${MYFNIMG}

cat > ${MYFNTEX} <<EOF
\documentclass[10pt,a4paper]{article}
\providecommand{\myparam}{0.0pt}% fallback definition
\tracingonline=0 % suppress stdout (still dumps start)

% tex.se: 47576
\usepackage{ifxetex,ifluatex}
\newif\ifxetexorluatex
\ifxetex
  \xetexorluatextrue
\else
  \ifluatex
    \xetexorluatextrue
  \else
    \xetexorluatexfalse
  \fi
\fi

\ifluatex
  \usepackage{lua-visual-debug} % tlmgr install lua-visual-debug
\fi
\ifxetexorluatex
  \usepackage{fontspec}
  \defaultfontfeatures{Ligatures=TeX}
  \setmainfont[Scale=1.0]{Junicode}
  \newfontfamily\myfontfam[Scale=1.0]{Junicode}
\fi

\usepackage[a4paper]{geometry}
\geometry{twoside,inner=2.5cm,outer=3.5cm,top=2.5cm,bottom=2.5cm}

\makeatletter
\renewcommand{\section}{\@startsection
{section}%                   % the name
{1}%                         % the level
{\z@}%                       % the indent / 0mm
{-\baselineskip}%            % the before skip / -3.5ex \@plus -1ex \@minus -.2ex
{2pt}%          % the after skip / 2.3ex \@plus .2ex
{\centering\fontsize{11}{12}\selectfont\bfseries}} % the style
\makeatother

\usepackage{lipsum}

\newlength{\mylen}
\setlength{\mylen}{0pt}
\setlength{\mylen}{\myparam}

\begin{document}

\ifxetexorluatex
  \myfontfam
\fi
  \fontsize{10}{12.3}\selectfont

\title{Testing Title}
\date{October 31, 1000}
\author{John Doe\\\\ Somewhereland}

\maketitle

\clearpage

\input{${MYFNINTEX}}
\clearpage

\end{document}
EOF

cat > ${MYFNINTEX} <<EOF

\section*{Introductory words of introduction}

\vspace{\baselineskip}
\vspace{2pt}
\begin{center}
\textbf{Something else here, some other words}
\end{center}

%\vspace{\mylen}
\ \\\\[\mylen]

\makebox[2cm][r]{\the\mylen}, \lipsum[1-10] %[1-2]

\bigskip

\bigskip

EOF

MYPARAM="2.0pt"
JOBNAME="atest1"

#~ CROPPARAMS=320x240+100+400
CROPPARAMS=400x400+150+100

CMDNAME="pdflatex"
#~ CMDNAME="xelatex"
#~ CMDNAME="lualatex"

for ix in $(seq 0 1 100); do
  iy=$(wcalc -EE -q \($ix-50\)/50*30);
  INDEX=$(printf "%03d" $ix) ;
  JOBNAME="${MYFN}${INDEX}" ;
  MYPARAM="${iy}pt"
  echo "
        $CMDNAME - $JOBNAME - $MYPARAM" ;
  (${CMDNAME} -output-directory="${MYFN}" -jobname="${JOBNAME}" "\def\myparam{${MYPARAM}}\tracingonline=0\input{${MYFNTEX}}" 2>&1 1>/dev/null);
  convert -density 150 -crop ${CROPPARAMS} +repage ${MYFN}/${JOBNAME}.pdf[1] ${MYFNIMG}/${JOBNAME}.png ;
done

GRAY=""
#~ GRAY="-type grayscale"
echo convert -delay 5 -loop 0 ${MYFNIMG}/\*.png ${GRAY} ${MYFN}_animate.gif
convert -delay 5 -loop 0 ${MYFNIMG}/*.png ${GRAY} ${MYFN}_animate.gif

# view results
#~ evince ${MYFN}/${JOBNAME}.pdf
#~ display ${MYFNIMG}/${JOBNAME}.png
eog atest_animate.gif 2>/dev/null

cleanup # remove tmp files
Комментарии к вопросу (5)
Решение

так что, если кто-нибудь может объяснить, что происходит здесь - и есть возможность-то "плавный" и вертикальное позиционирование пролетаемых пунктов, пожалуйста, напишите снова...

Стефан заметил это замечательный вопрос, чтобы смотреть на, но я думаю, что все анимации и кодирования вокруг него у вас довольно эффективно скрытые проблемы.

Виновником является "Центр" среды только в передней части пространства, которые можно изменить. Проблема в том, что эта среда окружает себя гибкий клей (т. е. с растягиваться и сжиматься компонент). Точные значения в вашем случае

10pt plus 3pt minus 5pt

Так что в том месте, где у вас есть место, вы действительно

\mylength + 10pt plus 3pt minus 5pt

Как отмечалось в других ответах Текс пытается найти разрыв страницы с минимальной вредности. Так, если предположить, что разрыв страницы Текс нашли только естественно вписывается (т. е. не садится и не растягивается необходимо), то вы просто получаете \mylength + 10 пт на данный момент. Теперь если вы добавляете 1пт к\mylength` то последняя строчка Не'т подходят больше на странице, за исключением того, что дополнительный балл может быть поглощен сократится на странице.

Теперь если только уменьшится доступна в этом месте (которое в вашем примере), то дополнительное очко будет просто проглотить, а пространство остается прежним. Та же история для добавления еще одной ПТ и еще один. (Если есть несколько мест, с сокращением на странице психиатр получает распределенных вечером по тем местам, так что в этом случаи вы могли бы увидеть небольшой рост, но меньше, чем значение шага.)

Но в тот момент добавления 4ПТ он может'т быть компенсированы за счет сокращения имеющихся в вашем примере. Таким образом, последняя строка теперь действительно не'т подходят больше на странице и, таким образом, Текс должен вставлять "стрейч", чтобы заполнить недостающие линии (минус 4ПТ), т. е. 8рт или так в зависимости от `\baselineskip установки.

Так что нет больше сжиматься, и вместо большой натяжкой и своего пространства делает прыжок. Добавление дополнительных очков увеличат ваше пространство, а необходимость для натяжных становится все меньше, пока вы не достигнете точки, где страницы еще есть "природных" без необходимости растянуть, а затем все повторяется.

Сейчас настройка\raggedbottom только влияет на то, как последняя страница верстается (разбив его). В основном, отсечения страницы в бот \свойств textheight а в случае \raggedbottom " а " vfill \ добавляется в конец (более или менее). Сейчас в "сокращения" по ситуации это не't действительно имеет большое значение, поскольку страница уже переполнен. И в ситуации растянуть это означает, что участок в конце наносится только на дно и не растягивается части в середине страницы.

Так в резюме: чтобы избежать вашей тайны вы должны убедиться, что пространство вы пытаетесь отрегулировать не садится и не растягивается компонент как часть перестройки или как часть пространства рядом с ним. Только тогда можно гарантировать, что пространство на самом деле ведет себя так, как вы ожидаете

Комментарии (1)

Латекс по умолчанию вертикальное выравнивание содержимого страницы, чтобы распространить на всю страницу, сверху донизу, за исключением перед ручной разрыв страницы (например, новую главу или использование `\newpage или\clearpage или в конце документа.

Чтобы достичь этого, каждый вертикальное пространство на странице, телевизором с некоторой натяжкой. Даже базовой не стрейч, поэтому этот пункт линии не должны быть на одинаковом расстоянии. В вашем случае, похоже, что латекс используется (отрицательный) стрейч в символ новой строки\\, которые используются для производства космической. Попробуйте использовать \совместной работе vspace*{10.0 пт} вместо этого.

Это вообще не хорошая идея, чтобы удалить тянется от формата-определение длины, потому что если вы не имели вертикальный стрейч на странице вообще (т. е. ни в пункте, ни в линии, ни в интервал тянется), эта страница станет на "короткие" Ну, латекс не смогли бы заполнить всю страницу и предупреждение: Underfull \VBOX В а \выход находится в активном отображались в лог-файл. Страницы не будут иметь одинаковую высоту, и это делает ваш документ будет выглядеть некрасиво.

Комментарии (3)

Изображения форматов GIF и баш скрипт кунг-фу еще больше, однако это поучительно, чтобы смотреть как на верхней, так и нижней части страницы. Вот изображение немного другой страницы, во-первых, без каких-либо `\vspace можно добавил.

![введите сюда описание изображения][1]

Обратите внимание на текст начинается на линии 4 и заканчивается словом 'дар'.

Следующие два набора изображений \vspace можно* на 16 пунктов " и " 18пт .

Набор \совместной работе vspace*{16 пунктов}

![Введите описание изображения здесь][2]

Набор в \vspace можно{18пт}

![Введите описание изображения здесь][3]

Прыжки вы испытываете (особенно если вы используете `vspace можно, а не снялся версии, Текс'ы, попытки всегда приносят страницей с минимумом badness.

Это старая проблема и в первой опубликованной работе на типографии (1683) Иосиф Моксон, Mechanick упражнения: или, Учение о полезных работ в случае типографского искусства, ссылка на добавление пробелов до баланса текст так, что последняя строка всегда падает на том же месте и даже страницы.

Лучшее место, чтобы начать понимать связанные с этим вопросы, Михаил Пласс, кандидат наук, [оптимальных методов разбиения для систем автоматического верстка][4].

Код МВт для изображений следует, Будет неплохо, если вы могли бы объединить его с вашей гифки. Следует отметить и соблюдать Текс'ы попытки всегда заканчиваются хорошо отобразить страницу.


\documentclass[10pt,twoside]{article}
\usepackage{fancyhdr,lipsum}
\makeatletter
 \newsavebox{\@linebox}
 \savebox{\@linebox}[3em][t]{\parbox[t]{3em}{%
   \@tempcnta\@ne\relax
   \loop{\underline{\the\@tempcnta}}\\
     \advance\@tempcnta by \@ne\ifnum\@tempcnta
Комментарии (4)

Редактировать: ОК, согласно [@tohecz][3]' нить, это было'Т просто об использовании помеченные \vspace можно*; согласно [@YiannisLazarides][4] резьба, избегая всегда\begin{центр} помогает - который также объясняется в [@FrankMittelbach][5]'ы сообщение. Так, в ОП-код LaTeX, показанной странице:

\clearpage

\section*{Introductory words of introduction}

\vspace{\baselineskip}
\vspace{2pt}
\begin{center}
\textbf{Something else here, some other words}
\end{center}

\ \\\\[\mylen]

\makebox[2cm][r]{\the\mylen}, \lipsum[1-10] 

\bigskip
\bigskip
\clearpage

Я заменил, что с (atextestb-ш-жек.дифф):

\clearpage

\section*{Introductory words of introduction}

\vspace{\baselineskip}
\vspace{2pt}
{ % begin group 
\centering\textbf{Something else here, some other words}
} % end group

\vspace{\mylen}

\makebox[2cm][r]{\the\mylen}, \lipsum[1-10] 

\bigskip
\bigskip
\clearpage

... И я могу подтвердить, что: избавление от "центра" Среда, и заменив его на {} группа с \центрирование, будет теперь вызывать на "ровная" и вертикальное пространство перехода из-за \vspace можно в начале абзаца; показано в atest_animate_l_tb_woc.gif (я думаю, мне лучше прекратить писать анимационные картинки рядный, четыре тяжелых, вероятно, достаточно для этой страницы :)_). К сожалению, \центрирования часть не работает с этим изменением (название это&#39;т по центру); но, по крайней мере, наконец-то "виновника" и по вертикали, нервозности, определены и подтверждены. и GT; редактировать: Ок, я могу подтвердить, что центрирование отдельного текста будет восстановлена, если я обернуть\центрированиестрофы в команду\makebox, как в: <до> { % начать группу \makebox[\текстовое][с]{ \центрирования\textbf{здесь что-то другое, какие-то другие слова} } } % конец группы </пред>

однако в <ы>В разделе текст располагается немного ниже от места, где он будет использоваться; и</с> текст пункта это'т, расположенный в том же месте, как и ранее, в ответ на тот же \vspace можно на выбор (здесь -30pt на 30 пт). Но,\vspace можно- между заголовком раздела и первый пункт - не плавно меняться; анимация этот хак в [atest_animate_l_tb_wocm.gif](http://sdaaubckp.sourceforge.net/post/tex/atest_animate_l_tb_wocm.gif). <БР/><БР/> для облегчения сравнения анимированные .GIF-файлов, единственное, что я смог найти, это сначала создать бок-о-бок монтаж стартера и модифицированных GIF с помощью ImageMagick в&#39;ыконвертировать(Способ 2 от "_[анимация изменения: бок о бок добавлением (время синхронизации)][6]_ - то"): <БР/> преобразование atest_animate.gif -repage 1208x402 -сливаешь равен нулю: ( atest_animate_l_tb_woc.gif -сливаешь ) -геометрия +604+0 -слои композита out.gif<БР/> <БР/> (_note выше команды поменяются и нагружать процессор, как сумасшедший, но, возможно, меньше других methods_), а затем просмотреть:дисплей out.gif в пакета ImageMagick'дисплей с`. Я не мог&#39;т найти другие похожие инструменты, которые зритель может позволить какой-то шаг управления с помощью анимированных рамок (_[ФЭ][7] Не&#39;т даже поддержка анимированных GIF-файлов - показывает только первый frame_)<БР/> обратите внимание, что гиф, вероятно, начать играть с медленной скоростью около одного кадра в секунду в "дисплей", не&#39;т найти способ, чтобы остановить его, но - тем не менее, [экран`'ы клавиш]8 <и>космос</роз> и <и>возврата</роз> по-прежнему работать для перехода к следующему или предыдущему изображению в последовательности - так что можно сосредоточиться на одной гиф-рамки сравнения.

В ответ на @человек @StephanLehmke - ниже это видео с отрывками из верхней левой (начало абзаца; слева от анимации) и слева внизу (в конце страницы; в правом анимация); скрипт онлайн atextest.sh была изменена соответственно. Этот образ находится в тех же условиях, как в ОП - кроме компиляции с lualatex, но с fontspec вещи удалены ([atest_animate_l_tb.gif](http://sdaaubckp.sourceforge.net/post/tex/atest_animate_l_tb.gif)): Хах - вроде как Imgur анимированные GIF отключен со вчера на сегодня (_either что, или я не&#39;т позволил одной из яваскрипта domains_); так вот&#39;ы оригинальный образ с SourceForge: [![][1]][1] Я не вижу большого различия с\raggedbottom([atest_animate_l_tb_raggedbottom.gif](http://sdaaubckp.sourceforge.net/post/tex/atest_animate_l_tb_raggedbottom.gif)) - однако, есть одно интересное различие сflushbottom`(atest_animate_l_tb_flushbottom.gif): Здесь, кажется, больше интервалов гладкости, но и больших прыжков ...

Комментарии (0)