找回密码
 快速注册
搜索
查看: 392|回复: 8

用了minipage,怎么才能把底边对齐?

[复制链接]

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

abababa 发表于 2021-11-23 16:17 |阅读模式
如题,代码如下:
  1. \begin{figure}
  2. \begin{minipage}{.3\textwidth}
  3. \begin{tikzpicture}[scale=5,label style/.style={font=\scriptsize}, every node/.style={font=\scriptsize}]
  4. \tkzDefPoints{0/0/A,1/0/B};
  5. \tkzDefPointBy[rotation=center B angle -60](A)\tkzGetPoint{C}
  6. \tkzCircumCenter(A,B,C)\tkzGetPoint{O}
  7. \tkzDrawSegments[color=OliveGreen](A,B B,C C,A);
  8. \tkzDrawSegments[color=Purple](O,A O,B O,C);
  9. \end{tikzpicture}
  10. \end{minipage}%
  11. \begin{minipage}{.3\textwidth}
  12. \begin{tikzpicture}[scale=5,label style/.style={font=\scriptsize}, every node/.style={font=\scriptsize}]
  13. \tkzDefPoints{0/0/A,1/0/B};
  14. \tkzDefPointBy[rotation=center B angle -60](A)\tkzGetPoint{C}
  15. \tkzDefPointBy[rotation=center A angle 40](B)\tkzGetPoint{X}
  16. \tkzInterLL(A,X)(B,C)\tkzGetPoint{D};
  17. \tkzDefPointBy[rotation=center B angle 20](C)\tkzGetPoint{X}
  18. \tkzInterLL(A,D)(B,X)\tkzGetPoint{E};
  19. \tkzDefPointBy[rotation=center C angle 20](A)\tkzGetPoint{X}
  20. \tkzInterLL(A,D)(C,X)\tkzGetPoint{F};
  21. \tkzLabelAngle[color=Purple, pos=0.2](B,A,D){$40^\circ$}
  22. \tkzLabelAngle[color=Purple, pos=0.3](C,B,E){$20^\circ$}
  23. \tkzLabelAngle[color=Purple, pos=0.3](A,C,F){$20^\circ$}
  24. \tkzDrawSegments[color=OliveGreen](A,B B,C C,A);
  25. \tkzDrawSegments[color=Purple](A,D B,E C,F);
  26. \end{tikzpicture}
  27. \end{minipage}%
  28. \begin{minipage}{.3\textwidth}
  29. \begin{tikzpicture}[scale=5,label style/.style={font=\scriptsize}, every node/.style={font=\scriptsize}]
  30. \tkzDefPoints{0/0/A,1/0/B};
  31. \tkzDefPointBy[rotation=center B angle -60](A)\tkzGetPoint{C}
  32. \tkzDefPointBy[rotation=center A angle 45](B)\tkzGetPoint{X}
  33. \tkzDefPointBy[rotation=center B angle -45](A)\tkzGetPoint{Y}
  34. \tkzInterLL(A,X)(B,Y)\tkzGetPoint{O};
  35. \tkzInterLC(A,C)(O,C)\tkzGetFirstPoint{M};
  36. \tkzInterLC(B,C)(O,C)\tkzGetSecondPoint{N};
  37. \tkzLabelAngle[color=Purple, pos=0.2](B,A,O){$45^\circ$}
  38. \tkzLabelAngle[color=Purple, pos=0.2](O,M,C){$30^\circ$}
  39. \tkzDrawSegments[color=OliveGreen](A,B B,C C,A);
  40. \tkzDrawSegments[color=Purple](O,A O,B O,C O,M O,N);
  41. \end{tikzpicture}
  42. \end{minipage}%
  43. \end{figure}
复制代码
画了三个等边三角形,都是一样大,怎么才能让底边都在同一水平线上?

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2021-11-23 17:01
给的代码又不交待需要什么宏包,颜色又未定义,我怎么测试?

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2021-11-23 17:08
回复 2# kuing
哦,我又忘了,把那些包都放到其它文件里,就忘了复制了。
  1. % 颜色,必须放在前面
  2. \usepackage[dvipsnames, svgnames]{xcolor}
  3. \usepackage{pgf,tikz}
  4. \usepackage{float}
  5. \usepackage{pgfplots,wrapfig}
  6. \usepackage{graphicx}
  7. \usepackage{subfigure}
  8. \usepackage{tkz-euclide}
  9. % 页边距设置
  10. \usepackage[top=0.5in,bottom=0.5in,left=0.5in,right=0.5in]{geometry}
复制代码

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2021-11-23 18:10
用 \fbox 把 tikzpicture 框住,发现:
QQ截图20211123180820.png
看来 minipage 默认是居中对齐,所以应该加参数 [ b ],即
  1. \begin{minipage}[b]{.3\textwidth}
复制代码
然而后两个图在绘制过程中在外面产生了看不见的点……
煮饭先,晚点再说……

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2021-11-23 18:30
回复 4# kuing

原来如此,那这样的话,用
\clip(0,0) rectangle (1,0.88);
把多余的东西剪裁下去就好了,经尝试后果然有效。

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2021-11-23 22:25
回复 5# abababa

