![Propriedades de caixas expressas em coordenadas tikz](https://rvso.com/image/328832/Propriedades%20de%20caixas%20expressas%20em%20coordenadas%20tikz.png)
No meu entendimento, qualquer caixa LaTeX exibe essas propriedades fundamentais:
.. equalquer coisaé embalado em uma caixa LaTeX.
Então, quando eu produzo uma tikz
imagem, ela deve estar de alguma forma embrulhada em uma caixa. Na verdade, parece exibir tal height
e a baseline
quando eu o uso. Por exemplo, este código:
\documentclass{report}
\usepackage[english]{babel}
\usepackage{tikz}
\tikzset{x=1pt, y=1pt, z=1pt}
\begin{document}
\newcommand{\mypicture}{\begin{tikzpicture}
\node (a) at (0, 0) {\strut$a$};
\node (b) at (30, 0) {\strut$b$};
\draw[->] (a) .. controls (15, -20) and (30, -30) .. (b);
\end{tikzpicture}}
In my rather long, multilined text, I wish I could insert \mypicture{} just
as if it were something natural..
\end{document}
produz:
.. agora acho que meu ponto está ficando claro. A inserção acima não parece nada natural, uma vez que \mypicture
a linha de base da caixa não corresponde (a)
à linha de base do nó. E se assim fosse, o espaço vertical entre as duas linhas provavelmente seria afetado.
Como corrigir isso sem ajustes manuais sujos com \raisebox
,\vspace
etc.?
Como expressar todas tikz
as propriedades da caixa de imagens em tikz
coordenadas?
Responder1
Nesse caso, você terá que dizer ao TikZ onde deseja baseline
estar. Aqui você quer que esteja, por exemplo, no seu (a)
nó.
Aqui está um código para fornecê-lo:
\documentclass{report}
\usepackage[english]{babel}
\usepackage{tikz}
\tikzset{x=1pt, y=1pt, z=1pt}
\begin{document}
\newcommand{\mypicture}{\begin{tikzpicture}[baseline=(a.base)]
\node (a) at (0, 0) {\strut$a$};
\node (b) at (30, 0) {\strut$b$};
\draw[->] (a) .. controls (15, 20) and (30, 30) .. (b);
\end{tikzpicture}}
In my text, insert \mypicture{} just as if it were something natural..
\end{document}
E seu resultado:
Espero que possa ajudar.
Responder2
A solução geral que eu precisava era uma combinação de ambos baseline
e a chave maravilhosa use as bounding box
: considere isto :)
\documentclass[a4paper, 12pt]{report}
\usepackage{tikz}
\tikzset{x=1pt, y=1pt, z=1pt}
\begin{document}
\def\myfig{\begin{tikzpicture}[baseline=(base)] % choose baseline
% box dimensions
\path[draw, use as bounding box] (0, 0) rectangle (10, 15);
% set baseline
\coordinate (base) at (0, 5);
% actual content
\path[fill=blue] (0, 0) % a random path
.. controls (10, 10)
and (10, -10) ..
(10, 20) -- cycle;
% visualize baseline
\draw (0, 5) -- (10, 5);
\end{tikzpicture}}
Now I can define \emph{every} frea\myfig ng property of my tikz box!
\end{document}
Ufa!