排版类似 \looparrowright 但不带箭头的符号的最简单方法是什么?
有没有一个解决方案,就像这个问题?我不知道在哪里可以找到 \looparrowright 的定义,亲自看看是否能够实现我想要的符号。
答案1
您可以剪辑符号:
\documentclass{article}
\usepackage{amssymb}
\usepackage{trimclip}
\makeatletter
\DeclareRobustCommand{\leftloop}{%
\mathrel{\mathpalette\left@loop\relax}%
}
\newcommand{\left@loop}[2]{%
\vphantom{\looparrowright}
\smash{\clipbox{0 {-.1\height} {.35\width} {-.1\height}}{$\m@th#1{\looparrowright}$}}%
}
\makeatother
\begin{document}
$a\leftloop b_{c\leftloop d}$
\end{document}
代码借自https://tex.stackexchange.com/a/395049/4427
这意味着“左侧不剪切任何内容,在底部添加负剪辑,从右侧剪切 35% 的宽度,在顶部添加负剪辑”。为什么要进行负剪辑?因为字形略微超出了其边界框。所以我还粉碎了剪辑的符号并借助设置高度\vphantom
。
我们可以保留圆头吗?可以,只要添加一个截短的减号即可。
\documentclass{article}
\usepackage{amssymb}
\usepackage{trimclip}
\makeatletter
\DeclareRobustCommand{\leftloop}{%
\mathrel{\mathpalette\left@loop\relax}%
}
\newcommand{\left@loop}[2]{%
\smash{\clipbox{0 {-.1\height} {.4\width} {-.1\height}}{$\m@th#1{\looparrowright}$}}%
\clipbox{{0.8\width} 0 0 0}{$\m@th#1-$}%
\mkern-1mu
}
\makeatother
\begin{document}
\fboxrule=0.1pt\fboxsep=0pt\fbox{$\leftloop$}% just to see the bounding box
$a\leftloop b_{c\leftloop d}$
\end{document}
无需添加幻影,因为减号具有正确的高度和深度。
答案2
- 请相信 Eger 的回答——我只是受到他的评论的启发并亲自尝试了。
- 我用的是这个
adjustbox
包。 - @pros 请指出我的解决方案是否存在一些问题(除了过于简单之外)。
- 这是一种反复试验的方法:)。
\documentclass{article}
\usepackage{adjustbox}
\usepackage{amssymb}
\begin{document}
\begin{itemize}
\item \adjustbox{trim = 0 0 1 0, clip}{\fbox{Test $a$}} \fbox{Test $a$}
\item \adjustbox{trim = 0 0 7 0, clip}{\fbox{$\looparrowright$}} \fbox{$\looparrowright$}
\item \adjustbox{trim = 0 0 4 0, clip}{$\looparrowright$}
\end{itemize}
\newcommand{\myLoop}{\adjustbox{trim = 0 0 4 0, clip}{\ensuremath{\looparrowright}}}
\myLoop
\end{document}