我对这方面很陌生TikZ
,正在尝试绘制标题页的一些基本形状。
我想将标签右对齐到右上角,node
以便无论标签有多长,它都能保持在原位。我已接近我想要的效果,但如果标签太长,则会溢出页面。
我非常肯定这远非最好的方法,并且我完全愿意接受建议。
奖励问题
我还没有研究过这些问题,但我想我可以问一下:
是否可以保持节点的定位相似而周围没有矩形以删除边框?
我可以设置标题容器的最小尺寸,但让它根据标签的宽度扩展吗?
平均能量损失
\documentclass[draft]{article}
\usepackage{mwe}
\usepackage{tikz}
\usepackage[showframe]{geometry}
\begin{document}
\begin{titlepage}
\begin{figure}[h]
\begin{tikzpicture}
\fill[red] (0,0) rectangle (.1\textwidth,1);
\fill[blue] (.12\textwidth,0) rectangle (\textwidth,1);
\filldraw[draw=black,fill=white] (.05\textwidth,-0.5) rectangle (.4\textwidth,1.5) node[pos=0.5] {Title};
\draw (0,-.5) rectangle (\textwidth, 1.5) node[pos=.9] {Some very long subtitle};
\end{tikzpicture}
\end{figure}
\vfill
\end{titlepage}
\end{document}
结果
答案1
猜测一下——您想要这样的东西吗?
minimum width
并且minimum height
可以用作node
s 的选项,让其按照其名称执行操作,即节点将在必要时扩展。通过node
直接放置 s 而不是使用路径来放置它们,我们可以利用anchor
来确定它们的位置。anchor=north east
使用节点的右上角进行放置。如果我们将其放置在文本块的右上角,我们就会得到(我认为)所需的结果。
我认为放置节点后绘制红线/蓝线更容易,使用backgrounds
库将线放在title
节点后面。
\documentclass[draft]{article}
\usepackage{tikz,tikzpagenodes}
\usetikzlibrary{backgrounds}
\usepackage[showframe]{geometry}
\begin{document}
\begin{titlepage}
\begin{tikzpicture}[remember picture,overlay]
\node (subtitle) [anchor=north east] at (current page text area.north east) {Some very, very, very, repetitive and long subtitle};
\node (title) [draw, fill=white, anchor=north west, minimum width=.35\textwidth, minimum height=20mm] at ([xshift={.05\textwidth+\parindent}, yshift=-0.5]current page text area.north west) {Title};
\begin{scope}[on background layer]
\draw [red, line width=10mm] (title.west -| current page text area.west) -- (title.center);
\draw [blue, line width=10mm] (title.center) -- (title.west -| current page text area.east) ;
\end{scope}
\end{tikzpicture}
\end{titlepage}
\end{document}
或者你可能想要
可以通过将节点归零来inner xsep
实现subtitle
:
\node (subtitle) [anchor=north east, inner xsep=0pt] at (current page text area.north east) {Some very, very, very, repetitive and long subtitle};