遇到了一个排版问题

2019-08-27 19:36发布

[图]我在学习张量分析时,想要用LaTeX做笔记,但是遇到了一个问题,如下图所示T和S上面的那种箭头该如何实现,或者说用哪个宏包可以实现,还望大家告诉我,非常感谢!!!!!

我在学习张量分析时,想要用LaTeX做笔记,但是遇到了一个问题,如下图所示


IMG_20190827_192853.jpg


T和S上面的那种箭头该如何实现,或者说用哪个宏包可以实现,还望大家告诉我,非常感谢!!!!!

2条回答
Carcino
2019-08-28 16:38 .采纳回答

 - 写了一个宏 `\xhat`,用着试试。

 - 宏定义中,需要解释的部分可能非常多,确有兴趣的,评论提出吧。


image.png

第二个可选参数的作用不明显,再说吧。


image.png

对用户 registor私信「线条较宽时,线的交接处不好看」的回应:增加 tikz 选项 `line cap=round`。


% question from https://wenda.latexstudio.net/q-1115.html
\documentclass{article}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usepackage{xparse}

\makeatletter
\newsavebox\xhat@box
\newsavebox\xhat@box@pre
\newsavebox\xhat@box@suf
\newsavebox\xhat@box@voffset

\tikzset{
  xhat line/.style={
    line cap=round
  },
  xhat arrow/.style={
    arrows={-Latex[length=3pt]}
  }
}

\ExplSyntaxOn
\NewDocumentCommand \xhat { >{\SplitArgument{1}{,}} O{,} O{} m }{
  \xhat@getxoffset#1
  \savebox\xhat@box@voffset{\ensuremath{#2}}
  \savebox\xhat@box{\ensuremath{#3}}
  \mathnormal{
    \mathop{
      \mathstrut
      \xhat@voffset{\xhat@box@voffset}\xhat@voffset{\xhat@box}
      \smash[t]{\usebox\xhat@box}
    }
    \limits^{
      \begin{tikzpicture}[baseline={(beg)}]
        \path 
          (.5\wd\xhat@box@pre, 0) coordinate (beg)
          (\wd\xhat@box - .5\wd\xhat@box@suf, 0) coordinate (end);
        \draw[white] (0, 0) -- +(\wd\xhat@box, 0);
        \draw[xhat~ line]
          (beg) -- node[midway, fill=black, draw=white, circle, line~ width=1pt, inner~ sep=1pt] {} (end);
        \path[xhat~ line, xhat~ arrow]
          (beg) edge +(0, -5pt)
          (end) edge +(0, -5pt);
      \end{tikzpicture}
    }
  }
}

\def\xhat@getxoffset#1#2{
  \savebox\xhat@box@pre{\ensuremath{#1}}
  \savebox\xhat@box@suf{\ensuremath{#2}}
}
\def\xhat@voffset#1{
  \rule{0pt}{\dimexpr\ht#1 - 2pt\relax}
}
\ExplSyntaxOff
\makeatother

\input code-with-output
%   code-with-output is downloadable from 
%   https://github.com/muzimuzhi/latex-examples/blob/master/utilities/code-with-output.tex

\begin{document}

\begin{example*}{Usages of \texttt{\textbackslash xhat}}
  % \xhat
  %   []
  %   []
  %   ()
  %   {}
  \parindent=0pt\Large
  Function of \verb||:
  \begin{align*}
      abc \xhat     {abc} ffffd \xhat     {ST} \\
      abc \xhat[a,b]{abc} ffffd \xhat[S,T]{ST}
  \end{align*}
  
  Function of \verb||:
  \begin{align*}
    abc \xhat[\bm{S},\bm{T}]     {\bm{TS}} &=
      \xhat[\bm{g},\bm{g}_s]{\bm{g}^k\bm{g}^l\bm{g}_r\bm{g}_s} \\
    abc \xhat[\bm{S},\bm{T}][g^l]{\bm{TS}} &=
      \xhat[\bm{g},\bm{g}_s]{\bm{g}^k\bm{g}^l\bm{g}_r\bm{g}_s}
  \end{align*}
\end{example*}

\begin{example*}{Usage of \texttt{\textbackslash xhat}, 2}
  \parindent=0pt\Large
  Line cap is always round.
  \Huge
  \[
    \xhat[\bm{S},\bm{T}]{\bm{TS}} \qquad
    \tikzset{xhat line/.append style={line width=3pt}}
    \xhat[\bm{S},\bm{T}]{\bm{TS}}
  \]
\end{example*}

\end{document}


一周热门 更多>