
Мне нужны новые символы, и я понятия не имею, как их создать. Я пытался выяснить, были ли эти символы уже в пакете 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
Ниже представлен ваш символ, нарисованный с использованием правил LaTeX \rule
после измерения размера аргумента с помощью \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}
Вы можете настроить его внешний вид, изменив определения параметров.