почему встроенный просмотрщик PDF-файлов texstudio отображает белые полосы на изображении?

почему встроенный просмотрщик PDF-файлов texstudio отображает белые полосы на изображении?

вопрос также открыт вhttps://github.com/texstudio-org/texstudio/issues/51


Когда я компилирую этот MWE latex-файл в texstudio на windows, используя MikTex, а затем просматриваю результат с помощью внутреннего PDF-просмотрщика texstudio, он показывает белые полосы, идущие по изображению. Этих линий нет на исходном изображении.

Кроме того, эти строки не отображаются, когда я просматриваю скомпилированный PDF-файл с помощью внешней программы для чтения PDF-файлов, например Adobe.

Почему так? Изображение также является файлом PDF. Можно ли это исправить? На самом деле это не большая проблема, так как это, похоже, просто артефакт самого просмотрщика PDF-файлов texstudio, но подумал спросить, есть ли возможность это исправить.

Вот МВЕ

\documentclass{article}
\usepackage{graphicx}
\begin{document}
This is my image, as PDF file, imported using includegraphics

\includegraphics[width=\textwidth]{image}    
\end{document}

Я разместил файл image.pdf на своей веб-страницездесь

Вот как выглядит скомпилированный PDF-файл в программе просмотра PDF-файлов texstudio

Графика Mathematica

Вот как выглядит PDF-файл в программе Adobe PRO PDF Reader

Графика Mathematica

Обратите внимание на белые линии, которые появляются в texstudio. Это pdfinfoна файле изображения

pdfinfo image.pdf 

Creator:        Wolfram Mathematica 11.2.0.0 for Microsoft Windows (64-bit) (September 10, 2017) Student Edition - Personal Use Only
Producer:       
CreationDate:   Sat Mar  3 16:13:39 2018
ModDate:        Sat Mar  3 16:13:39 2018
Tagged:         no
UserProperties: no
Suspects:       no
Form:           none
JavaScript:     no
Pages:          1
Encrypted:      no
Page size:      470 x 367 pts
Page rot:       0
File size:      99049 bytes
Optimized:      no
PDF version:    1.5

Я использую

TeXstudio 2.12.6 (hg 6632:7777b2b8a906)
Using Qt Version 5.9.1, compiled with Qt 5.9.1 R

Windows 7.

решение1

Это проблема, которая была распространена в нескольких версиях Mathematica, хотя, как ни странно, я не могу воспроизвести ее в Mathematica 11 (на Linux, а не в Windows). Это происходит, когда векторная графика затеняется с помощью полигонов (как в данном случае), но контуры полигонов опускаются. Чтобы исправить эту проблему, экспортируйте изображение в формате eps (позже вы сможете преобразовать его в pdf), заключив команду ContourPlot в команду Export:

Export[ "myfile.eps" , Contourplot[ ... ] ] 

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

/f { fill bind def }

или, возможно,

/f fill load def

Измените fillна gsave fill grestore strokeи сохраните файл. Новая инструкция говорит зрителю заштриховать полигоныинарисуйте их контуры. После перезагрузки в вашем просмотрщике вы должны обнаружить, что проблема исчезла.

решение2

Изображение состоит из треугольников. Следующее изображение создано из файла PDF. Сначала поток страниц файла распаковывается:

 pdftk image.pdf cat output image-uncompress.pdf uncompress

Затем файл модифицируется путем замены " m B" на " m S" и " m f" на " m S". Замена Bи fна Sудаляет заливку и рисуются только треугольники.

введите описание изображения здесь

Как видно, белые линии сталкиваются с границами между треугольниками. Таким образом, возможно, это проблема скругления.

решение3

Мой обычный подход к решению этой проблемы — экспортировать такие изображения в несколько слоев.

  • Один слой, который содержит только цветную гистограмму, без осей и текста. Этот файл будет сохранен, чтобы .pngобойти артефакты зрителя на краях ячеек.

введите описание изображения здесь

  • Следующий слой содержит все линии и текст. Этот слой будет сохранен как.pdf

введите описание изображения здесь

  • Оба слоя можно объединить несколькими способами. Вы можете использовать inkscape или сделать это напрямую в latex и использовать pictureсреду для наложения изображений.

введите описание изображения здесь

(Для гистограмм с очень большим количеством ячеек этот подход также значительно сократит размер файла и ускорит рендеринг .pdf)

Связанный контент