TeX - LaTeX Asked by TobiBS on July 24, 2020
I need to know the height of a TikZ node and store it in a length so it can later be used by other commands and reference this exact dynamic length.
So here is an MWE that illustrates what I want to do, but of course this is not how totalheightof
works, it measures the height of the text, but I want to get the height of the node:
documentclass{article}
newlength{heightOfMyNode}
usepackage{tikz,calc}
begin{document}
begin{tikzpicture}
node(mynode)[text width=3cm]{This is a node that varies in height and I need to know the hieght and store it in a length};
end{tikzpicture}
setlength{heightOfMyNode}{totalheightof{node.height}}
And here I want to use the length for a rule{heightOfMyNode}{2pt}
end{document}
Looking forward to your suggestions, especially direct TikZ/PGF solutions that I overlooked, maybe with veclen
?
Well, I suppose you just want to know the width and height of box containing a node that may be transformed. Then it is easy to calculate the width and height of the bounding box.
documentclass[tikz, border=1cm]{standalone}
usetikzlibrary{fit, calc}
usepackage{xparse}
makeatletter
NewDocumentCommand {getnodedimen} {O{nodewidth} O{nodeheight} m} {
begin{pgfinterruptboundingbox}
begin{scope}[local bounding box=bb@temp]
node[inner sep=0pt, fit=(#3)] {};
end{scope}
path ($([email protected] east)-([email protected] west)$);
end{pgfinterruptboundingbox}
pgfgetlastxy{#1}{#2}
}
makeatother
begin{document}
begin{tikzpicture}
node(mynode)[text width=3cm, draw=red]{This is a node that varies in height and I need to know the hieght and store it in a length};
getnodedimen{mynode}
node[draw, minimum height=nodeheight, minimum width=nodewidth] at (4, 0) {};
end{tikzpicture}
end{document}
Correct answer by ZhiyuanLck on July 24, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP