[latex]PGF and Tikz中的垂直文本盒子示例

33 篇文章 3 订阅
17 篇文章 0 订阅

实现垂直文本盒子,即将文本垂直排版,用于绘图.实现的方式很多,

唯一不能做的就是旋转一个盒子,

因为那样文字也会一起旋转,而不是垂直排版的.

例如下面图形中的文字垂直排版问题,就有点难度:


下面是一个示例::

%传热学图3-1
%%%%改变行距
\renewcommand{\baselinestretch}{0.2}
\linespread{0.2}
%缩放盒子
\scalebox{0.85}{
%绘图开始
\begin{tikzpicture}[scale=1,line width=1 pt,trim left]
%画一个矩形
\coordinate (p00) at (0,0);
\coordinate (p01) at (10,0);
\draw[->] (p00)--(p01);
%绘制原点O
\draw (0,0) --(0,-0.2) node[below](text0){$0$};
\path (p01) node[right](textinf){$\infty$};
%绘制xylabel和xyticker
\foreach \i/\j in {1/-4,2/-2,3/1,4/2,5/4,6/6,7/8,8/10,9/12} {
\draw (\i,0) --(\i,-0.2) node[below](){\footnotesize $10^{\j}$};
}
\draw[red,->,line width =2pt] (1,-0.75)--(1,-1)--(0,-1);
\draw[red,->,line width =2pt] (9,-0.75)--(9,-1)--(10,-1);
%绘制粗线
\pgfmathsetmacro{\ha}{0.25} 
\pgfmathsetmacro{\hb}{0.5} 
\pgfmathsetmacro{\LWB}{3pt} 
\draw[red,line width =\LWB] (1.05,\ha)--(1.4,\ha);
\draw[red,line width =\LWB] (1.8,\ha)--(3.4,\ha);
\draw[red,line width =\LWB] (4.1,\ha)--(4.4,\ha);
\draw[red,line width =\LWB] (5,\ha)--(5.7,\ha);
\draw[red,line width =\LWB] (6.15,\ha)--(7,\ha);
\draw[red,line width =\LWB] (2.6,\hb)--(3.5,\hb);
\draw[red,line width =\LWB] (6.5,\hb)--(7.5,\hb);
%绘制文本
\pgfmathsetmacro{\ha}{0.35} %抬高1mm
\pgfmathsetmacro{\hb}{0.6} %抬高1mm
\node[rectangle,rounded corners=1mm,fill=red!25](n1)at(0.2,-1.6){\parbox{4em}{极低速非稳态导热}};
\node[rectangle,rounded corners=1mm,fill=red!25](n2)at(9.65,-1.6){\parbox{4em}{极高速非稳态导热}};
\node[rectangle,above=5pt,rounded corners=1mm,fill=red!25](n3) at(1.2,\hb){\parbox{1em}{ 地球表面温度变化}} edge[blue,->] (1.2,\hb |- 1.4,\ha);
%\draw[blue,->] (1.2,\hb) --(1.2,\hb |- 1.4,\ha);
\node[rectangle,above=5pt,rounded corners=1mm,fill=red!25](n4)at(2.1,\hb){\parbox{1em}{ 金属热处理}} edge[blue,->] (2.1,\hb |- 1.4,\ha);
\node[rectangle,above=5pt,rounded corners=1mm,fill=red!25](n5)at(3,\hb){\parbox{1em}{快速干燥}} edge[blue,->] (3,\hb |- 1.4,\hb);
\node[rectangle,above=5pt,rounded corners=1mm,fill=red!25](n6)at(4.2,\hb){\parbox{1em}{汽车制动盘}} edge[blue,->] (4.2,\hb |- 1.4,\ha);
\node[rectangle,above=5pt,rounded corners=1mm,fill=red!25](n7)at(5.3,\hb){\parbox{1em}{内燃机气缸}}edge[blue,->] (5.3,\hb |- 1.4,\ha);
\node[rectangle,above=5pt,rounded corners=1mm,fill=red!25](n8)at(6.2,\hb){\parbox{1em}{等离子体喷涂}}edge[blue,->] (6.2,\hb |- 1.4,\ha);
\node[rectangle,above=5pt,rounded corners=1mm,fill=red!25](n9)at(7.2,\hb){\parbox{1em}{ 超级速度沸腾}}edge[blue,->] (7.2,\hb |- 7.5,\hb);
%绘制label
\node(nt)at(4.5,-1){\footnotesize $\left| {{{\partial t} \mathord{\left/
 {\vphantom {{\partial t} {\partial \tau }}} \right.
 \kern-\nulldelimiterspace} {\partial \tau }}} \right|/(K/s)]$};
\end{tikzpicture}
}

上面有效地使用了node和\parbox,将段落盒子的宽度设为一个字符即可.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值