XeLaTex с pgfplots отображает неправильный цвет?

XeLaTex с pgfplots отображает неправильный цвет?

Я использую XeTex для шрифтов Truetype.

Кажется, что вывод цвета в pgfplots неверный. Это ошибка? Или у меня какая-то неправильная конфигурация?

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

Моя pgfверсия: 3.0.1a

МВЭ:

\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{axis line style=black}
\color{green}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}
         \addplot {x*x};
        \end{axis}
    \end{tikzpicture}
\end{document}

С XeLaTex: введите описание изображения здесь Ожидаемое поведение (с pdflatex): введите описание изображения здесь

решение1

Обходной путь. Использовать

\pgfplotsset{axis line style={color=black}}

вместо.

решение2

Я спросил в списке dvipdfmx, и Шунсаку Хирата подтвердил мои подозрения, что это ошибка dvipdfmx. Похожую проблему можно продемонстрировать на этом небольшом примере:

\documentclass{article}
\begin{document}
\special{pdf:bcolor [0]}
\special{pdf:code q 1 0 0 rg 1 0 0 RG}
text in red
\special{color push gray 0} %switch back to black
Text in black.
\special{color pop}
\special{pdf:code Q}
\special{pdf:ecolor}
\end{document}

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

"Текст черным" должен быть черным, но он красный. Источник проблемы в том, что dvipdfmx не знает, что цвет был изменен на красный с помощью специального pdf:code— он отслеживает только специальные цвета — и поэтому предполагает, что цвет не изменился и что он может игнорировать color push gray 0.

Проблема будет решена в будущей версии.

https://tug.org/pipermail/dvipdfmx/2019-August/000030.html

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