编辑

编辑

我正在尝试定制一个模板,其中以下代码片段根据所创建的书籍部分生成一个“迷你目录”。

\node[anchor=south east,inner xsep=1.7cm,inner ysep=.5cm,fill=black] 
at (\paperwidth-1cm,-\paperheight+1cm) {
    \parbox[t][][t]{8.5cm}{\printcontents{l}{0}{\setcounter{tocdepth}{1}}%
}};

我想知道是否可以计算该节点或其中文本的大小,因为我想添加一个奇特的细节,另一个充当“玻璃”的节点,此外它还用于实际目的,我作为背景图像包含的一些图像具有白色色调,我所做的自动化太复杂,无法从外部管理字体颜色。

编辑

我找到了一种克服的方法,问题是以下:

我用了罗格朗橙皮书创建书籍的模板,我修改了structure.tex文件中的部分标题。(代码很长,但这里是主要部分)

{\thispagestyle{empty}%
    \begin{tikzpicture}[remember picture,overlay]%
    \node at (current page.north west){\begin{tikzpicture}[remember picture,overlay]%    
        \node [anchor=north west,inner sep=0pt] at (0,0) {\noindent\makebox[\paperwidth]{\includegraphics[width=\paperwidth,height=\paperheight]{\thepartimage}}};%THE PART IMAGE (a Background image)
        
        \node[anchor=south east,fill=black,fill opacity=0.3] at (\paperwidth,-\paperheight) {\parbox{\paperwidth}{
            \hfill \vspace*{\paperheight}
        }};%The Glassy effect (Or Opaccity)
        
        \node[anchor=north] at (4cm,-3.25cm){\color{white}\fontsize{200}{100}\sffamily\bfseries\thepart}; %PART NUMBER (e.g III)
        
        \node[anchor=north east] at (\paperwidth-1cm,-3.1cm){\parbox[t][][t]{15cm}{\centering\strut\raggedleft\color{white}\fontsize{55}{55}\sffamily\bfseries#2}};%PART NAME (e.g Theoretical Infrastructure)
        
        \node[anchor=south east,inner xsep=0.6cm] (chapterminicontents) at (\paperwidth-1cm,-\paperheight+1cm){\parbox[t][][t]{8.5cm}{
                \printcontents{l}{0}{\setcounter{tocdepth}{1}}
        }};%Minicontents index (all the chapters in this part)
    \end{tikzpicture}};
\end{tikzpicture}}%

这个修改可以解决两个问题,如果选定的 BG 图片和字体(就像我的情况一样)是白色,它会使 BG 极化并允许读取部分标题和小内容。

为什么我要计算节点的大小?

这是因为我想创建玻璃效果并将其应用于小内容表。

最后

感谢您的时间和帮助。

答案1

如果你只需要玻璃背景,那么添加类似

fill=gray,fill opacity=0.3,text opacity=1

到节点。对于此应用程序,您不必明确测量节点的大小。这是尝试重建您描述的设置。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[overlay,remember picture]
 \node[anchor=south east] at ([xshift=-5cm,yshift=2.5cm]current page.south east)
 {\includegraphics{example-image-duck}};
 \node[anchor=south east,text width=8.5cm,
 fill=gray,fill opacity=0.3,text opacity=1,text=white,inner sep=1em] at ([xshift=-1cm,yshift=1cm]current page.south east)
 {\vspace*{-2\baselineskip}\tableofcontents};
\end{tikzpicture}
\section{Purr}
\section{Hibernate}
\section{Pft}
\end{document}

在此处输入图片描述

如果您需要了解尺寸,可以使用calc库。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[overlay,remember picture]
 \node[anchor=south east] at ([xshift=-5cm,yshift=2.5cm]current page.south east)
 {\includegraphics{example-image-duck}};
 \node[anchor=south east,text width=8.5cm,
 fill=gray,fill opacity=0.3,text opacity=1,text=white,inner sep=1em] (tocnode)
 at ([xshift=-1cm,yshift=1cm]current page.south east)
 {\vspace*{-2\baselineskip}\tableofcontents};
 \path let \p1=($(tocnode.north east)-(tocnode.south west)$) in
  (tocnode.north) node[above=1cm,text width=5cm,draw,fill=white] {The node \texttt{tocnode}
  is \x1\ wide and \y1\ tall.};
\end{tikzpicture}
\section{Purr}
\section{Hibernate}
\section{Pft}
\end{document}

在此处输入图片描述

使白色背景上的白色文字可见的其他选项包括使用包contour

相关内容