如何将 TikZ 绘图的参考点设置为自定义环境(例如小页面)?

如何将 TikZ 绘图的参考点设置为自定义环境(例如小页面)?

我正在尝试将 TikZ 绘图的位置垂直降低 1 厘米,以便在页面顶部添加空白条。为此,我已添加到baseline=1cm参数中,\begin{tikzpicture}[overlay,remember picture]并且在重新编译 tex 文件后它确实有效,但在另一次重新编译后,绘图又回到了之前的位置!

如何在任何情况下都使绘图保持在页面顶部以下 1 厘米处,或者更好的是,如何将 TikZ 绘图的参考点设置为自定义环境,比如说小页面而不是整个页面,以便我可以将绘图定位到我想要的任何位置?

请注意,这些代码都是从互联网上获取的\draw,我对 TikZ

\documentclass[a4paper,14pt]{extbook}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage[left=0cm,right=0cm,top=1cm,bottom=4.5cm]{geometry}
\begin{document}

\begin{titlepage}
\begin{tikzpicture}[overlay,remember picture,baseline=1cm]
%\begin{scope}[shift={(0mm,30mm)}]%[]
\draw[gray,fill=lime!20] ([xshift=-2cm]current page.north east) -- ([yshift=-2cm]current page.north east) -- ([yshift=-4cm]current page.north east) -- ([xshift=-4cm]current page.north east);
% \end{scope}
\end{tikzpicture}

\pagecolor{gray!10}
    \begin{center}
    {\fontsize{60pt}{55pt}\bf\selectfont The Title Of\\ My Book}
    \end{center}
\addvspace{10pt}
    
\begin{center}
\fbox{
\begin{minipage}[]{0.5\textwidth}
Some Text...
\end{minipage}
}
\end{center}
\end{titlepage}

\end{document}

在此处输入图片描述 在此处输入图片描述

答案1

Atikzpicture绘制在私有坐标系上,完成后,将计算其边界框并将其像其他字符一样放置。如果您可以更改此行为,则可以使用absolute positioning,就像您对代码所做的那样。current page节点引用tikzpicture绘制 的特定页面,anchorsnorth westcenter、... 在这种情况下,图片绘制在这些特定位置上,通常在两次编译之后。因此,如果您想在顶部有 1cm 的空线,您可以在该位置下方 1cm 处绘制丝带current page.north。这就是我在下面的代码中所做的,只需调整您的初始shifts

关于第二个问题,我不知道如何使用,absolute positioningminipage如果你想绘制与某个段落相关的内容,一个可能的解决方案可能是使用blankest tcolorbox并使用相应的锚点绘制您想要的任何内容frame。以下代码中还有一个示例。

另一个解决方案可能是使用tikzmark参考您的文本并使用它们进行绘制。

\documentclass[a4paper,14pt]{extbook}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage[left=0cm,right=0cm,top=1cm,bottom=4.5cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

\begin{document}

\begin{titlepage}
\begin{tikzpicture}[overlay,remember picture]
\draw[gray,fill=lime!20] ([shift={(-2cm,-1cm)}]current page.north east) -- ([yshift=-3cm]current page.north east) -- ([yshift=-5cm]current page.north east) -- ([shift={(-4cm,-1cm)}]current page.north east);
\end{tikzpicture}

\pagecolor{gray!10}
    \begin{center}
    {\fontsize{60pt}{55pt}\bf\selectfont The Title Of\\ My Book}
    \end{center}
\addvspace{10pt}
    
\begin{center}
\fbox{
\begin{minipage}[]{0.5\textwidth}
Some Text...
\end{minipage}
}
\end{center}

\begin{tcolorbox}[enhanced, blankest, width=.75\linewidth, center, underlay={\draw[lime!40, line width=5mm](frame.north west)--(frame.south east); \fill[lime!50!red] ([shift={(25mm,15mm)}]frame.center) circle(10mm);}]
\lipsum[1]
\end{tcolorbox}

\end{titlepage}

\end{document}

在此处输入图片描述

相关内容