tikz beamer add tag
निरंजन
I am trying to write on the `columnseprule`, this is what right now I've tried.

```
\documentclass[8pt]{beamer}
\usefonttheme{serif}
\usepackage{multicol}
\usepackage{minted}
\usepackage{tikz}
\usecolortheme{dove}
\columnseprule=0.01em

\begin{document}
\begin{frame}{First}
\begin{multicols}{2}
This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text.

\columnbreak
\uncover<3->{This is some text. This is some text. This is some text. This is some text. This is some text.}

\vspace*{-0.1cm}
\hspace*{-0.65cm}
\uncover<2->{\begin{tikzpicture}
	\draw[fill=white] (0,0) circle[radius=4mm] node{text};
	\end{tikzpicture}}
\end{multicols}
\end{frame}
\end{document}
```

I want the tikz node to be at the exact center of the `columnseprule`, but without any manual calculation (unlike in the MWE). How to automatically calculate the distance and place the node exactly where I want (with the overlay)?
Top Answer
samcarter
One possibility is to use the `tikzmark` library. This will allow you to place marks before and after the columns environment to measure their vertical positions.

Instead of the `multicol` package, I'm using beamers native columns environment in the following example. This allows me to simply add a another column with the same width as your circle to place it in the centre between the other columns.

And finally you can use the syntax `node[midway] (...) {text};` to add a node in the middle the line.

```
\documentclass[8pt]{beamer}
\usefonttheme{serif}
%\usepackage{multicol}
%\usepackage{minted}
\usepackage{tikz}
\usecolortheme{dove}
%\columnseprule=0.01em

\usetikzlibrary{tikzmark,calc}

\begin{document}
\begin{frame}{First}

\tikzmark{start}
\begin{columns}[onlytextwidth,c]
\begin{column}{.45\textwidth}
This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text.
\end{column}
\begin{column}{8mm}
\begin{tikzpicture}[remember picture, overlay, inner sep=0pt,outer sep=0pt]
	\draw<1> let \p{A}=(pic cs:start), \p{B}=(pic cs:stop) in
    (4mm,\y{A}) -- (4mm,\y{B});
	\draw<2-> let \p{A}=(pic cs:start), \p{B}=(pic cs:stop) in
    (4mm,\y{A}) -- (4mm,\y{B}) node[midway,circle,draw,fill=white,text width=8mm,align=center] (b) {text};
	\end{tikzpicture}
\end{column}
\begin{column}{.45\textwidth}
\uncover<3->{This is some text. This is some text. This is some text. This is some text. This is some text.}
\end{column}
\end{columns}
\tikzmark{stop}

\end{frame}
\end{document}
```


![Screen Shot 2020-02-29 at 19.52.24.png](/image?hash=2bd3565268a051d82b48e2c3a4b707e2628f689ab7d1c0b893d7a9656bd50c09)
Answer #2
CrazyHorse
You have to go up half a normal baseline and to the left half a column sepraration and the radius, in this case 4mm.

```
\vspace*{-0.5\normalbaselineskip}%
\hspace*{\the\dimexpr-0.5\columnsep-4mm}%
\uncover<2->{\tikz\draw[fill=white] (0,0) circle[radius=4mm] node{text};}
```

![Bildschirmfoto 2020-02-29 um 20.46.34.png](/image?hash=c3c500ded0f1ce6b8dbe13b5f77fab457ab4b862134e6712973dac8e21b2163b)

You have to increase the `\columnsep` value if you do not want that the text overlaps the circle.

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.