2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Обрезаются eps рисунки
Сообщение05.04.2013, 19:20 


09/09/11
83
Строю в матлабе график, сохраняю в .eps, вставляю следующий код TeXa:
\begin{figure}[ht]\center
\center{\includegraphics[width=1\linewidth]{6bilde}}
\caption{Expander Gain}
\label{6bilde}
\end{figure}
В итоговом файле рисунок оказывается порезанным слева (то бишь ось y и кусочек графика обрезаны). Если сохранять в png и вставлять также (только 6bilde.png, то всё хорошо).
Если просто отдельно открыть график в GSview'e то он тоже нормальный (не обрезанный).

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение05.04.2013, 20:54 


29/09/06
4552
B GSview есть опция --- что-то вроде Show BoundingBox. При её включении должен появиться (пунктирный?) прямоугольник, заключающий изображение. Он ничего не обрезает?

Приведите строчку
%%BoundingBox: .. .. ... ...
из Вашего eps-файла (одна из первых).

-- 05 апр 2013, 21:56:25 --

Если не разберёмся по-простому --- запрошу копию Вашего eps.

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение05.04.2013, 22:32 


09/09/11
83
Алексей К.
К сожалению, не знаю, где посмотреть строчку %%BoundingBox: .. .. ... ...
Если включить в опциях Show BoundingBox, то всё показывает правильно - пунктир выделяет весь рисунок.

В процессе экспериментов (пересылал файлы коллеге-однокурснику) убедились, что проблема рождается именно в процессе сохранения файла из матлаба в eps. Если файл (матлабовский график) растягивать и редактировать (через Edit plot) то после сохранения в формат eps сам файл eps выглядит нормально (не обрезанный), однако как уже говорил после набора в LaTeXe он обрезается (причем каждый раз по разному). Если исходный график не редактировать и не растягивать, а сразу сохранять в eps то всё в порядке. Другие форматы (png, jpeg) от манипуляций над графиком в матлабе никак не страдают и воспроизводятся всегда правильно.

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение06.04.2013, 17:28 


29/09/06
4552
Это должна быть одна из первых строк Вашего eps-файла (откройте его любым текстовым редактором).
Попробуйте заменить
%%BoundingBox: x1 y1 x2 y2 (там целые числа)
на
%%BoundingBox: x1-100 y1 x2 y2,
посмотреть результат и подобрать в качестве x1 подходящее число (возможно, отрицательное).

Можете выложить куда-нибуль файлик, я гляну. Вроде в этих делах я довольно опытный.

-- 06 апр 2013, 18:43:50 --

Ха... А может кто-то умудрился сделать eps без %%BoundingBox???

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение08.04.2013, 01:17 


09/09/11
83
Алексей К.
В общем, у каждого файла разное значение BoundingBox. От того, что я его вручную меняю - меняется только положение и растянутость файла, сам же он остается таким же обрезанным.
Залил пару файлов, вот сюда http://www.sendspace.com/filegroup/K9go1z1uQfM2sXBmByyLzA
Нажимайте Download и в следующем окне - Click here to start download from sendspace и сразу начнется скачка файла.

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение08.04.2013, 11:35 


29/09/06
4552
В файле bred2.eps BBox начинается с -100. Думаю, это Вы просто правили по моим советам. Сначала там было -323, полагаю.

Непонятки всякие встречаются, в частности, %%PageBoundingBox:, которого, как я считал, в eps быть не должно, равно как не должно быть разбиения на страницы. Скорее всего, именно это Вам мешает.

Я продолжу разборки (возможно, вечером после работы) и отпишусь. Пока даже Латех не могу позапускать, дабы воспроизвести описанные Вами глюки. Что я бы попробовал и попробую ---
1. Надо убедиться, что содержимое %%PageBoundingBox: и %%BoundingBox: совпадает;
2. Выкинуть строки
%%Pages: 1
%%Page: 1 1
%%PageBoundingBox: ...

(%%BoundingBox: --- обязательно сохранить.)

Проделав это, Вы уже в GSview увидите всю картинку, сможете по положению курсора измерить границы рисунка (в смысле удалить поля --- их, наверное, не стоит тащить в документ).
Так, для бреда1 подходящий размер будет
слева: -193 (а не заданное там -323)
снизу: 152 (а не 116)
справа: 824 (а не 936)
сверху: 633 (а не 674), т.е.
%%BoundingBox: -193 152 824 633


Думаю, что и с Латехом проблемы исчезнут (напишите, если Вы уже в этом убедились).

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение08.04.2013, 16:48 