那最下面那条边会不会没了一半(线变细)

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2021-11-23 23:38
回复 5# abababa

更简单的方法是在最后画线之前加 \pgfresetboundingbox 将边界归零。
测试代码:
  1. \documentclass{article}
  2. % 颜色,必须放在前面
  3. \usepackage[dvipsnames, svgnames]{xcolor}
  4. \usepackage{pgf,tikz}
  5. \usepackage{float}
  6. \usepackage{pgfplots,wrapfig}
  7. \usepackage{graphicx}
  8. \usepackage{subfigure}
  9. \usepackage{tkz-euclide}
  10. % 页边距设置
  11. \usepackage[top=0.5in,bottom=0.5in,left=0.5in,right=0.5in]{geometry}
  12. \begin{document}
  13. \begin{figure}
  14. \begin{minipage}{.3\textwidth}
  15. \fbox{%for test
  16. \begin{tikzpicture}[scale=5,label style/.style={font=\scriptsize}, every node/.style={font=\scriptsize}]
  17. \tkzDefPoints{0/0/A,1/0/B};
  18. \tkzDefPointBy[rotation=center B angle -60](A)\tkzGetPoint{C}
  19. \tkzCircumCenter(A,B,C)\tkzGetPoint{O}
  20. \tkzDrawSegments[color=OliveGreen](A,B B,C C,A);
  21. \tkzDrawSegments[color=Purple](O,A O,B O,C);
  22. \end{tikzpicture}}
  23. \end{minipage}%
  24. \begin{minipage}{.3\textwidth}
  25. \fbox{%for test
  26. \begin{tikzpicture}[scale=5,label style/.style={font=\scriptsize}, every node/.style={font=\scriptsize}]
  27. \tkzDefPoints{0/0/A,1/0/B};
  28. \tkzDefPointBy[rotation=center B angle -60](A)\tkzGetPoint{C}
  29. \tkzDefPointBy[rotation=center A angle 40](B)\tkzGetPoint{X}
  30. \tkzInterLL(A,X)(B,C)\tkzGetPoint{D};
  31. \tkzDefPointBy[rotation=center B angle 20](C)\tkzGetPoint{X}
  32. \tkzInterLL(A,D)(B,X)\tkzGetPoint{E};
  33. \tkzDefPointBy[rotation=center C angle 20](A)\tkzGetPoint{X}
  34. \tkzInterLL(A,D)(C,X)\tkzGetPoint{F};
  35. \tkzLabelAngle[color=Purple, pos=0.2](B,A,D){$40^\circ$}
  36. \tkzLabelAngle[color=Purple, pos=0.3](C,B,E){$20^\circ$}
  37. \tkzLabelAngle[color=Purple, pos=0.3](A,C,F){$20^\circ$}
  38. \pgfresetboundingbox
  39. \tkzDrawSegments[color=OliveGreen](A,B B,C C,A);
  40. \tkzDrawSegments[color=Purple](A,D B,E C,F);
  41. \end{tikzpicture}}
  42. \end{minipage}%
  43. \begin{minipage}{.3\textwidth}
  44. \fbox{%for test
  45. \begin{tikzpicture}[scale=5,label style/.style={font=\scriptsize}, every node/.style={font=\scriptsize}]
  46. \tkzDefPoints{0/0/A,1/0/B};
  47. \tkzDefPointBy[rotation=center B angle -60](A)\tkzGetPoint{C}
  48. \tkzDefPointBy[rotation=center A angle 45](B)\tkzGetPoint{X}
  49. \tkzDefPointBy[rotation=center B angle -45](A)\tkzGetPoint{Y}
  50. \tkzInterLL(A,X)(B,Y)\tkzGetPoint{O};
  51. \tkzInterLC(A,C)(O,C)\tkzGetFirstPoint{M};
  52. \tkzInterLC(B,C)(O,C)\tkzGetSecondPoint{N};
  53. \tkzLabelAngle[color=Purple, pos=0.2](B,A,O){$45^\circ$}
  54. \tkzLabelAngle[color=Purple, pos=0.2](O,M,C){$30^\circ$}
  55. \pgfresetboundingbox
  56. \tkzDrawSegments[color=OliveGreen](A,B B,C C,A);
  57. \tkzDrawSegments[color=Purple](O,A O,B O,C O,M O,N);
  58. \end{tikzpicture}}
  59. \end{minipage}%
  60. \end{figure}
  61. \end{document}
复制代码

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2021-11-24 09:17
回复 6# kuing

确实变细了,后来把那个矩形(0,0)改成(0,-0.1)就好了。
回复 7# kuing

\pgfresetboundingbox 是不是就是先把之前定义的东西所占的画面清除掉,然后后面再draw,画出来什么就是什么,没画到的点就不管了,是不是这么理解?

15

主题

958

回帖

1万

积分

积分
12454

显示全部楼层

色k 发表于 2021-11-24 09:56
回复 8# abababa

yes

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 12:28

Powered by Discuz!

× 快速回复 返回顶部 返回列表