cfiandra” post=81552Il problema:
1) prima di tutto alcuni elementi della matrice devono necessariamente essere inseriti nella maniera “classica” altrimenti la matrice viene completamente schiacciata come se non ci fosse alcun elemento. Per fortuna tutta la terza riga non serve per i riferimenti e ho potuto inserire normalmente gli elementi, senza usare \tikzmark, ma mi piacerebbe capire come realizzare una matrice i cui elementi sono solo macro \tikzmark.
deriva dal fatto che la macro serve per identificare qualcosa a prescindere da cosa sia questo qualcosa, per cui sarebbe preferibile non inserire contenuti all’interno del nodo. Facendolo, si è obbligati ad usare un workaround come [tt]\tikzmark{label}{$formula$}[/tt] che poi è proprio la ragione per cui la matrice rimane schiacciata perché suppongo che la definizione di [tt]pmatrix[/tt], ma delle matrici in generale, usi metodi interni per calcolare le dimensioni, cosa che inserendo un nodo di TikZ fa sballare. Invece, con la definizione “tradizionale”: `\newcommand{\tikzmark}[1]{
\tikz[baseline=-\the\dimexpr\fontdimen22\textfont2\relax,remember picture,overlay]\node (#1) {};
}
` è perfettamente possibile scrivere: `
\begin{equation}
\begin{pmatrix}
\tikzmark{00}T_{00} & \tikzmark{01}T_{01} & \tikzmark{02}T_{02} & \tikzmark{03}T_{03} \\
\tikzmark{10}T_{10} & \tikzmark{11}T_{11} & T_{12} & \tikzmark{13}T_{13} \\
T_{20} & T_{21} & T_{22} & T_{23} \\
\tikzmark{30}T_{30} & \tikzmark{31}T_{31} & \tikzmark{32}T_{32} & \tikzmark{33}T_{33} \\
\end{pmatrix}
\end{equation}
` e la matrice risultante non avrà nessun effetto particolare. Chiaramente cosi facendo, ricompilando immediatamente il documento, si ha come side effect che colore di sfondo ed annotazioni non sono più centrate: il motivo è che ora il nodo non ha dimensione, mentre prima ne aveva una ben definita: quella del contentuto. In effetti, la definizione: `\newcommand{\tikzmark}[2]{
\tikz[baseline=-\the\dimexpr\fontdimen22\textfont2\relax,remember picture,overlay]\node (#1) {#2};
}` e l’uso: `\tikzmark{31}{$T_{31}$}` era esattamente la stessa cosa di:`
\tikz\node(31){$T_{31}$};
` Porta a concludere, quindi, che questa definizione di tikzmark macro non va bene.
Avevo dimenticato di spiegare perché ho cambiato la definizione di [tt]\tikzmark[/tt]:
`\newcommand{\tikzmark}[2]{
\tikz[baseline=-\the\dimexpr\fontdimen22\textfont2\relax,remember picture,overlay]\node (#1) {#2};
}
\newcommand{\realtikzmark}[1]{
\tikz[baseline=-\the\dimexpr\fontdimen22\textfont2\relax,remember picture,overlay]\node (#1) {};
}
\tikzmark{uno}{A} \realtikzmark{due}A
\begin{tikzpicture}[overlay,remember picture]
\draw[red] (uno.north west) — (uno.south west) — (uno.south east) —
(uno.north east) — cycle;
\draw[blue] (due.north west) — (due.south west) — (due.south east) —
(due.north east) — cycle;
\end{tikzpicture}`Con la mia definizione le ancore sono corrette attorno al contenuto del nodo (anche se comunque ho dovuto fare degli adattamenti), con la definizione tradizionale di [tt]\tikzmark[/tt] direi proprio di no (e senza la famosa baseline di egreg9 sarebbe ancora peggio).
edit: ti riferivi a questo con la frase «si ha come side effect che colore di sfondo ed annotazioni non sono più centrate»?