时间导向灯芯收缩

时间导向灯芯收缩

我使用过 simple-wick 和 simpler-wick,但是在它们之中我都无法在连接收缩元素的线上放置箭头。

有人知道怎么做吗?

我可以用 tikz 和 Xelatex 做一些事情,但我无法弄清楚如何让它与数学符号一起工作。

\documentclass{article}
\usepackage{tikz,bm}
\newcommand\C[1]{\tikz[remember picture]{\node(#1)[inner sep=0pt] 
{\sffamily#1};}}
\usepackage{tikz}
\usepackage{refcount}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{calc}
\begin{document}

\tikzset{->-/.style={decoration={
 markings,
 mark=at position .5 with {\arrow{>}}},postaction={decorate}}}

\tikzset{-<-/.style={decoration={
 markings,
 mark=at position .5 with {\arrow{<}}},postaction={decorate}}}




\begin{equation}
\begin{tabular}{@{}*7{c@{}}}
\C{a}&\C{B}&\C{C}& $\bm\sim$ &\C{X}&\C{Y}&\C{Z}  
\end{tabular}
\mathord{
\begin{tikzpicture}[overlay,remember picture,>=latex,shorten >=1pt,shorten 
<=1pt,very thin]
\draw[->-] (a) --++(0,10pt) -| (X);
\draw[-<-] (B) --++(0,14pt) -| (Y);
\draw[-<-] (C) --++(0,-14pt) -| (Z);
\end{tikzpicture}
 }
\end{equation}

\end{document}

这给了我类似 在此处输入图片描述

答案1

欢迎来到 TeX.SE!一个非常简单的建议是稍微改变一下simpler-wick包的一个定义。

\documentclass{article}
\usepackage{simpler-wick}
\newif\ifWickArrow
\WickArrowfalse
\pgfkeys{
  /simplerwick/.cd,
  arrow/.code={\WickArrowtrue},
  no arrow/.code={\WickArrowfalse}
}

\makeatletter
\def\swick@end#1#2{
  \swick@setfalse@#1
  \tikzexternaldisable
  \begin{tikzpicture}[remember picture, baseline=(swick-close#1.base)]
    \node[use as bounding box, inner sep=0pt, outer sep=0pt] (swick-close#1) {$\displaystyle #2$};
  \end{tikzpicture}
  \tikz[remember picture, overlay]
{\ifWickArrow  
    \draw[-latex] ($(swick-open#1.north) + (0, 3pt)$) 
          -- ($(swick-open#1.base) + (0, \swick@offset) + #1*(0, \swick@sep)$) 
          -- ($(swick-close#1.base) + (0, \swick@offset) + #1*(0, \swick@sep)$) 
          -- ($(swick-close#1.north) + (0, 1pt)$);
\else         
    \draw ($(swick-open#1.north) + (0, 3pt)$) 
          -- ($(swick-open#1.base) + (0, \swick@offset) + #1*(0, \swick@sep)$) 
          -- ($(swick-close#1.base) + (0, \swick@offset) + #1*(0, \swick@sep)$) 
          -- ($(swick-close#1.north) + (0, 3pt)$);
\fi}
  \tikzexternalenable}
\makeatother
\begin{document}
\begin{equation}
  \wick[arrow]{\c\phi A \c\phi}
\end{equation}
\begin{equation}
  \wick{\c\phi A \c\phi}
\end{equation}
\end{document}

在此处输入图片描述

如您所见,\wick现在接受一个选项arrow,使其绘制箭头。这是一个最小手术不是允许您在同一个方程中组合带箭头和不带箭头的收缩。也许可以扩展此操作以允许这样做,但这不再是最小的了。因此,我想问您是否需要这种混合情况。

附录:快速修改,允许您绘制下面的缩写,并将箭头放在中间。此版本附带要传递给的箭头列表\wick。第一个条目定义了箭头全部类型的收缩\c1,第二个是 for\c2等等。

\documentclass{article}
\usepackage{simpler-wick}
\usetikzlibrary{decorations.markings}
% from https://tex.stackexchange.com/a/39282/121799
\tikzset{W->-/.style={decoration={
  markings,
  mark=at position 0.5*\pgfdecoratedpathlength+2pt with
  {\draw[-latex] (-2pt,0pt) -- (1pt,0pt);}},postaction={decorate}},
  W-<-/.style={decoration={
  markings,
  mark=at position 0.5*\pgfdecoratedpathlength with
  {\draw[latex-] (-2pt,0pt) -- (1pt,0pt);}},postaction={decorate}}
  }
\newif\ifWickBelow
\WickBelowfalse
\pgfkeys{
  /simplerwick/.cd,
  arrows/.store in=\LstWickArrows,
  arrows={-,-,-,-,-,-,-,-,-},
  arrows/.initial={-,-,-,-,-,-,-,-,-}, % the # of contractions is bounded by 9
  below/.code={\WickBelowtrue},
}

\makeatletter
\def\swick@end#1#2{
  \swick@setfalse@#1
  \tikzexternaldisable
  \begin{tikzpicture}[remember picture, baseline=(swick-close#1.base)]
    \node[use as bounding box, inner sep=0pt, outer sep=0pt] (swick-close#1) {$\displaystyle #2$};
  \end{tikzpicture}
  \tikz[remember picture, overlay]
{
\foreach \W@X[count=\W@C] in \LstWickArrows
{\ifnum\W@C=#1
\xdef\myW@style{\W@X}
\fi}
\ifWickBelow
    \draw[\myW@style] ($(swick-open#1.south) + (0, -3pt)$) 
          -- ($(swick-open#1.base) + (0, -\swick@offset) + #1*(0, -\swick@sep)$) 
          -- ($(swick-close#1.base) + (0, -\swick@offset) + #1*(0, -\swick@sep)$) 
          -- ($(swick-close#1.south) + (0, -3pt)$);
\else
    \draw[\myW@style] ($(swick-open#1.north) + (0, 3pt)$) 
          -- ($(swick-open#1.base) + (0, \swick@offset) + #1*(0, \swick@sep)$) 
          -- ($(swick-close#1.base) + (0, \swick@offset) + #1*(0, \swick@sep)$) 
          -- ($(swick-close#1.north) + (0, 3pt)$);
\fi}
  \tikzexternalenable}
\makeatother
\begin{document}
\begin{enumerate}
\item You can specify single arrows like \texttt{W->-} or \texttt{W-<-}: $\displaystyle
  \wick[arrows={-,W->-,W-<-}]{
    \c1 a \c2 b \c3 c \c1 a d \c1 e
    \c1 e \c1 a \c2 b \c3 c \c1 a
  }
$
\item The default is not to draw arrows: $\displaystyle
  \wick{
    \c1 a \c2 b \c3 c \c1 a d \c1 e
    \c1 e \c1 a \c2 b \c3 c \c1 a
  }
$
\item \texttt{below} allows you to draw the contraction below the
equation: $\displaystyle
  \wick[arrows={-,W->-,W-<-},below]{
    \c1 a \c2 b \c3 c \c1 a d \c1 e
    \c1 e \c1 a \c2 b \c3 c \c1 a
  }$
\item Another example: $\displaystyle
  \wick[arrows={W->-,W-<-,-},below]{
    \c1 a \c2 b \c3 c \c1 a d \c1 e
    \c1 e \c1 a \c2 b \c3 c \c1 a
  }$
\item The ordinary keys work as well, e.g.\ to put arrows at the ends: $\displaystyle
  \wick[arrows={latex-,-latex,-},below]{
    \c1 a \c2 b \c3 c \c1 a d \c1 e
    \c1 e \c1 a \c2 b \c3 c \c1 a
  }$
\bigskip
\item Sometimes you may want to add vertical space by hand: $\displaystyle
  \wick[arrows={stealth-,-latex,-}]{
    \c1 a \c2 b \c3 c \c1 a d \c1 e
    \c1 e \c1 a \c2 b \c3 c \c1 a
  }$
\end{enumerate}
\end{document}

在此处输入图片描述

正如您在此处看到的,您可能需要添加垂直空间。这是因为缩写被绘制为overlays。还请注意,一旦新版本的 tikzmark 出现在 CTAN 上,可能会使该软件包更加强大。

相关内容