6

In his lecture notes about D-modules, J. Bernstein defines a variant of the tensor product which he denotes as:

How could I write a "triangle tensor product" like this in latex?

3 Answers 3

8
\documentclass{article}
\usepackage{stackengine}
\newcommand\tritens{\mathbin{\ensurestackMath{%
  \stackengine{.3pt}{\triangle}{\scriptstyle\times}
    {O}{c}{F}{F}{L}}}
}
\begin{document}
$\dot F \tritens \dot H = \triangle^! (...)$
\end{document}

enter image description here

If the \mathbin spacing is not desired, it can be removed:

\newcommand\tritens{\ensurestackMath{%
  \stackengine{.3pt}{\triangle}{\scriptstyle\times}
    {O}{c}{F}{F}{L}}
}

enter image description here

4
  • That's incredible! Thank you very much!
    – Gabriel
    Nov 30, 2022 at 9:40
  • If I get it right, stackengine forces to overlay two symbols, one being the triangle, and the other being the cross. But what does {O}{c}...{L} do ?
    – sylvainulg
    Nov 30, 2022 at 14:13
  • @sylvainulg You can see the documentation at ctan.org/pkg/stackengine. But, the first argument is the relative vertical shift between the two glyphs, 2nd is the base glyph, 3rd is the overlay, 4th argument is whether the shift is positive for Over or negative for Under shifts, the 5th (l,c or r) is the horizontal alignment of the glyphs, 6th is F when stack is to be output or T if it is to be temporarily withheld, 7th if F if the total width is considered the stack width or T if the base glyph only defines the width, 8th is S for Short stack or L for Long stack (see docs) Nov 30, 2022 at 15:14
  • Thanks. {.3pt} is the part I had overlooked, and which makes things align.
    – sylvainulg
    Dec 6, 2022 at 11:59
4

My guess:

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}

\makeatletter
\newcommand{\tritensor}{\mathbin{\mathpalette\tritensor@\relax}}
\newcommand{\tritensor@}[2]{%
  \ooalign{%
    $\m@th#1\triangle$\cr
    \hidewidth\scalebox{0.8}{$\times$}\hidewidth\cr
  }%
}
\makeatother

\makeatother

\begin{document}

$\tritensor\boxtimes$

$\dot{F}\tritensor\dot{H}=\triangle^{!}(\dot{F}\boxtimes\dot{H})$

\end{document}

enter image description here

An alternative with an equilateral triangle as wide as \boxtimes, which distinguishes better between the special tensor product and the triangle operator.

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{pict2e}

\makeatletter
\newif\if@tritensor
\newcommand{\btensor}{\mathbin{\btensor@}}
\newcommand{\btensor@}{%
  \text{%
    \settowidth{\unitlength}{$\m@th\boxtimes$}%
    \linethickness{\fontdimen8\textfont3}%
    \begin{picture}(1,1)
    \roundjoin
    \polygon(0.075,0.03)(0.925,0.03)(0.5,0.733)
    \Line(0.2952,0.4097)(0.6748,0.03)
    \Line(0.7048,0.4097)(0.3252,0.03)
    \end{picture}%
  }%
}

\makeatother

\begin{document}

$\dot{F}\btensor\dot{H}=\triangle^{!}(\dot{F}\boxtimes\dot{H})$

$\scriptstyle\dot{F}\btensor\dot{H}=\triangle^{!}(\dot{F}\boxtimes\dot{H})$

\end{document}

enter image description here

1

I would suggest \triangletimes included in the stix package:

\documentclass{article}
\usepackage{amsmath}
\usepackage{stix}

\begin{document}

$\triangletimes$

\end{document}

\triangletimes

However it's not exactly the symbol you want (the cross is smaller).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .