Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет superhuman ([info]superhuman)
@ 2012-06-13 22:23:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
EPS boundary box

Уже 5 лет мучаюсь с картинками в LaTeX. Которые в Matlab сгенерированы. Всегда приходиться подгонять итеративно.

Но вот понадобилось это сделать с сотней картинок. Пришлось разобраться - за пару часиков. Матлаб генерирует дебильные eps-ы - с неправильным bounding box-ом. Латех их потом неправильно в текст вставляет (много пустого места вокруг). Причём я смотрю по файлам, 2007 Матлаб генерировал нормальный eps-3, а уже 2009 - дерьмовый eps-2, причём с неправильным хедером.

Решение - пофиксить bounding box через epstool. Но эта утилита не хавает eps с неправильным хедером. Пришлось налабать программу быстренько (Немерле):

Utility.GetFiles(@"c:\folder-with-eps\", true, false).Filter(_.EndsWith("eps")).Iter(file => {
def text = File.ReadAllText(file); def header = "%!PS-Adobe-2.0"; def alreadyGood = "EPSF-"; // assert (text.StartsWith(header));
when (text.StartsWith(header) && !text.Substring(0, 300).Contains(alreadyGood)) {
def temp = "temp.eps"; File.WriteAllText(temp, text.Replace(header, "%!PS-Adobe-2.0 EPSF-2.0"));
File.Delete(file); RunShell(@"c:\Mathematics\epstool-3.08\bin\epstool.exe", $"--copy --bbox $temp $file"); File.Delete(temp); }
});


Ну, профит типа. Ссылки помогшие:

http://online.redwoods.cc.ca.us/instruct/darnold/staffdev/Tips/tip10.pdf
http://maverickranter.blogspot.nl/2009/11/fixing-eps-bounding-box-automatically.html
http://www.instructables.com/id/How-to-Convert-PowerPoint-to-EPS-files/step4/Adjust-the-Size-of-your-EPS-file-Bounding-Box-Hac/
http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm
http://www.ctan.org/tex-archive/support/ghostscript/ghostgum
http://tex.stackexchange.com/questions/22792/why-does-my-eps-header-have-produced-by-xpdf-pdftops-3-02pl4

http://www.mathworks.de/matlabcentral/fileexchange/18207 %
http://nibot-lab.livejournal.com/73290.html %