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