繁體
|
簡體
Sclub交友聊天~加入聊天室當版主
(檢舉)
分享
新浪微博
QQ空间
人人网
腾讯微博
Facebook
Google+
Plurk
Twitter
Line
快速注册
登录
论坛
搜索
帮助
原始风格
brown
purple
green
red
orange
gray
pink
violet
blue
greyish-green
jeans
greenwall
私人消息 (0)
公共消息 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
应用通知 (0)
应用邀请 (0)
悠闲数学娱乐论坛(第2版)
»
TeX / LaTeX
» tikz画带圈数字
返回列表
发帖
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
1
#
跳转到
»
正序看帖
打印
字体大小:
t
T
发表于 2014-10-27 21:13
|
只看该作者
tikz画带圈数字
\newlength\szg
\newcommand\quan[1]{%
\settoheight\szg{#1}%
\tikz[baseline]{\pgfmathparse{
ifthenelse(#1 < 10, 1, ifthenelse(#1 < 100, 0.75, 0.5))
}
\let\hfs\pgfmathresult
\node at (0,\szg/2) {\makebox[0em][c]{\scalebox{\hfs}[1]{#1}}};
\draw (0,\szg/2) circle (\szg/2+0.35ex);
}}
复制代码
设计的思路很简单,就懒得作解释了。
用法:\quan{数字}
其中,数字的取值范围为
不超过999的自然数
,如果数字不在这范围内,可能会出现溢出现象或者报错。
代码 \foreach \i in {0,1,...,100} { \quan\i} 的效果:
2014-10-27 22:04
测试文档:
tikzquannum.tex
(719 Bytes)
下载次数: 1199
2014-10-27 21:12
收藏
分享
分享到:
QQ空间
腾讯微博
腾讯朋友
$\href{https://kuingggg.github.io/}{\text{About Me}}$
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
8
#
发表于 2017-8-24 18:26
|
只看该作者
前段时间在
http://bbs.ctex.org/forum.php?mod=viewthread&tid=153386
继续讨论了相关问题,忘了存档这里了。
隔了一段时间,当时的理解都有点模糊了,只能大概整理下了。
该帖中遇到的问题大概是跟命令的“脆弱”有关,要加强保护,如:
将 \newcommand\quan[1]{... 改为 \protected\def\quan#1{...
后面相关的东西也有可能要改了,像楼上的就没必要再用 \protect 了,还有就是控制好展开顺序,即
\renewcommand\thefootnote{\expandafter\quan\expandafter{\number\value{footnote}}}
酱紫。
晚点再弄个测试文档。
$\href{https://kuingggg.github.io/}{\text{About Me}}$
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
7
#
发表于 2015-12-12 02:02
|
只看该作者
若要用于脚注,则只需加一句:
\renewcommand\thefootnote{\protect\quan{\number\value{footnote}}}
测试文件:
tikzquannum2.tex
(904 Bytes)
下载次数: 1124
2015-12-12 02:00
顺便改进了一处,画圈的时候用 \draw[line width=0.1ex] ,这样即使字号变大,线粗也跟着变大,原先1#的是不变的。
$\href{https://kuingggg.github.io/}{\text{About Me}}$
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
6
#
发表于 2014-11-20 00:53
|
只看该作者
其实还可以加颜色之类的可选参数,不过一般来说也没什么必要
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
5
#
发表于 2014-11-19 14:38
|
只看该作者
居然忘记弄黑圈,类似地设计为:
\newcommand\hquan[1]{%
\settoheight\szg{#1}%
\tikz[baseline]{\pgfmathparse{
ifthenelse(#1 < 10, 1, ifthenelse(#1 < 100, 0.75, 0.5))
}
\let\hfs\pgfmathresult
\filldraw (0,\szg/2) circle (\szg/2+0.35ex);
\node[white] at (0,\szg/2) {\makebox[0em][c]{\scalebox{\hfs}[1]{\textbf{#1}}}};
}}
复制代码
设计时有两点值得记录:
一是我用 \filldraw 而不用 \fill ,是为了和白圈的大小完全一致;
二是这里我加了 \textbf 是为了好看些,如果不加,会显得数字的线条很细,这大概是黑底白字的视觉原因。
2014-11-19 14:38
$\href{https://kuingggg.github.io/}{\text{About Me}}$
TOP
羊羊羊羊
发短消息
加为好友
羊羊羊羊
当前离线
UID
2433
帖子
44
主题
3
精华
0
积分
244
威望
0
阅读权限
50
在线时间
47 小时
注册时间
2014-10-17
最后登录
2014-12-10
4
#
发表于 2014-10-27 23:06
|
只看该作者
这字不一般,不是一般的丑啊。
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
3
#
发表于 2014-10-27 22:07
|
只看该作者
还有,我在1楼的测试文档里忘了加 \usepackage{graphicx} ,居然也能编译?
为毛印象中 \scalebox 应该是 graphicx 宏包里的命令?
TOP
kuing
发短消息
加为好友
kuing
当前离线
UID
1
帖子
8832
主题
619
精华
0
积分
66354
威望
113
阅读权限
200
性别
男
来自
广东广州
在线时间
21788 小时
注册时间
2013-6-13
最后登录
2024-3-9
2
#
发表于 2014-10-27 21:17
|
只看该作者
有一件奇怪的事,我本来是直接写 \scalebox{\pgfmathresult}[1]{#1},但是居然出不来正确的效果,而先 \let\hfs\pgfmathresult 再 \scalebox{\hfs}[1]{#1} 就正常了,不知为什么。
PS、我这里的测试环境是 texlive2013 ,用 xelatex 编译,不知新版会不会这样。
TOP
返回列表
回复
发帖
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]