假设我有一个矩形的坐标(x,y,高度,宽度或 2 个点)。
现在我想让文本居中水平/垂直旋转 自动地,同时牢记文本属性(例如字体大小/粗体)。
当然,我可以手动进行此操作(反复试验),但是如果框发生变化(并且框实际上是从纸张尺寸/边距/等得出的),我应该再次手动执行此操作。
此框仅用于“调试”目的。最后应该能够移除/使框不可见。
MWE +截图:
\documentclass{book}
\usepackage{tikz}
\begin{document}
\def\X{4}
\def\Y{4}
\def\WIDTH{2}
\def\HEIGHT{15}
\begin{tikzpicture}
% "debug" box
\draw (\X,\Y) -- (\X+\WIDTH,\Y) -- (\X+\WIDTH,\Y+\HEIGHT) -- (\X,\Y+\HEIGHT) -- (\X,\Y);
% How to get this automatically centered vertically/horizontally in the box?
\node[rotate=270,font=\bf] at (\X, \Y) (a) {\Huge center horz/vert in box?};
\end{tikzpicture}
\end{document}
该 MWE 产生:
答案1
为什么这么复杂?只需放置一个节点,用来draw
在其周围绘制矩形,或省略它以删除矩形。
平均能量损失
\documentclass{book}
\usepackage{tikz}
\begin{document}
\def\X{4}%
\def\Y{4}%
\def\WIDTH{2}%
\def\HEIGHT{15}%
\begin{tikzpicture}
\node[draw, rotate=270, minimum height=\WIDTH cm, minimum width=\HEIGHT cm] at (\X, \Y) {\bfseries\Huge Centered text in box};
\end{tikzpicture}
\end{document}
结果
答案2
以下示例将节点放置在矩形的中间,而不是矩形的左下角。节点的锚点就放在那里,也就是节点的中心:
\documentclass{book}
\usepackage{tikz}
\begin{document}
\def\X{4}
\def\Y{4}
\def\WIDTH{2}
\def\HEIGHT{15}
\begin{tikzpicture}
% "debug" box
\draw (\X,\Y) rectangle (\X+\WIDTH,\Y+\HEIGHT);
\path
(\X, \Y) --
node[
rotate=270,
anchor=center,
font=\bfseries\Huge,
] {Centered text in box}
(\X + \WIDTH, \Y + \HEIGHT)
;
\end{tikzpicture}
\end{document}