09/09/11
83
Ув. Алексей К.,
Попробовал всё, что вы предложили - эффекта, к сожалению, нет.
Все данные пертурбации приводят только к различным пляскам самого графика в конечном документе, причем меняется (как я уже говорил выше) только его размер и положение.
Прописал ровно то, что вы предложили, потом удалил, что вы сказали удалить. Потом начал удалять выборочно всё подряд :-) и файл вообще перестал открываться.

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение09.04.2013, 15:43 


29/09/06
4552
Хотел было написать, что у меня с Вашими файлами всё в порядке: хоть исходные файлы, хоть исправленные по моей рекомендации --- все рисуются нормально, ничего не обрезается. И послать Вам коллекцию файлов, *.eps, bred.tex, bred.dvi (я рассматривал именно bred.dvi). И решил сделать и добавить ещё и bred.pdf.
И вот тут-то я увидел описанные Вами неприятности (я так понимаю, что Вы используете что-то вроде dvipdfm(x), и контролируете результат именно по pdf).
Повторяю --- если делать
latex bred
yap bred (просмотр dvi, не знаю, как это делается у Вас),
то всё смотрится нормально. Неприятности начинаются при изготовлении pdf.

"Неужели программы вроде dvipdfm* не умеют работать с отрицательными границами BoundintBox'а???" --- спрашиваю я себя?
"Да, с этим есть проблемы", отвечает мне Гугл.

Они легко лечатся, надо малость пошаманить с рисунком: сдвинуть весь рисунок вправо, для чего вставить в начале кода (например, в строке после %%EndComments)
323 0 translate
и заменить BB
%%BoundingBox: -323 116 936 674
на
%%BoundingBox: 0 116 1259 674
(1259=936+323)
Мои предыдущие рекомендации (удаление трёх строк) также остаются в силе.
И pdf получается нормальный.

GAttuso,
я понятно написал? Вы поняли смысл и назначение этого Бокса и 4-х чисел в нём?

-- 09 апр 2013, 16:59:15 --

Естественно, в других случаях это будет не 323, а то отрицательное число в BoundingBox'е, левая граница рисунка.

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение09.04.2013, 16:24 


09/09/11
83
Да, простите, я даже не упомянул, что всё происходит именно в pdf. :D Я вообще другими форматами никогда не пользуюсь, поэтому даже как-то не подумал об этом.
Приведенное вами решение проблемы я понял и оно работает прекрасно.

Вердикт:
1) Открываем полученный eps файл через любой текстовый редактор.
2) Смотрим графу %%BoundingBox:, смотрим на первое значение (сдвиг влево), если оно отрицательное, например, -100, то вместо него пишем 0, и добавляем 100 ко сдвигу вправо (третье значение).
3) Добавляем команду 100(значение сдвига) 0 translate после строки %%EndComments, сохраняем файл и радуемся жизни.

Спасибо вам, Алексей К., за помощь.

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение09.04.2013, 16:34 


29/09/06
4552
И вот это советую проделать:
Алексей К. в сообщении #707251 писал(а):
4) Выкинуть строки
%%Pages: 1
%%Page: 1 1
%%PageBoundingBox: ...

Изготовленный Матлабом eps, похоже, некорректен. Если в GSview Вы нажмёте клавишу M (открыть Message window), то увидите, что GSview слегка ругается. Ругается, но работает, игнорируя некоторые плохости.

-- 09 апр 2013, 17:36:04 --

И вообще, после всего этого измерьте и подставьте нормальные значения в бокс, иначе у Вас слишком большие поля. Масштаб будет поболее, и эти мизерные надписи на графике может будут видны получше.

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение09.04.2013, 18:43 


09/09/11
83
Да, действительно, подрезав поля - все смотрится куда лучше.
Жаль однако, что каждый график, по видимому, придется вручную так переделывать.
Хотя надо посмотреть, может получится найти режим сохранения файла из матлаба, при котором будут всегда одни и те же значения %%BoundingBox:, и просто найти для него оптимальные параметры.

 Профиль  
                  
 
 Re: Обрезаются eps рисунки
Сообщение09.04.2013, 19:11 


29/09/06
4552
Разумно.
На "всегда одни и те же" не стоит надеяться, но избавиться от отрицательных может и удастся.
И уж размер шрифта у надписей должен бы регулироваться.

-- 09 апр 2013, 20:44:25 --

update: MATLAB R2011a command
print -deps yourfilename.eps
Вроде, судя по беседе, должно делать более жёсткий бокс.

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

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



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

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


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

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