如下,该符号左右侧的间距不相同,是否有好的方法调整其左右间距?
\documentclass{article}
\usepackage{tikz}
\newcommand*{\mynwarrow}{\tikz[baseline=(current bounding box.south),line cap=round] \draw(0,0) -- +(5pt,0) (0,0) -- +(0,-5pt) (0,0) -- +(5pt,-5pt);}
\begin{document}
aafff\mynwarrow{}gggbbb
aafff \mynwarrow{}gggbbb
aafff\,\mynwarrow{}gggbbb
% \clip in side tikz?
\end{document}
我的问题是:
要想更好地处理行高、线粗的问题,我个人更推荐panda宏包...但这与本问题无关,且间距问题仍存在...因此仅作为补充:
\documentclass{article}
\usepackage{tikz}
\usepackage{CleverPanda}% TL25
% https://tex.stackexchange.com/a/752271/322482
\newlength{\IHeight}
\newlength{\stroke}
\newcommand*{\mynwarrow}{%
\setlength{\IHeight}{\fontcharht\font`I}%
\setlength{\stroke}{\CleverPanda{}}%
\,\tikz[baseline=(current bounding box.south),line width=\stroke,line cap=round] \draw(0,0) -- +(\IHeight,0) (0,0) -- +(0,-\IHeight) (0,0) -- +(\IHeight,-\IHeight);}
\begin{document}
aafff\mynwarrow{}gggbbb
{\bfseries aafff\mynwarrow{}gggbbb}
\medskip
{\huge aafff\mynwarrow{}gggbbb}
\end{document}
1.为何会出现左右间距不相等的情况?
因为你的输入中,\mynwarrow{}两边不对称.\mynwarrow{}两边都都加上\,,应该就对称了吧。
aafff\,\mynwarrow{}\,gggbbbLaTeX 遇到连续的多个空格,它就认为是一个空格。但如果我们一个空格都不输入,一般它不会为我们加空格的。所以第二行改为aafff \mynwarrow{} gggbbb,应该会对称。
你补充的代码里,\mynwarrow{}的定义里,前面加了\,,后面没加。
2.(1)如果这个命令是一个公开宏包的公开命令,我觉得就按原定义就好。如果别人觉得不好看,他会自己加他觉得好看的空格的。比如\LaTeX{}就没有为我们加空格。
(2)如果你这个命令是你自己用:
(a) 如果你输入命令时,习惯在命令前后都加空格。可以在\mynwarrow{}的定义前后都加上\hspace{-0.167em}。
(b) 如果你输入命令时,命令前后都不加空格。可以在\mynwarrow{}的定义前后都加上\,。
感谢您的回复。
似乎并非,抱歉....我原先的mwe没体现这个差异。
我很怀疑是
f的"字符盒子"相比于其字形的右沿 和g的"字符盒子"相比于其左沿的距离不相同。这对于
10pt的情况是好的,但我更想从「造符号」的角度出发,例如下文的CleverPanda的情况,我同样希望能实现自动化(这个水平距离我不太希望需要用\IHeight的某个函数去表述),所以真正弄清楚「距离不相等」的原因会优先手动于加\hspace。诶...似乎确实不是这个符号的问题...
是不是f和g字母本身的问题。如果把f和g都换成A,结果怎么样
@u66435
结果已补充在上一个评论。
正常了!这个
f的盒子这么小确实是没想到的...我当时用f和g只是为了看看基线合不合适...那没事了,非常感谢您!