
Я пытаюсь создать (с оборотной стороной) двухцветный узор заливки с непрерывными диагональными линиями. Я скопировал большую часть кода изздесь(большое спасибо сообществу stackexchange). Однако мой результат выглядит так:
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}[
Pattern/.style = {pattern=north east hatch,
pattern color=yellow,
hatch distance=10pt,
hatch thickness=4pt},
]
\coordinate (o) at (0,0);
\makeatletter
\tikzset{
hatch distance/.store in=\hatchdistance,
hatch distance=5pt,
hatch thickness/.store in=\hatchthickness,
hatch thickness=5pt
}
\pgfdeclarepatternformonly[\hatchdistance,\hatchthickness]{north east hatch}% name
{\pgfqpoint{-1pt}{-1pt}}% below left
{\pgfqpoint{\hatchdistance}{\hatchdistance}}% above right
{\pgfpoint{\hatchdistance-1pt}{\hatchdistance-1pt}}%
{
\pgfsetcolor{\tikz@pattern@color}
\pgfsetlinewidth{\hatchthickness}
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathlineto{\pgfqpoint{\hatchdistance}{\hatchdistance}}
\pgfusepath{stroke}
}
\makeatother
\draw[preaction={fill=green}, Pattern] (o)
-- ++(1,0)
-- ++(0,-1)
-- ++(-1,0)
--cycle;
\end{tikzpicture}
\end{document}
На линиях есть какие-то неровности. Что не так с моим кодом? Как убрать эти неровности. Заранее спасибо за любую помощь!
Обновление 19:03: Для просмотра я использовал Acrobat Reader, SumatraPDF и Firefox, однако во всех случаях наблюдаются схожие артефакты.
решение1
При использовании patterns.meta
библиотеки результат намного лучше, чем с patterns
(но для карманников все еще не идеален):
По крайней мере, код стал намного, намного проще:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{patterns.meta}
\begin{document}
\begin{tikzpicture}
\path[fill=green,
postaction={pattern={Lines[angle=45,distance={6pt},line width=3pt]},
pattern color=yellow},
postaction={draw, semithick}]
(0,0) rectangle (1,1);
\end{tikzpicture}
\end{document}