找回密码
 快速注册
搜索
查看: 105|回复: 12

用tikz或Asymptote画的图能不能默认居中?

[复制链接]

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

abababa 发表于 2023-3-29 17:00 |阅读模式
如题,如果不写center那些命令,能不能有什么统一的设置,让它们默认都是水平居中的?

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-3-29 19:07
本帖最后由 hbghlyj 于 2023-3-30 09:18 编辑
abababa 发表于 2023-3-29 10:00
如果不写center那些命令
导言区添加如下代码 [来自TeXSE]
  1. \makeatletter
  2. \g@addto@macro\@floatboxreset\centering
  3. \makeatother
复制代码

figure、table里用了都会居中。但是如果调用了float包,用[H]选项就不是浮动的,可能就不起作用了。hejoseph 发表于 2023-3-30 09:17

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2023-3-30 15:49
hbghlyj 发表于 2023-3-29 19:07
Add the following to your document preambleThis will center the  environment on a line by itself.
h ...

试了一下,没有居中。代码如下:
  1. \documentclass[12pt]{article}
  2. \usepackage{amsmath,bm,yhmath,amssymb,etoolbox,esvect,stmaryrd,cite,enumitem,extarrows,mathtools,ifthen}
  3. \usepackage[amsmath, thmmarks]{ntheorem}
  4. {
  5.         \theoremstyle{nonumberplain}
  6.         \theoremheaderfont{\indent\bfseries}
  7.         \theorembodyfont{\normalfont}
  8.         \theoremsymbol{\ensuremath{\Box}}
  9.         \newtheorem{proof}{证明}
  10. }
  11. \usepackage{pgf,tikz}
  12. \usepackage[inline]{asymptote}
  13. \usepackage{float}
  14. \usepackage{pgfplots,wrapfig}
  15. \usepackage{graphicx}
  16. \usepackage{subfigure}
  17. \usepackage{tkz-euclide}
  18. \usetikzlibrary{arrows,automata,positioning,matrix,calc,intersections,shapes.geometric}
  19. \makeatletter
  20. \g@addto@macro\@floatboxreset\centering
  21. \makeatother
  22. \begin{document}
  23. $B$为圆$x^2+y^2 = 1$上一动点,$A(2, 0)$为定点,$\triangle ABC$为正三角形,$A, B, C$顺时针排列,求$C$点的轨迹。
  24. \begin{tikzpicture}[label style/.style={font=\scriptsize}]
  25. \draw[thick,->,>=latex](-1.5,0)--(3,0)node[right] {$x$};
  26. \draw[thick,->,>=latex](0,-1.5)--(0,2)node[above] {$y$};
  27. \coordinate (O) at (0,0);
  28. \coordinate (A) at (2,0);
  29. \coordinate (B) at ({0.5*sqrt(2)},{0.5*sqrt(2)});
  30. \tkzDefEquilateral(B,A)\tkzGetPoint{C}
  31. \tkzDrawSegments[color=black](A,B B,C C,A)
  32. \tkzDrawCircle[color=black](O,B)
  33. \tkzLabelPoints[below][color=blue](A)
  34. \tkzLabelPoints[left][color=blue](B)
  35. \tkzLabelPoints[right][color=blue](C)
  36. \tkzDrawPoints[color=blue,fill=blue](A,B,C)
  37. \end{tikzpicture}
  38. \begin{proof}
  39. \end{proof}
  40. \end{document}
复制代码

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-3-30 16:04
abababa 发表于 2023-3-30 08:49
试了一下,没有居中。代码如下:


这个是放在figure里面, 省去每次都要写\centering的代码
不放在figure里面没有效果吧.

点评

那个代码的意思应该是在浮动体内居中,figure、table里用了都会居中。但是如果调用了float包,用[H]选项就不是浮动的,可能就不起作用了。  发表于 2023-3-30 16:17

68

主题

434

回帖

4269

积分

积分
4269

显示全部楼层

hejoseph 发表于 2023-3-30 16:07
这么简单的一句也想偷懒就说不过去了吧

730

主题

1万

回帖

9万

积分

积分
93593
QQ

显示全部楼层

kuing 发表于 2023-3-30 16:26
纯粹懒的话定义一个 ctikz 之类的环境就好了
  1. \newenvironment{ctikz}{\begin{center}\begin{tikzpicture}}{\end{tikzpicture}\end{center}}
复制代码

点评

还是要写figure的,如果不写没法引用图片,所以也没简化到哪里去  发表于 2023-3-30 16:47

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2023-3-30 17:21
因为之前我就是没写figure,只是把一些几何题一个个地打在tex里,这些图也不需要引用,需要的只是对某个题目的引用而已。现在这些题已经有500多个了,就是不想一个个地改,才想弄成这种自动的,看来是不太行

点评

那tex文件代码里全局替换掉\begin{tipzpicture}为\begin{center}\begin{tipzpicture},\end{tikzpicture}替换为\end{tikzpicture}\end{center}就得了  发表于 2023-3-30 17:26
用文本编辑器直接查找替换几秒钟就完事了  发表于 2023-3-30 17:27

413

主题

1558

回帖

1万

积分

积分
11498

显示全部楼层

 楼主| abababa 发表于 2023-3-30 17:33
abababa 发表于 2023-3-30 17:21
因为之前我就是没写figure,只是把一些几何题一个个地打在tex里,这些图也不需要引用,需要的只是对某个题 ...


解决了,发现我的包里有etoolbox,加上下面两句就可以了
  1. \BeforeBeginEnvironment{tikzpicture}{\begin{center}}
  2. \AfterEndEnvironment{tikzpicture}{\end{center}}
复制代码


这样的话,asy的那些也都可以:
  1. \BeforeBeginEnvironment{asy}{\begin{center}}
  2. \AfterEndEnvironment{asy}{\end{center}}
复制代码

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

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

Powered by Discuz!

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