我需要一些新符号,但我不知道如何创建它们。我试图找出这些符号是否已经在 LaTeX 包中,但没有。所以我最后在这里问。
每个答案对我来说都会非常有帮助,因为我是使用 TeX 的新手。
我想要的命令将在数学模式下使用。我想要三个命令,但其中两个只是另一个命令的变体,称为\lrod{ }
。该名称来自左手抓住的探测工具“L 杆”。
\lrod{ }
。左侧尖端垂直向下弯曲的杆。参见下图。\rrod{ }
。右侧版本\lrod{ }
。\stapler{ }
. 的双面版本\lrod{ }
。
\lrod{ }
以字母或字母串作为参数。然后它给出被其上方适当水平长度的“左手 L 杆”覆盖的字母(字符串)。也就是说,如果我输入
$\lrod{a}$, $\lrod{abc}$ and $\lrod{a \vphantom b}
,
如你所见,每个字母的顶部高度应该不同。但如果我使用\vphantom
,那么我应该能够修复它。
此外,我希望我可以自己修剪你的每个部分的长度\lrod
:较长的垂直段和较短的水平段。所以请不要使用 pdf 图像给我答案,而只使用代码。
\rrod{ }
和命令\stapler{ }
可以用类似的方式描述。以下是示例图像。
如您所见,对于同一个字母,三个符号的顶部高度和宽度应该相等。
最后,符号的宽度必须比下面的字母略窄,这样当我输入以下内容时,它们之间就会留有间隙。
$\lrod{b}\rrod{b}\stapler{b}$
多谢。
答案1
您的基本上是定义的\stapler
宏。该包还允许调整规则的宽度。默认宽度有点大,所以我把它调小了。我定义和类似于 的定义\overbracket
mathtools
lrod
\rrod
\overbracket
\documentclass{article}
\usepackage{mathtools}
\newcommand*{\stapler}[1]{{\overbracket[.4pt][.4\fontdimen5\textfont2]{#1}}}
\makeatletter
\newcommand*{\lrod}[1]{%
\vbox{\m@th\ialign{##\crcr
\downbracketend{.4pt}{.4\fontdimen5\textfont2}%
\leaders \vrule \@height .4pt \@depth \z@ \hfil
\crcr
\noalign{\kern .2\fontdimen5\textfont2 \nointerlineskip}%
$\displaystyle{#1}$%
\crcr}}%
}
\newcommand*{\rrod}[1]{%
\vbox{\m@th\ialign{##\crcr
\leaders \vrule \@height .4pt \@depth \z@ \hfil
\downbracketend{.4pt}{.4\fontdimen5\textfont2}%
\crcr
\noalign{\kern .2\fontdimen5\textfont2 \nointerlineskip}%
$\displaystyle{#1}$%
\crcr}}%
}
\makeatother
\begin{document}
$\lrod{a}$
$\lrod{\vphantom{b}a}$
$\lrod{b}$
$\lrod{ab}$
$\lrod{abc}$
\medskip
$\rrod{a}$
$\rrod{\vphantom{b}a}$
$\rrod{b}$
$\rrod{ab}$
$\rrod{abc}$
\medskip
$\stapler{a}$
$\stapler{\vphantom{b}a}$
$\stapler{b}$
$\stapler{ab}$
$\stapler{abc}$
\end{document}
\fontdimen5\textfont2
我从代码中采用了前面的参数mathtools
。您可以根据需要进行调整。
答案2
\rule
下面通过使用 LaTeX 测量参数的大小后绘制规则来提供您的符号\sbox
(内部\mathpalette
允许下标和上标)。
\documentclass[]{article}
\makeatletter
\newcommand*\stapler@ht{.2ex} % height of the ticks on both ends
\newcommand*\stapler@wd{.1ex} % thickness of the rules
\newcommand*\stapler@dv{.2ex} % padding vertically between argument and symbol
\newcommand*\stapler@di{.2ex} % padding applied on either end of the argument
\newcommand*\stapler@do{.2ex} % padding applied on either end around the symbol
\newsavebox\stapler@box
\newif\ifstapler@left
\newif\ifstapler@right
\newcommand*\@stapler[2]
{%
\kern\stapler@do\relax
\sbox\stapler@box{$#1\kern\stapler@di\relax#2\kern\stapler@di\relax$}%
\ifstapler@left
\rule
[\dimexpr\ht\stapler@box+\stapler@dv]
{\stapler@wd}
{\dimexpr\stapler@ht+\stapler@wd/2}%
\kern-\stapler@wd
\fi
\rlap
{%
\rule
[\dimexpr\ht\stapler@box+\stapler@dv+\stapler@ht-\stapler@wd/2]
{\wd\stapler@box}
{\stapler@wd}%
}%
\usebox\stapler@box
\ifstapler@right
\kern-\stapler@wd
\rule
[\dimexpr\ht\stapler@box+\stapler@dv]
{\stapler@wd}
{\dimexpr\stapler@ht+\stapler@wd/2}%
\fi
\kern\stapler@do\relax
}
\newcommand*\stapler{\stapler@lefttrue\stapler@righttrue\mathpalette\@stapler}
\newcommand*\lrod{\stapler@lefttrue\stapler@rightfalse\mathpalette\@stapler}
\newcommand*\rrod{\stapler@leftfalse\stapler@righttrue\mathpalette\@stapler}
\makeatother
\begin{document}
$\lrod{a}\rrod{b}$
$\lrod{abc}\lrod{\vphantom{abc}a}$
$\lrod{b}\stapler{b}\rrod{b}$
$E^{\lrod{b}\stapler{b}\rrod{b}^{\lrod{a}\stapler{a}\rrod{a}}}$
\end{document}
您可以通过改变参数的定义来定制它的外观。