Linhas tracejadas apenas para limites cobertos com TQFT

Linhas tracejadas apenas para limites cobertos com TQFT

estou a usarAndrew StacymaravilhosoPacote TQFTpara criar imagens de cobordismos. Mas estou tendo problemas com os limites:

insira a descrição da imagem aqui

\documentclass{article}

\usepackage{tikz}
\usepackage{tqft}

\begin{document}
    \begin{tikzpicture}
        \node[draw,tqft/reverse pair of pants,boundary lower style={draw,dashed}] (A) {};
        \node[label={below:should be solid}] at (A.outgoing boundary 1) {};
    \end{tikzpicture}
\end{document}

A minha convenção de desenho para os cobordismos é que as fronteiras cobertas pelo cobordismo são tracejadas e tudo o que é visível deve ser sólido. O texto acima mostra até onde cheguei - quase todos os círculos saem corretamente, mas o círculo inferior deve estar completamente sólido. Existe uma chave para definir apenas o estilo do limite inferior de saída?

Responder1

Você define uma configuração global para lower boundaryvia every ...chave. Então você precisa sobrescrevê-lo.

\documentclass{standalone}

\usepackage{tikz}
\usepackage{tqft}

\begin{document}
    \begin{tikzpicture}[every tqft/.style={draw,boundary lower style={draw,dashed}}]% DASHED!!!
        \node[tqft/pair of pants] (A) {};
        \node[tqft/reverse pair of pants,anchor=incoming boundary 1,
                    boundary lower style={draw,solid}% SOLID AGAIN HERE !!
                    ] (B) at (A.outgoing boundary 1) {};
        \node[label={below:should be solid}] at (B.outgoing boundary 1) {};
    \end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Responder2

É possível contornar esse problema desenhando um círculo de limite adicional sobre o par de calças (obrigado a Andrew Stacey por apontar isso):

\documentclass{article}

\usepackage{tikz}
\usepackage{tqft}

\begin{document}
    \begin{tikzpicture}
        \node[draw,tqft/reverse pair of pants,boundary lower style={draw,dashed}] (A) {};
        \node[tqft boundary circle,draw] at (A.outgoing boundary 1) {};
        \node[label={below:should be solid}] at (A.outgoing boundary 1) {};
    \end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Responder3

Eu (em 7 de abril de 2014) carreguei uma nova versão do tqftpacote no CTAN. Uma vez propagado por todo o sistema, o seguinte alcançará o resultado desejado.

\documentclass{article}
%\url{http://tex.stackexchange.com/q/167836/86}
\usepackage{tikz}
\usetikzlibrary{tqft}

\begin{document}
    \begin{tikzpicture}
        \pic[
  draw,
  tqft/reverse pair of pants,
  every lower boundary component/.style={draw},
  every incoming lower boundary component/.style={dashed},
  every outgoing lower boundary component/.style={solid},
  name=A
];
        \node[label={below:is solid}] at (A-outgoing boundary 1) {};
    \end{tikzpicture}
\end{document}

Esta revisão (que exigia TikZ3.0 ou posterior) introduz muito mais possibilidades de estilo. Em essência, qualquer segmento dos caminhos do cobordismo pode ser estilizado separadamente.

TQFT com estilo separado

informação relacionada