Пунктирные линии только для покрытых границ с TQFT

Пунктирные линии только для покрытых границ с TQFT

я используюЭндрю СтейсизамечательныйПакет TQFTдля создания картинок кобордизмов. Но у меня проблемы с границами:

введите описание изображения здесь

\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}

Мои правила рисования кобордизмов таковы, что границы, которые охватывает кобордизм, пунктирные, а все, что видно, должно быть сплошным. Выше показано, как далеко я зашел — почти все круги получаются правильно, но нижний круг должен быть полностью сплошным. Есть ли ключ для стилизации только исходящей нижней границы?

решение1

Вы определяете глобальную настройку для lower boundaryvia every ...key. Поэтому вам нужно ее перезаписать.

\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}

введите описание изображения здесь

решение2

Эту проблему можно обойти, нарисовав дополнительный граничный круг поверх пары брюк (спасибо Эндрю Стейси за указание на это):

\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}

введите описание изображения здесь

решение3

Я (7 апреля 2014 г.) загрузил новую версию пакета tqftв CTAN. После того, как она распространится по всей системе, следующее позволит достичь желаемого результата.

\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}

Эта редакция (требовавшая TikZ3.0 или более поздней версии) вводит гораздо больше возможностей для стилизации. По сути, любой сегмент путей кобордизма может быть стилизован отдельно.

TQFT с отдельным стилем

Связанный контент