如何将 Tikz 绘图设置为页面背景?

如何将 Tikz 绘图设置为页面背景?

我尝试使用图层\usepackage{scrlayer-scrpage}并添加 Tikz 绘图,但它似乎仍然将绘图与其他东西相关联,而不是位于任何东西的后面。

我不确定我做错了什么,也不确定这些命令是否达到了我想要的效果。

  1. 如何\usepackage{scrlayer-scrpage}正确地在一页中创建 2 个层?
  2. 我应该在何时(在文件的什么位置)放置删除图层的命令来实现背景(二十面体)和所有其余部分?

该文件编译没有问题,更多的是(我认为)理解在哪里放置以及如何使用命令(我在互联网上找到的)

我把整个代码放在这里,只更改了内容以使其更易于阅读。我保留了二十面体,因为它很漂亮。第一部分是包(请在回答时考虑它们)。第二部分是文档。

\documentclass[
paper=a4,                       % Papierformat
oneside,                        % einseitig
fontsize=14pt,                % Schriftgröße
headsepline=.5pt,             % untere Kopfzeilenlinie
numbers=noenddot,             % 1.1.1. --> 1.1.1
parskip=half,                 % halber Absatz
captions=tableheading,        % Tabellenüberschriften
DIV=12,                       % Satzspiegel (KOMA-Script)
toc=bibliography,             % Quellenverzeichnis ins Inhaltsverzeichnis aufnehmen
%tocdepth=4,                  % Begrenzung der Ebenen im Inhaltsverzecihnis
%headings=normal,                           % Größe der überschriften verkleinern
final                                                   % Status des Dokuments (final/draft)
]{scrartcl}
%--------------------------------------------------------------------------------
% Ab hier werden Packages geladen.
\usepackage{fouriernc}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc} % this is needed for umlauts
\usepackage[T1]{fontenc}    % this is needed for correct output of umlauts in pdf
\usepackage{esvect}         % this is needed for dot over vector \dot{\vec{v}}
\usepackage{cancel}         % diagonal line on letter to show erase
\usepackage{framed}         % highlight text with chosen color
\usepackage{mathtools}  %needed to avoid \\ problems
\newcommand\PZB{\stackrel{\mathclap{\normalfont\mbox{PBZ}}}{=}}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\normalfont % Lädt aus T1lmr.fd.
\DeclareFontShape{T1}{lmr}{bx}{sc} { <-> ssub * cmr/bx/sc }{}
\usepackage{cite}
\usepackage[hyphens]{url}   % Nutze vorhandene Bindestriche für Zeilenumbrüche in URLs.
\usepackage{etoolbox}
\apptocmd{\sloppy}{\hbadness 10000\relax}{}{}   % Ignoriere Boxen mit zu viel Weißraum im 'sloppy'-Modus.
\usepackage{amsmath,amsfonts}
\usepackage{amssymb}
\renewcommand{\theequation}{\arabic{section}.\arabic{subsection}}   % Formeln mit genauer 
Abschnittangabe beschriften.
%package trfsign adds laplace and fourier correspondence signs
\usepackage{trfsigns}
\numberwithin{equation}{subsection}  % Die Nummerierung einer Gleichung hinten anhängen.
\newcommand\numberthis{\addtocounter{equation}{1}\tag{\theequation}} % Einzelne Nummerierung innerhalb von 'align*'-Umgebung.
%\sisetup{exponent-product= \cdot ,output-decimal-marker = {,},detect-family,detect-display-math = true,per-mode = symbol-or-fraction}
% Pakete für Quellcode
\usepackage{enumerate}
\usepackage{listings}
\usepackage{paralist}
\usepackage[usenames,dvipsnames]{xcolor}
\lstset{
basicstyle=\scriptsize\ttfamily,
keywordstyle=\bfseries\ttfamily\color{NavyBlue},
stringstyle=\color{violet}\ttfamily,
commentstyle=\color{green}\ttfamily,
emph={square}, 
emphstyle=\color{blue}\texttt,
emph={[2]root,base},
emphstyle={[2]\color{yac}\texttt},
language=c,%
tabsize=2,%
basicstyle=\footnotesize\ttfamily,%
numbers=left,%
numberfirstline,%
breaklines=true,%
breakatwhitespace=true,%
linewidth=\textwidth,%
xleftmargin=0.075\textwidth,%
frame=tlrb,%
captionpos=b%
inputencoding={utf8},
extendedchars=false, 
% Definiere Sonderzeichen:
literate={°}{{\si^{\circ}ree}}1
        {ä}{{\"a}}1
        {ö}{{\"o}}1
        {ü}{{\"u}}1
        {Ä}{{\"A}}1
        {Ö}{{\"O}}1
        {ü}{{\"U}}1 %
}
% Pakete für Grafiken
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{rotating}
\usepackage{float}
\usepackage{picinpar}
\usepackage[section]{placeins}
\usepackage{microtype}          % Schriftbildverschönerung
\usepackage{textcomp}           % Fügt zusätzliche Symbole im Textmodus ein.
\usepackage[                    % Einstellungen für Bildunter- bzw. überschriften:
format=hang,                  % Einzug
indention=-0.5cm,             % Einzugskorrektur
]{caption}
% Pakete für Schaltpläne/Zeichnungen
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usepackage{tikz,tikz-3dplot}                                                           % TIKZ-Paket
\usepackage{circuitikz}                                             % Schaltpläne mit TIKZ erstellen.
\usetikzlibrary{circuits.ee.IEC,positioning}    % Verwende offizielle IEC-Schaltzeichen.
\usetikzlibrary{matrix}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{calc} %NEED TO CALCULATE NEW POINTS
\usepackage{fouriernc}
% Pakete für Tabellen
\usepackage{array}
\usepackage{tabularx}
\newcolumntype{w}[1]{>{\raggedleft\hspace{0pt}}p{#1}}
\usepackage{bigdelim}         % Ermögliche bessere Formatierung der Zellen untereinander.
\usepackage{booktabs}         % Ermögliche besseres Tabellen-Layout.
% Pakete für Style/Formatierung
\usepackage{fancybox}
\usepackage{ulem}
\usepackage{setspace}
\usepackage[a4paper,lmargin={5mm},rmargin={5mm},tmargin={25mm},bmargin= {25mm}]{geometry}
\addtolength{\footskip}{-0.8cm}  % Fussbereich 0,8 cm höher, so dass die Seitennummierung höher ist.
\onehalfspacing
% Anhang
\usepackage[title, titletoc]{appendix}
\usepackage{hyperref}   % Muss ganz zum Schluss geladen werden.
% Packages komplett!
% Kopf- und Fußzeile setzen
\usepackage{scrlayer-scrpage}               % KOMA-Paket
\pagestyle{scrheadings}                         % Seitenstil
\setkomafont{pagehead}{\normalfont}
\clearscrheadfoot                                       % Lösche alle Voreinstellungen.
%\ihead{\untertitel}                                    % Schreibe Untertitel innen in die Kopfzeile
%\chead{\nameOfTitel}                               % Schreibe Versuchsthema mittig in die Kopfzeile
%\ohead{\autor}                             % Schreibe Name außen in die Kopfzeile
\cfoot{\pagemark}                                       % Erstelle (zentrale) Seitennummern.
%commands
\newcommand{\TF}[2][15em]{\TextField[borderwidth=0.1pt,
                                 width=#1,
                                 height=1.25em,
                                 charsize=10pt,
                                 backgroundcolor=blue!50!gray!20,
                                 color=blue!44!black,
                                 bordercolor=red!20,
                                 name=#2
                                ]{}}

 \newcommand{\BTF}[2][15em]{\TextField[borderwidth=0.1pt,
                                 width=#1,
                                 height=2.5em,
                                 charsize=10pt,
                                 backgroundcolor=blue!50!gray!20,
                                 color=blue!44!black,
                                 bordercolor=red!20,
                                 name=#2
                                ]{}}
% \TF{a}\\
% \TF[25em]{b}
%commands for d20 background drawing
\pgfmathsetmacro{\b}{0.1}
\pgfmathsetmacro{\c}{1-\b}
\newcommand{\pentagon}[6]{
\filldraw[fill=gray,draw=black] 
($\c*(#1)+\b*(#2)$)--
($\c*(#1)+\b*(#3)$)--
($\c*(#1)+\b*(#4)$)--
($\c*(#1)+\b*(#5)$)--
($\c*(#1)+\b*(#6)$)--cycle;
}
\newcommand{\hexagon}[4]{
\draw[#4]
($\c*(#1)+\b*(#2)$)--
($\b*(#1)+\c*(#2)$)--
($\c*(#2)+\b*(#3)$)--
($\b*(#2)+\c*(#3)$)--
($\c*(#3)+\b*(#1)$)--
($\b*(#3)+\c*(#1)$)--cycle;
}

该文件:

\begin{document}
\DeclareNewLayer[% define a new layer
background,
head,
contents=\transparent{0.5}\includegraphics[width=\textwidth]{head}
\begin{tabular}{rll}
&a&b
&c&d
\end{tabular}
\tdplotsetmaincoords{65}{100}
\begin{tikzpicture}[tdplot_main_coords,scale=1,line join=round]
\pgfmathsetmacro\a{1}
\pgfmathsetmacro{\phi}{\a*(1+sqrt(5))/2}
\path 
coordinate(A) at (0,\phi,\a)
coordinate(B) at (0,\phi,-\a)
coordinate(C) at (0,-\phi,\a)
coordinate(D) at (0,-\phi,-\a)
coordinate(E) at (\a,0,\phi)
coordinate(F) at (\a,0,-\phi)
coordinate(G) at (-\a,0,\phi)
coordinate(H) at (-\a,0,-\phi)
coordinate(I) at (\phi,\a,0)
coordinate(J) at (\phi,-\a,0)
coordinate(K) at (-\phi,\a,0)
coordinate(L) at (-\phi,-\a,0);
%MORE POINTS
%G-CEAKL "TOP" 
\hexagon{G}{C}{E}{draw opacity = 0.2}
\hexagon{G}{E}{A}{draw opacity = 0.2}
\hexagon{G}{A}{K}{draw opacity = 0.2}
\hexagon{G}{K}{L}{draw opacity = 0.2}
\hexagon{G}{L}{C}{draw opacity = 0.2}
%F-IJDHB "BOTTOM"
\hexagon{F}{I}{J}{draw opacity = 0.2}
\hexagon{F}{J}{D}{draw opacity = 0.2}
\hexagon{F}{D}{H}{draw opacity = 0.2}
\hexagon{F}{H}{B}{draw opacity = 0.2}
\hexagon{F}{B}{I}{draw opacity = 0.2}
%CJEIABKHLD "STRIP"
\hexagon{C}{J}{E}{draw opacity = 0.2}
\hexagon{J}{E}{I}{draw opacity = 0.2}
\hexagon{E}{I}{A}{draw opacity = 0.2}
\hexagon{I}{A}{B}{draw opacity = 0.2}
\hexagon{A}{B}{K}{draw opacity = 0.2}
\hexagon{B}{K}{H}{draw opacity = 0.2}
\hexagon{K}{H}{L}{draw opacity = 0.2}
\hexagon{H}{L}{D}{draw opacity = 0.2}
\hexagon{L}{D}{C}{draw opacity = 0.2}
\hexagon{D}{C}{J}{draw opacity = 0.2}
\end{tikzpicture}
%--------------------------------------------------------
\newpage
\begin{table}[htb]
\caption{some table}
\flushleft
\begin{tabular}{|l|l|l|l|}
\hline 
&1&2&3&4
&5&6&7&8
\end{tabular}
\end{table}
\end{document}

答案1

您必须使用正确的语法\DeclareNewLayer

\DeclareNewLayer[<options>]{<layer name>}

请注意,如果向图层页面样式添加未定义的图层,则不会收到任何错误消息。

然后,您必须决定应该将图层添加到哪个图层页面样式:单一页面样式,如scrheadings、等plain.scrheadingsempty如果它应该与所有图层页面样式一起使用,那么您必须将图层添加到样式@everystyle@

如果该层应该在其他层使用之前添加

\AddLayersAtBeginOfPageStyle{<layer page style name>}{<layer names>}

例子:

\documentclass[
  fontsize=14pt,
  DIV=12,
  headsepline=.5pt,
  parskip=half
]{scrartcl}
\usepackage{blindtext}% only for dummy text in the example
\usepackage{fouriernc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tikz}% loads tikz and other packages
\usepackage[onehalfspacing]{setspace}
\usepackage[a4paper,lmargin={5mm},rmargin={5mm},tmargin={25mm},bmargin= {25mm}]{geometry}
\addtolength{\footskip}{-0.8cm}

\usepackage{scrlayer-scrpage}% sets page style scrheadings automatically

\usepackage{hyperref}   % Muss ganz zum Schluss geladen werden.

\setkomafont{pagehead}{\normalfont}
\clearpairofpagestyles% <- changed! (outdated command replaced)
\cfoot{\pagemark}
\chead{Title}

\DeclareNewLayer[% define a new layer
  background,
  head,
  contents={%
    \tikz\node[opacity=.7,inner sep=0pt,outer sep=0pt]
      {\includegraphics[width=\layerwidth,height=\layerheight]{example-image}};%
  }
]{myheader}

\begin{document}
\Blindtext

\clearpage
\AddLayersAtBeginOfPageStyle{scrheadings}{myheader}
\Blindtext[2]

\clearpage
\RemoveLayersFromPageStyle{scrheadings}{myheader}
\Blindtext
\end{document}

或者如果该图层应该与每个图层页面样式一起使用:

\documentclass[
  fontsize=14pt,
  DIV=12,
  headsepline=.5pt,
  parskip=half
]{scrartcl}
\usepackage{blindtext}% only for dummy text in the example
\usepackage{fouriernc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tikz}% loads tikz and other packages
\usepackage[onehalfspacing]{setspace}
\usepackage[a4paper,lmargin={5mm},rmargin={5mm},tmargin={25mm},bmargin= {25mm}]{geometry}
\addtolength{\footskip}{-0.8cm}

\usepackage{scrlayer-scrpage}% sets page style scrheadings automatically

\usepackage{hyperref}   % Muss ganz zum Schluss geladen werden.

\setkomafont{pagehead}{\normalfont}
\clearpairofpagestyles% <- changed! (outdated command replaced)
\cfoot{\pagemark}
\chead{Title}

\DeclareNewLayer[% define a new layer
  background,
  head,
  contents={%
    \tikz\node[opacity=.7,inner sep=0pt,outer sep=0pt]
      {\includegraphics[width=\layerwidth,height=\layerheight]{example-image}};%
  }
]{myheader}

\begin{document}
\Blindtext

\clearpage
\AddLayersAtBeginOfPageStyle{@everystyle@}{myheader}
\Blindtext[2]

\clearpage
\RemoveLayersFromPageStyle{@everystyle@}{myheader}
\Blindtext
\end{document}

结果:

在此处输入图片描述

相关内容