Problem z biblioteką „cieni” Tikz

Oct 28 2020

Właśnie zaktualizowałem Miktex. Kiedy kompiluję dokument Latex z poleceniami:

\usepackage {tikz}

\usetikzlibrary {shadows}

duże czarne logo pojawia się w lewym górnym rogu pierwszej strony pliku DVI, ale nie w pliku pdf. To biblioteka „cieni” stwarza ten problem. Masz rozwiązanie?

Odpowiedzi

2 AlexG Oct 28 2020 at 18:26

Krótka odpowiedź: Jest to cecha przepływu pracy latex+ dvips+ ps2pdfi nie można jej uniknąć w połączeniu z najnowszą (v3.1.6) wersją PGF i jego bibliotek shadowsoraz fadingsTikZ.

Długa odpowiedź:

shadowsBiblioteka ładuje również fadingsbiblioteka.

Zanikanie , nazywane również gradientami przezroczystości lub miękkimi maskami , jest funkcją dostępną tylko w formacie PDF (podobnie jak podstawowa, stała przezroczystość). Fadings zostały udostępnione dla trasy DVI-> PS-> PDF dopiero niedawno (PGF-3.1.6). Fadings zdefiniowane przez użytkownika i wstępnie zdefiniowane zostały po prostu zignorowane w poprzednich wersjach PGF.

Definiowanie miękkiej maski polega na utworzeniu tak zwanego PDF-XObject, samowystarczalnego obiektu graficznego, który jest później używany do maskowania (tj. Dodawania przezroczystości) innych obiektów graficznych, jak pokazano w poniższym przykładzie.

Tworzenie miękkiej maski odbywa się w lewym górnym rogu strony jej definicji. Wstępnie zdefiniowane miękkie maski fadingsbiblioteki są tworzone na pierwszej stronie dokumentu. To, co widzisz w pośrednim wyniku PS, to podstawowe obiekty graficzne, które są używane w tym procesie. Nie można ich ukryć, ale znikają w ostatnim kroku tworzenia pliku PDF ( ps2pdf -dALLOWPSTRANSPARENCY ...).

Ponieważ Fadings to funkcja dostępna tylko w formacie PDF, nie ma sensu publikowanie / wydawanie pośredniej wersji PS dokumentu zawierającego te elementy. Zamiast tego będziesz musiał utworzyć ( ps2pdf -dALLOWPSTRANSPARENCY ...) i wysłać plik PDF.

Jeśli naprawdę potrzebujesz wysłać PS, być może dlatego, że chce tego wydawca, przekonwertuj plik PDF z powrotem na PostScript, używając pdf2ps. Wynikowy PostScript jest wizualnie nie do odróżnienia od jego poprzednika PDF.

Przykładowy dokument ex.texz miękką maską zdefiniowaną przez użytkownika. Skład z

latex ex
latex ex
dvips ex
ps2pdf -dALLOWPSTRANSPARENCY ex.ps

(Należy pamiętać, że przetwarzanie dokumentów zależnych od funkcji przezroczystości wymaga Ghostscript w wersji 9.52 lub nowszej).

\documentclass{article}

\usepackage[a6paper,landscape]{geometry}
\usepackage{tikz}
\usetikzlibrary{patterns}

\begin{document}

% define soft mask
\pgfdeclarefading{myFading}{%
  \tikz\shade [left color=pgftransparent!0, right color=pgftransparent!100] (0,0) rectangle (2,2);
}%
%
\begin{tikzpicture}
  % checkerboard background
  \pattern [pattern=checkerboard, pattern color=black!30] (0,0) rectangle (9,4);
  % blue rect with transparency gradient
  \fill [color=blue, path fading=myFading] (1,1) rectangle (3,3); 
  % red rect with transparency gradient
  \fill [color=red, path fading=myFading] (4,1) rectangle (8,3); 
\end{tikzpicture}

\end{document}

Pośredni Postscript (jak pokazano na gvlub GSviewlub drukowane na papierze)

Ostateczny plik PDF (po ps2pdf -dALLOWPSTRANSPARENCY ex.ps):

Postscript, przekonwertowany z powrotem z PDF ( pdf2ps ex.pdf ex2.ps):