切换到宽版
用户名
Email
自动登录
找回密码
密码
登录
快速注册
快捷导航
论坛
悠闲数学娱乐论坛(第3版)
淘帖
大家一起来整理好帖子
相册
Album
标签
查看所有主题标签
搜索
初等数学讨论
高等数学讨论
TeX / LaTeX
搜索
AND
OR
exact
regexp
全文
Aa
本版
用户
悠闲数学娱乐论坛(第3版)
»
论坛
›
软件区
›
TeX / LaTeX
›
两个符号重叠
返回列表
发新帖
查看:
2809
|
回复:
2
两个符号重叠
[复制链接]
[复制标题+链接+出处]
kuing
kuing
当前离线
积分
93593
730
主题
1万
回帖
9万
积分
积分
93593
显示全部楼层
发消息
kuing
发表于 2017-6-12 02:35
|
阅读模式
转自:
bbs.ctex.org/forum.php?mod=viewthread&tid=153333
一个月前弄的,差点忘了存档。
要弄
这样的符号
试着写了一个有通用性的重叠命令,缺陷及副作用尚未明确 :D
\documentclass{ctexart}
\usepackage{amsmath,amssymb}
\usepackage{mathtools}
%符号重叠命令\fhcd[类型]{符号}{符号}
%类型是最终输出的符号的类型(bin, rel, ord 等,默认 bin),两符号顺序随意
\makeatletter
\newcommand\fhcd[3][bin]{
\csname math#1\endcsname{\mathchoice
{\@fhcd\displaystyle{#2}{#3}}
{\@fhcd\textstyle{#2}{#3}}
{\@fhcd\scriptstyle{#2}{#3}}
{\@fhcd\scriptscriptstyle{#2}{#3}}}}
\newcommand\@fhcd[3]{
\settowidth\@tempdima{$\m@th#1{#2}$}
\settowidth\@tempdimb{$\m@th#1{#3}$}
\ifdim\@tempdimb>\@tempdima\@tempdima\@tempdimb\fi
\kern.5\@tempdima\mathclap{#2}\mathclap{#3}\kern.5\@tempdima}
\makeatother
\begin{document}
这样,第一个可以这样定义
\newcommand\cttdiv{\fhcd\bigtriangledown\cdot}
效果 $A\cttdiv B = A\bigtriangledown B\cdot C$
\[A\cttdiv B + \frac{\frac{A\cttdiv B}{A\cttdiv B}}{A\cttdiv B}\]
第二个直接这样定会有瑕疵
\newcommand\cttcurl{\fhcd\bigtriangledown\times}%
$A\cttcurl B$
突了点儿,只能调整下了,比如
\renewcommand\cttcurl{\fhcd\bigtriangledown
{\text{\raisebox{0.25ex}{\scalebox{0.75}{$\times$}}}}}%
$A\cttcurl B+\frac{A\cttcurl B}2$
还可以搞些其他东西
长的不等价
\let\iff\Longleftrightarrow
\newcommand\niff{\fhcd[rel]/\iff}
$A\niff B\iff C+\frac{A\niff B}{A\iff B}$
斜的不平行
\newcommand\px{\mathrel{/\mkern-5mu/}}%
\newcommand\npx{\fhcd[rel]\px\smallsetminus}%
$AB\px CD\npx EF$
无聊的
\newcommand\asdf{\fhcd[ord]\leftrightarrow\updownarrow}%
\newcommand\aaaa{\fhcd[ord]\nearrow\searrow}%
\newcommand\bbbb{\fhcd[ord]\nwarrow\swarrow}%
\newcommand\cccc{\fhcd[ord]\aaaa\bbbb}%
$\asdf \ \cccc$
\end{document}
复制代码
About Me
备用链接
回复
举报
kuing
kuing
当前离线
积分
93593
730
主题
1万
回帖
9万
积分
积分
93593
显示全部楼层
发消息
楼主
|
kuing
发表于 2017-8-24 19:17
liam0205.me/2017/06/30/create-overlayed-symbols-by-ooalign/
(使用 \ooalign 命令创建叠加在一起的记号)
这个帖讲的看起来更高大上一些,暂时还没完全理解……那个什么 \hidewidth ……还有后面那些……有空再研究下
About Me
备用链接
回复
举报
kuing
kuing
当前离线
积分
93593
730
主题
1万
回帖
9万
积分
积分
93593
显示全部楼层
发消息
楼主
|
kuing
发表于 2018-10-6 08:37
回复
2#
kuing
“\ooalign 中,每一行都复写在上一行之上”
“\hidewidth 定义是 \hskip -1000pt plus 1fill”
照这两点来理解就能解释如下结果:
\documentclass{article}
\usepackage{xcolor}
\begin{document}
\newcommand\testoo[1]{\fbox{{%
\ooalign{%
Q\cr
#1\crcr
}}}\par}
\fboxsep=0pt
\newcommand\x{{\color{red}x}}
\newcommand\y{{\color{green}y}}
\renewcommand\o{{\color{blue}o}}
\newcommand\xx{{\color{red}xxxx}}
\newcommand\yy{{\color{green}yyyyyy}}
\newcommand\oo{{\color{blue}ooo}}
\testoo{}
\testoo{\x\hidewidth}
\testoo{\hidewidth\y}
\testoo{\hidewidth\o\hidewidth}
\testoo{\xx\hidewidth}
\testoo{\hidewidth\yy}
\testoo{\hidewidth\oo\hidewidth}
\testoo{\xx\hidewidth\yy}
\testoo{\xx\hidewidth\oo\hidewidth}
\testoo{\hidewidth\oo\hidewidth\yy}
\testoo{\xx\hidewidth\oo\hidewidth\yy}
\end{document}
复制代码
除此之外,如果注意一下细节——深度,似乎 ooalign 的最终深度似乎只取决于最后一行,进而猜测:高度只取决于第一行?测试了一下似乎确实如此:
\fbox{{\ooalign{k\cr q\crcr}}} \fbox{{\ooalign{q\cr k\crcr}}}
复制代码
得出:
这样看的话,ooalign 的方法还是存在缺陷嘀……
比如说文中用 {\ooalign{\$\bigcup\$\cr\hidewidth\$\bullet\$\hidewidth\cr}} 构造的 `\bigcup` 与 `\bullet` 重叠的符号,用 \fbox 来框一下就很清楚了:
\fbox{$\bullet$}
\fbox{$\bigcup$}
\fbox{{\ooalign{$\bigcup$\cr\hidewidth$\bullet$\hidewidth\cr}}}
复制代码
原因就是后者深度由 \bullet 决定。
虽然多数时候没什么影响,但如果处于某些特殊情况下(例如繁分式),垂直间距或许就会有问题(贴得太近)。
About Me
备用链接
回复
举报
返回列表
发新帖
手机版
|
悠闲数学娱乐论坛(第3版)
GMT+8, 2025-3-4 12:17
Powered by
Discuz!
×
快速回复
返回顶部
返回列表