
Meu principal objetivo é ter tags na extremidade esquerda dos tikzfigures. Quando eu defino o tikzfigure
interior da equação ele é centralizado onde colidiu com a tag. Como há espaço no lado direito, como posso mudar o tikzfigure para o lado direito para evitar sua colisão com a tag. Observe que estou trabalhando em uma coluna dupla.
código tex (o código original é retirado dehttps://tex.stackexchange.com/a/661116/127048)
\documentclass[10pt,journal,compsoc]{IEEEtran} \usepackage{lipsum} \usepackage{amsmath} \makeatletter \newcommand{\leqnos}{\tagsleft@true\let\veqno\@@leqno} \newcommand{\reqnos}{\tagsleft@false\let\veqno\@@eqno} \reqnos \makeatother \usepackage{tikz-cd} \usetikzlibrary{positioning} \begin{document} \setcounter{page}{15} \begingroup\leqnos \lipsum[1][1-3] \begin{equation} \begin{tikzcd} B\times_A \end{tikzcd}~\tag{a} \end{equation} \begin{equation} \begin{tikzpicture}[baseline=(current bounding box.center),compute/.style={draw,thick,font=\sffamily, append after command={ (\tikzlastnode.south west) edge[double=gray!50,double distance=3pt, line cap=rect, shorten >=-2pt,shorten <=-2pt] (\tikzlastnode.south east)}}] \node[compute] (n1) {Node}; \node[compute,right=2cm of n1, yshift=11mm] (n2) {More text}; \node[compute,right=2.2cm of n2] (n3) {More}; \node[compute,below=2cm of n2] (n4) {text}; \draw[thick,-stealth] (n1) -- (n2) -- (n3) -- (n4); \end{tikzpicture}~\tag{b} \end{equation} \endgroup \end{document}
saída:
Aqui, se a figura do tikz for deslocada para a direita, sua colisão com a tag será evitada.
Relacionado:Como posso ter sinais (a) (b) no lado esquerdo de várias figuras tikz?
Responder1
Suas imagens são tão largas que cabem na largura de uma coluna. Lá no caso, que as imagens tinham que ser colocadas em uma coluna, fica ao lado
- reduzindo o tamanho da fonte para
\small
ou até mesmo para\footnotesie
, - reduzindo a largura dos nós permitindo texto de várias linhas neles,
- reduzindo distâncias horizontais entre modos,
não há muitas possibilidades para o que pode ser feito. Um exemplo de como o mencionado acima pode ser implementado é:
\documentclass[10pt,journal,compsoc]{IEEEtran}
\usepackage{lipsum}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}
\usepackage{amsmath}
\makeatletter
\newcommand{\leqnos}{\tagsleft@true\let\veqno\@@leqno}
\newcommand{\reqnos}{\tagsleft@false\let\veqno\@@eqno}
\reqnos
\makeatother
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta,
positioning}
\begin{document}
\lipsum[1][1-3]
\begingroup\leqnos
\begin{equation}
\begin{tikzcd}
B\times_A
\end{tikzcd}~\tag{a}
\end{equation}
\begin{equation}
\begin{tikzpicture}[baseline=(current bounding box.center),
node distance = 13mm,
compute/.style = {draw, thick, font=\small\sffamily, align=center,
append after command={\pgfextra{\let\LN\tikzlastnode}
(\LN.south west) edge[double=gray!50,double distance=3pt,
line cap=rect,
shorten >=-2pt,shorten <=-2pt]
(\LN.south east)}},
]
\node[compute] (n1) {Node};
\node[compute,right=of n1] (n2) {More text};
\node[compute,right=of n2] (n3) {More text text\\ text text text};
\node[compute,below=of n2] (n4) {text};
\draw[thick,draw, -Stealth, shorten > = 3pt, shorten < = 3pt]
(n1) edge (n2)
(n2) edge (n3)
(n3) to (n4);
\end{tikzpicture}~\tag{b}
\end{equation}
\endgroup
\lipsum
\end{document}
Termo aditivo: Do comentário segue:
- em sua abordagem não é possível obter o que você procura
- uma maneira é definir um novo ambiente, que possui a tag )not refereable) à esquerda e imagens ou outro texto à direita, centralizado ou irregular à esquerda.
- exemplo de comando sucn pode ser:
\usepackage{tabularray}
\newcommand\LST[3]{
\begin{center}
\begin{tblr}{colspec={@{} Q[c, font=\bfseries] X[#1] @{}} }
#2 & #3
\end{tblr}
\end{center}}
- No uso da definição acima, você precisa redefinir um pouco
compute
o estilo do nó:
compute/.style = {draw, thick, font=\small\sffamily, align=center,
append after command={\pgfextra{\let\LN\tikzlastnode}
([xshift=-2pt] \LN.south west)
edge[double=gray!50,double distance=3pt,
line cap=rect]
([xshift=+2pt] \LN.south east)}},
]
- Um exemplo de como usar o acima mencionado é:
\documentclass[journal,compsoc]{IEEEtran}
\usepackage{tabularray}
\newcommand\LST[3]{
\begin{center}
\begin{tblr}{colspec={@{} Q[c, font=\bfseries] X[#1] @{}} }
#2 & #3
\end{tblr}
\end{center}}
\usepackage{caption}
\usepackage[export]{adjustbox}
\usepackage[label font=bf, labelformat=simple]{subfig}
\usepackage{lipsum}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta,
positioning}
\begin{document}
\lipsum[1][1-3]
\LST{c}{(a)}{$B\times_A$}
\LST{r}{(b)}{%
\begin{tikzpicture}[baseline=(current bounding box.center),
node distance = 12mm,
compute/.style = {draw, thick, font=\small\sffamily, align=center,
append after command={\pgfextra{\let\LN\tikzlastnode}
([xshift=-2pt] \LN.south west)
edge[double=gray!50,double distance=3pt,
line cap=rect]
([xshift=+2pt] \LN.south east)}},
]
\node[compute] (n1) {Node};
\node[compute,right=of n1] (n2) {More text};
\node[compute,right=of n2] (n3) {More text text\\ text text text};
\node[compute,below=of n2] (n4) {text};
\draw[thick,draw, -Stealth, shorten > = 3pt, shorten < = 3pt]
(n1) edge (n2)
(n2) edge (n3)
(n3) to (n4);
\end{tikzpicture}%
}
\lipsum
\end{document}
Desculpe, devido a um erro do servidor (github), não consigo fazer upload de imagens produzidas com o MWE acima.