我需要一个十字符号,类似于 \dagger,但最好不那么花哨,更小(交叉点下方的垂直线没有那么长),并且无需加载特殊符号包(amsmath 除外)。没有底部曲线的字母“t”就可以了。
我也需要倒十字架(出于数学原因而非宗教原因……)。如果我使用类似的东西,如果我在其他复杂命令中\newcommand{\rotatedCross}{\ensuremath{\rotatebox[origin=c]{180}{\ensuremath{\dagger}}}}%
使用,我会收到错误消息( )。因此,将相同的十字架倒置作为自己的符号(或比 rotatebox 更简单的解决方案)将是完美的。\rotatedCross
use of \complexCommand doesn't match its definition
答案1
使用简单规则的解决方案:
\documentclass{article}
\usepackage{amsmath}
\newcommand*{\crosssymbol}{%
% \mathbin{%
\text{%
\raise 1ex\hbox{%
\rlap{\vrule height.2pt depth.2pt width .75ex}%
\hbox to .75ex{\hss\vrule height .5ex depth 1ex\hss}%
}%
}%
% }%
}
\newcommand*{\crossupsidedown}{%
% \mathbin{%
\text{%
\raise .5ex\hbox{%
\rlap{\vrule height.2pt depth.2pt width .75ex}%
\hbox to .75ex{\hss\vrule height 1ex depth .5ex\hss}%
}%
}%
% }%
}
\begin{document}
$\dag\,\crosssymbol\crossupsidedown\,\mathsf{t}$
\end{document}
同一个文件翻译成“纯 LaTeX”后的样子:
\documentclass{article}
\usepackage{amsmath}
\newcommand*{\crosssymbol}{%
% \mathbin{%
\text{%
\raisebox{1ex}{%
\makebox[0pt][l]{%
\rule[-.2pt]{.75ex}{.4pt}%
}%
\makebox[.75ex]{%
\rule[-1ex]{.4pt}{1.5ex}%
}%
}%
}%
% }%
}
\newcommand*{\crossupsidedown}{%
% \mathbin{%
\text{%
\raisebox{.5ex}{%
\makebox[0pt][l]{%
\rule[-.2pt]{.75ex}{.4pt}%
}%
\makebox[.75ex]{%
\rule[-.5ex]{.4pt}{1.5ex}%
}%
}%
}%
% }%
}
\begin{document}
\(\dag\,\crosssymbol\crossupsidedown\,\mathsf{t}\)
\end{document}
评论:
- 我不知道这些符号的用途,因此您可能需要添加
\mathbin
或\mathrel
获得正确的水平间距。
答案2
使用 Herr Oberdiek 的方法,但使用刚刚提交的包的rule
便捷宏进行覆盖,使得构造更加紧凑。 \stackon
stackengine
我首先将\stacktype
“L”定义为“长”堆栈,其中堆栈是按基线到基线计算的(而短“S”堆栈则是按项目间间隙大小计算的)。然后,使用\stackon
,第二个参数堆叠在第一个参数上,保留第一个(锚点)参数的基线。结果的宽度是整个堆栈的宽度,尽管可以将其设置为锚点的宽度,如果这对堆栈有意义的话。使用可选参数,我指定堆栈长度,对于“L”堆栈,它是堆栈项目之间的基线偏移。
我希望这个包裹能在本周末从 CTAN 传播出去。
\documentclass{article}
\usepackage{stackengine}
\def\cross{%
\stackon[1ex]{\rule{0.4pt}{1.5ex}}{\rule{.75ex}{0.4pt}}}
\def\invcross{%
\stackon[0.5ex]{\rule{0.4pt}{1.5ex}}{\rule{.75ex}{0.4pt}}}
\def\stacktype{L}
\begin{document}
\dag\cross\invcross t
\end{document}