Bucles e inserciones en Tikz-Feynman

Bucles e inserciones en Tikz-Feynman

Me gustaría producir estos diagramas usandoTikz-Feynman.

ingrese la descripción de la imagen aquí

Lo que tengo hasta ahora es

ingrese la descripción de la imagen aquí

\RequirePackage{luatex85}
\documentclass{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}

\begin{document}

$\feynmandiagram [horizontal=a to b, layered layout, baseline=(i1.base)] {
  i1 -- a [dot]
  -- [photon,half left,momentum'=\(q\)] b [dot]
  -- [photon,half left,momentum'=\(q\)] a,
  b -- f1
};
+
\feynmandiagram [horizontal=a to b, layered layout, baseline=(a.base)] {
  {i1,i2} -- a [dot]
  -- [photon,half left,momentum'=\(q\)] b [crossed dot]
  -- [photon,half left,momentum'=\(q\)] a,
};$

\end{document}

Hay algunas preguntas abiertas:

  1. ¿Cómo puedo mover las flechas de impulso fuera de los bucles?
  2. ¿Cómo puedo acortar las líneas de entrada y salida?
  3. ¿Cómo puedo alinear verticalmente con precisión el centro de ambos diagramas con el signo más?
  4. ¿Cómo puedo agregar el punto cruzado en el primer diagrama?

Actualizar

Con la ayuda deJP-Ellispude conseguir

ingrese la descripción de la imagen aquí

\RequirePackage{luatex85}
\documentclass{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}

\begin{document}
$\feynmandiagram [horizontal=a to c,inline=(a.base)] {
    a [dot] -- [charged boson,quarter left,edge label=\(q\)] b
    -- [photon,quarter left] c [dot]
    -- [charged boson,quarter left,edge label=\(q\)] d [crossed dot]
    -- [charged boson,quarter left,edge label=\(q\)] a,
    f1 -- c,
    i1 -- a,
};
\quad\raisebox{-0.5ex}{+}\quad
\feynmandiagram [horizontal=a to b, layered layout, inline=(a.base)] {
    {i1,i2} -- a [dot]
    -- [charged boson,half left,edge label=\(q\)] b [crossed dot]
    -- [charged boson,half left,edge label=\(q\)] a [desired at={(0, 0)}],
};$
\end{document}

Queda una pregunta: ¿hay alguna manera de mover la flecha charged bosonhasta edge labelel final de una línea? Mi intención es tenerlos en la parte superior del arco superior en el primer diagrama (en lugar de en la mitad del primer cuarto).

Respuesta1

¡Gran trabajo en los diagramas ya!

Entonces déjame abordar las preguntas:

¿Cómo puedo mover las flechas de impulso fuera de los bucles?

La momentumclave se presenta en dos formas: momentumy momentum'. Estos difieren sólo en términos del lado en el que se colocan las flechas; entonces usar momentumresuelve el problema en su caso.

¿Cómo puedo acortar las líneas de entrada y salida?

Recientemente respondí otra pregunta en este sitio que exploraba el uso de nudge. Si específicamente solo desea ajustar las líneas externas, esto podría usarse. Alternativamente, tal vez quieras ajustar todo el diagrama para que sea más pequeño (ya que parece que los tendrás dentro de una ecuación). Esto se puede lograr con small.

¿Cómo puedo alinear verticalmente con precisión el centro de ambos diagramas con el signo más?

Tienes razón al usar baseline; sin embargo, como habrás notado, el símbolo '+' en realidad no está en la línea base y, de hecho, está ligeramente arriba. La 'distancia mágica' desde la línea de base hasta la barra horizontal en el '+' es -\the\dimexpr\fontdimen22\textfont2\relax; aunque no recuerdo de dónde lo saqué originalmente en este sitio.

Luego, la baselineclave puede tomar un nodo (como lo ha hecho) o una distancia de desplazamiento real. En el caso de que se especifique una distancia, ésta es relativa a la (0, 0)coordenada que, si no se especifican otras coordenadas, será la ubicación del primer vértice. Para el primer diagrama todo esto está bien, pero en el segundo caso le digo al algoritmo que (a)debería (0, 0)usar la desired atclave.

¿Cómo puedo agregar el punto cruzado en el primer diagrama?

Puede agregar vértices adicionales en ubicaciones fijas, aunque desafortunadamente no puede hacerlo dentro del \feynmandiagramcomando. La siguiente solución utiliza el \diagramcomando dentro de un {feynman}entorno y luego coloca manualmente el punto tachado. El punto medio se calcula con (a)!0.5!(b)y luego se mueve hacia abajo hasta que se vea bien.


Aquí está la solución que implementa todo. Tenga en cuenta que he utilizado ambos nudgey small. Esto significa que el segundo diagrama tiene todo un poco más pequeño (por lo tanto, los puntos rellenos y cruzados se ven diferentes). Lo ideal sería utilizar sólo uno de los dos métodos, pero aquí se ilustran ambos.

\documentclass{article}

\usepackage[compat=1.1.0]{tikz-feynman}

\def\plusheight{-\the\dimexpr\fontdimen22\textfont2\relax}

\begin{document}
\begin{equation}
  \begin{tikzpicture}[baseline=\plusheight]
    \begin{feynman}
      \diagram [horizontal=a to b, layered layout] {
        i1 [nudge right=0.7cm] -- a [dot]
        -- [photon, half left, momentum=\(q\)] b [dot]
        -- [photon, half left, momentum=\(q\)] a ,
        b -- f1 [nudge left=0.7cm]
      };
      \vertex [crossed dot, fill=white] (i) at ($(a)!0.5!(b) - (0, 0.75)$) {};
    \end{feynman}
  \end{tikzpicture}
  +
  \feynmandiagram [horizontal=a to b, layered layout, small, baseline=\plusheight] {
    {i1,i2} -- a [dot]
    -- [photon, half left, momentum=\(q\)] b [crossed dot]
    -- [photon, half left, momentum=\(q\)] a [desired at={(0, 0)}],
  };
\end{equation}
\end{document}

producción


Para abordar la respuesta actualizada: el charged bosonestilo es, internamente, una combinación de bosony with arrow=0.99. El with arrowestilo no está documentado en este momento ya que no esperaba que la gente lo usara, pero probablemente debería agregarlo a la documentación. Por alguna razón, with arrow=1en realidad no funciona, por lo que 0.99es suficientemente bueno.

Como resultado, simplemente puedes reemplazar charged bosoncon boson, with arrow=1el resultado deseado:

\RequirePackage{luatex85}
\documentclass{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}

\begin{document}
\feynmandiagram [horizontal=a to c, small] {
    a [dot] -- [boson, with arrow=0.99, quarter left, edge label=\(q\)] b
    -- [photon, quarter left] c [dot]
    -- [charged boson, quarter left, edge label=\(q\)] d [crossed dot]
    -- [charged boson, quarter left, edge label=\(q\)] a,
    f1 -- c,
    i1 -- a,
};
\end{document}

producción

Respuesta2

Para su segundo diagrama:

% !TEX TS-program = lualatex 
\RequirePackage{luatex85}
\documentclass{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}

\begin{document}

$\feynmandiagram [horizontal=a to b, layered layout, baseline=(a.base)] {
  {i1,i2} -- a [dot]
  -- [charged boson,half left,edge label=\(q\)] b [crossed dot]
  -- [charged boson,half left,edge label=\(q\)] a,
};$

\end{document}

ingrese la descripción de la imagen aquí


O con puntas de flecha personalizadas:

% !TEX TS-program = lualatex 
\RequirePackage{luatex85}
\documentclass{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}

\tikzfeynmanset{ with arrow/.style = {
   decoration={
     markings,
     mark=at position 0.5
          with {\arrow[xshift=1mm]{Stealth[width=2mm,length=2mm]}}
     },
   postaction=decorate}
}

\begin{document}

$\feynmandiagram [horizontal=a to b, layered layout, baseline=(a.base)] {
  {i1,i2} -- a [dot]
  -- [charged boson,half left,edge label=\(q\)] b [crossed dot]
  -- [charged boson,half left,edge label=\(q\)] a,
};$

\end{document}

ingrese la descripción de la imagen aquí

Lo mismo con el primer diagrama:

% !TEX TS-program = lualatex 
\RequirePackage{luatex85}
\documentclass{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}

\tikzfeynmanset{ with arrow/.style = {
   decoration={
     markings,
     mark=at position 0.5
          with {\arrow[xshift=1mm]{Stealth[width=1.8mm,length=1.8mm]}}
     },
   postaction=decorate}
}


\begin{document}
$\feynmandiagram [horizontal'=a to c,inline=(a.base)] {
    a [dot] -- [charged boson,half left,edge label=\(q\)] c [dot]
    -- [charged boson,quarter left,edge label=\(q\)] d [crossed dot, yshift=0.4cm]
    -- [charged boson,quarter left,edge label=\(q\)] a,
    f1[yshift=-0.465cm] -- c,
    i1[yshift=-0.465cm] -- a,
};
$
\end{document}

ingrese la descripción de la imagen aquí

información relacionada