2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Рисунок «отсюда и до конца страницы»
Сообщение14.11.2010, 18:08 


19/09/10
109
Пожалуйста, подскажите, как в LaTeX создать иллюстрацию, которая бы всегда занимала место ровно от ссылки на неё до конца страницы?

Или, может быть, возможно как-то автоматически подсчитать высоту какой-либо строки относительно полей страницы, на которую она попала?

 Профиль  
                  
 
 Re: Рисунок «отсюда и до конца страницы»
Сообщение16.11.2010, 02:52 
Аватара пользователя


05/11/09
90
Есть параметр‐dimension \pagegoal, величина которого равна как раз расстоянию от текущего места до конца страницы. Но сюда и нижний колонтитул входит.

 Профиль  
                  
 
 Re: Рисунок «отсюда и до конца страницы»
Сообщение16.11.2010, 09:58 


19/09/10
109
У меня что-то не получается...

Команда \the\pagegoal и в начале, и в середине, и в самом конце страницы печатает 702.7831pt,
и, соответственно, рисунок, отмасштабированный с использованием длины \pagegoal,
получается гораздо больше, чем надо, и не меняет размер при изменении верхней границы.

Пожалуйста, расскажите подробнее, как можно применить этот размер и не нужно ли при этом подключать какой-нибудь дополнительный пакет?

P.S.
Кажется, понятно.

\pagegoal — расстояние от начала до конца страницы.

В сети нашёлся фрагмент кода, где оно используется для вычисления свободного места:
Код:
\usepackage{calc}
\newlength{\testlen}
\newcommand{\test}{\par\setlength{\testlen}{\pagegoal-\pagetotal}}

Если ещё исключить пробел до колонтитула
Код:
\newcommand{\bottomspacecalc}{\par\setlength{\bottomspaceheigth}{\pagegoal-\pagetotal-\footskip}}

получается правильное расстояние
(если мерить распечатку, оставшееся расстояние получается на 1мм больше \bottomspaceheigth, но эту разницу можно списать на линейку с китайскими сантиметрами).

Команда некорректно рассчитывает высоту \vfill'ов, но на нужной странице их нет, так что проблему можно считать решённой.

Большое спасибо!

 Профиль  
                  
 
 Re: Рисунок «отсюда и до конца страницы»
Сообщение19.11.2010, 10:45 
Аватара пользователя


05/11/09
90
Ну да, ну да.

Цитата:
Quasus Re: Рисунок «отсюда и до конца страницы» Вт ноя 16, 2010 02:52:58


В три часа ночи‐то. :) Действительно, \pagegoal — это сколько всего надо, а \pagetotal — это уже свёрстанное. Это plain TeX, а может быть, и просто TeX.

 Профиль  
                  
 
 Re: Рисунок «отсюда и до конца страницы»
Сообщение22.11.2010, 21:21 


19/09/10
109
В любом случае, это был пинок в правильном направлении,
так что спасибо Вам!


Увы, у вышеописанного решения обнаружилось ещё одно ограничение:

если проверка \pagetotal стоит возле начала страницы (в моём случае перед ней были две строки абзаца, начатого на предыдущей странице и ещё один абзац из двух строк),

то \pagetotal оказывается не маленьким — высотой свёрстанных 4-х строк, а весьма большим (больше \pagegoal) числом.
Разность \pagegoal-\pagetotal, соответственно, в этом случае получилась отрицательной.


Временно проблему удалось скрыть, вставив \clearpage на то же место, где был «естественный» разрыв страницы — после этого \pagetotal честно подсчитал высоту 4-х строк.

Хотелось бы, однако, знать, существует ли менее варварский способ решения этой проблемы?

 Профиль  
                  
 
 Re: Рисунок «отсюда и до конца страницы»
Сообщение22.11.2010, 21:29 
Заслуженный участник
Аватара пользователя


18/05/06
13437
с Территории
Я не знаю синтаксиса условного оператора в техе, но что таковой там есть - это несомненно. Ну вот и попробовать бы: если \pagetotal>\pagegoal, то...

 Профиль  
                  
 
 Re: Рисунок «отсюда и до конца страницы»
Сообщение22.11.2010, 21:54 


19/09/10
109
Эх, я тоже не знаю...
Попробую найти.

Большое спасибо!

 Профиль  
                  
 
 Re: Рисунок «отсюда и до конца страницы»
Сообщение24.11.2010, 06:45 


19/09/10
109
Действительно! Вот так
Код:
\newlength{\bottomspaceheigth}
\newcommand{\bottomspacecalc}{\par%
\setlength{\bottomspaceheigth}{\pagegoal-\pagetotal-\footskip}
\ifnum\bottomspaceheigth<0 \setlength{\bottomspaceheigth}{\pagegoal+\bottomspaceheigth}
\fi
}
вроде бы работает.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group