我想使用一个特定的符号,一个带有中线的三角形,作为数学运算符。该符号大致应如下所示:
[这是tikz
通过挪用回答经过海科·奥伯迪克针对这个问题哈利波特的符号]。
我的预期用途与哈利波特无关,相反,我想将其用作一个与下标配合良好的一元数学运算符。
预期语法
理想情况下,我会定义一个命令\triangleline
,给出符号以及一些代码,以确保它在常见的数学环境中表现良好。在此之后,我会定义\trilineop
\newcommand{\trilineop}[1]{\operatorname{\triangleline_\mathrm{e}}{\left(#1\right)}}
用于我的文档。
但我不确定该怎么做,这是否是一个好计划,或者什么是更好的计划。也许有一种巧妙的方法可以用\triangle
某种方式构建这个符号?
\Delta
(由于许多字体中三角形边是不对称的,因此不宜使用)。
这是一个可以作为起点的示例环境。
\documentclass{beamer}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{tikz}
%Code here to define \triangleline
%%
%%
\newcommand{\trilineop}[1]{\operatorname{\triangleline_\mathrm{e}}{\left(#1\right)}}
\begin{document}
\begin{frame}{}
$$\trilineop{\boldsymbol{A}}$$
\end{frame}
\end{document}
这是tikz
前面提到的用于生成示例图像的代码。(我将其用作黑匣子)。
\begin{tikzpicture}[baseline=0]
\def\a{1cm}
\pgfmathsetlengthmacro\radius{\a/2 * tan(30)}
\draw[thick]
(0, 0) -- (60:\a) -- (\a, 0) -- cycle
(\a/2, 0) -- (60:\a)
;
\end{tikzpicture}
答案1
我不太喜欢使用 Ti钾Z 无处不在,所以我在此建议基于旧的更简约版本。我无论如何都不是/\bigtriangleup
的忠实粉丝,所以我建议基于from进行定义。可以使用带星号的版本获得自动缩放,而手动大小可以作为可选参数传递。\left
\right
\DeclarePairedDelimiterXPP
mathtools
\documentclass{article}
\makeatletter
\newcommand*{\triangleline}{\mathpalette\@triangleline\relax}
\newcommand*{\@triangleline}[2]{{%
\sbox0{\m@th$#1\bigtriangleup$}%
\dimen@\fontdimen8
\ifx#1\displaystyle\textfont\else
\ifx#1\textstyle\textfont\else
\ifx#1\scriptstyle\scriptfont\else
\scriptscriptfont\fi\fi\fi 3
\ooalign{\hfil\hbox{\vrule\@width\dimen@\@height\ht0\@depth-.5\dimen@}\hfil\cr\box0}%
}}
\makeatother
\usepackage{mathtools}% for the following
\DeclarePairedDelimiterXPP{\trilineop}[1]{\mathop{\triangleline_{\mathrm{e}}}}{(}{)}{}{#1}
\begin{document}
\parskip=\bigskipamount
$\triangleline_{\triangleline_{\triangleline}}$
$2\trilineop{x}$
$2\trilineop[\big]{\frac{x}{2}}$
$2\trilineop*{\dfrac{x}{2}}$
\end{document}
答案2
像这样吗?
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
%Code here to define \triangleline
\makeatletter
\DeclareRobustCommand{\triangleline}{\mathpalette\triangleline@\relax}
\newcommand{\triangleline@}[2]{%
\mspace{1mu}%
\begin{tikzpicture}[baseline=0]
\sbox\z@{$\m@th#1\Delta$}\edef\a{\the\wd\z@}
\edef\b{\the\dimexpr\triangleline@thickness{#1}}
\pgfmathsetlengthmacro\radius{\a/2 * tan(30)}
\draw[line width=\b] (0, 0) -- (60:\a) -- (\a, 0) -- cycle (\a/2, 0) -- (60:\a);
\end{tikzpicture}%
\mspace{1mu}%
}
\newcommand{\triangleline@thickness}[1]{%
\ifx#1\displaystyle 1.2\fontdimen8\textfont3\else
\ifx#1\textstyle 1.2\fontdimen8\textfont3\else
\ifx#1\scriptstyle 1.4\fontdimen8\scriptfont3\else
1.6\fontdimen8\scriptscriptfont3\fi\fi\fi
}
\makeatother
\newcommand{\trilineop}{\operatorname{\triangleline_{e}}}
\begin{document}
\[
\trilineop(\boldsymbol{A})\Delta_{\mathrm{e}}(A)
\quad
\scriptstyle\trilineop(\boldsymbol{A})
\quad
\scriptscriptstyle\trilineop(\boldsymbol{A})
\]
\end{document}
尝试调整线条粗细的因素,直到您满意为止。
不要定义\trilineop
接受参数:提供括号使得代码更干净;当它们不是必要时,请避免使用,就像这里一样\left
。\right