Anteriormente fui ajudado sobre como alinhar e posicionar gráficos em uma tabela com subtramas opcionais nesta questão:Sobreponha dois arquivos .tikz da entrada
Funcionou muito bem, mas não gostei de usar opções de escala para reduzir os gráficos. Prefiro apenas especificar a largura e a altura e deixar o látex cuidar do tamanho da fonte. Tornou-se um artigo muito mais consistente.
Portanto, ao criar um gráfico, atribuo a ele um estilo que permite a configuração de largura e altura do lote no preâmbulo e, em seguida, edito as entradas individuais pertinentes a esse gráfico abaixo.
Infelizmente, o uso deste sistema eliminou o alinhamento novamente. Parece que o alinhamento só permanece quando eu uso um estilo personalizado que define TODAS as entradas no preâmbulo ou quando não uso nenhum estilo personalizado e defino a largura e a altura na imagem .tikz como iguais.
MWE completo para mostrar meu problema:
\documentclass{article}
\usepackage{graphicx,array,booktabs,pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{calc}
\pgfplotsset{inTable/.style={
width=4.0cm,
height=4.0cm,
}}
\newsavebox{\mybox}
\sbox{\mybox}{
\begin{tikzpicture}
\begin{axis}[inTable,
scale only axis,
xmin=1,
xmax=500,
xlabel={A},
ymin=0.5,
ymax=1,
ylabel={A}]
\addplot [color=blue,solid,line width=1.0pt,forget plot]
table[row sep=crcr]{
10 0.7 \\
11 0.7 \\
12 0.7 \\
};
\end{axis}
\end{tikzpicture}}
\newsavebox{\myboxB}
\sbox{\myboxB}{
\begin{tikzpicture}
\begin{axis}[inTable,
scale only axis,
xmin=1,
xmax=200,
xlabel={B},
ymin=0,
ymax=3,
ylabel={B}]
\addplot [color=blue,solid,line width=1.0pt,forget plot]
table[row sep=crcr]{
10 0.5 \\
11 0.6 \\
12 0.7 \\
};
\end{axis}
\end{tikzpicture}}
\begin{document}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\begin{table}[htb!]
\centering
\begin{tabular}{P{6.5cm} P{6.5cm}}
\toprule
Expt1 & Expt2\\
\cmidrule(r){1-1}\cmidrule(l){2-2}
\begin{tikzpicture}[baseline=(a.base)]
\node[outer sep=0pt] (a){\usebox{\mybox}};
%%% Change dimensions in $(a.east)+(-0.9,0cm)$
% \node[anchor=east,outer sep=0pt] at
% ($(a.east)+(-0.9,0cm)$){\usebox{\mybox}};
\end{tikzpicture}
{\usebox{\mybox}}
&
{\usebox{\mybox}}
{\usebox{\myboxB}}
\\ \bottomrule
\end{tabular}
\caption{Test}
\label{tbl:1}
\end{table}
\end{document}
A ajuda é muito apreciada. Esta deve ser a peça final do meu protocolo de plotagem inserida em gráfico de tabela.
Responder1
Ok, obrigado Torbjørn T, o manual mexeu com minha memória.
Em primeiro lugar, porque a imagem superior esquerda era na verdade o {tikzpicture}
interior de um \begin{tikzpicture}
ambiente. Tive que fazer a mesma coisa para a imagem superior direita. Em seguida, adicionar os sinalizadores de alinhamento [baseline, trim axis left, trim axis right]
a cada um \begin{tikzpicture}
(aqueles que importo de um arquivo .tikz em meu documento real corrige o alinhamento.
Finalmente tenho um método para alinhamento e controle total de parcelas e subparcelas. Obrigado a todos que me ajudaram.
MEW completo:
\documentclass{article}
\usepackage{graphicx,array,booktabs,pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{calc}
\pgfplotsset{inTable/.style={
width=4.0cm,
height=4.0cm, %Change these numbers to ovveride all graphs in the table sizes in the table
}}
\newsavebox{\mybox}
\sbox{\mybox}{
\begin{tikzpicture}[baseline, trim axis left, trim axis right]
\begin{axis}[inTable,
scale only axis,
baseline,
xmin=1,
xmax=500,
xlabel={A},
ymin=0.5,
ymax=1,
ylabel={A}]
\addplot [color=blue,solid,line width=1.0pt,forget plot]
table[row sep=crcr]{
10 0.7 \\
11 0.7 \\
12 0.7 \\
};
\end{axis}
\end{tikzpicture}}
\newsavebox{\myboxB}
\sbox{\myboxB}{
\begin{tikzpicture}[baseline, trim axis left, trim axis right]
\begin{axis}[inTable,
scale only axis,
xmin=1,
xmax=200,
xlabel={B},
ymin=0,
ymax=3,
ylabel={B}]
\addplot [color=blue,solid,line width=1.0pt,forget plot]
table[row sep=crcr]{
10 0.5 \\
11 0.6 \\
12 0.7 \\
};
\end{axis}
\end{tikzpicture}}
\begin{document}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\begin{table}[htb!]
\centering
\begin{tabular}{P{6.5cm} P{6.5cm}}
\toprule
Expt1 & Expt2\\
\cmidrule(r){1-1}\cmidrule(l){2-2}
\begin{tikzpicture}[baseline=(a.base)]
\node[outer sep=0pt] (a){\usebox{\mybox}};
%%% Change dimensions in $(a.east)+(-0.9,0cm)$
% \node[anchor=east,outer sep=0pt] at
% ($(a.east)+(-0.9,0cm)$){\usebox{\mybox}};
\end{tikzpicture}
{\usebox{\mybox}}
&
\begin{tikzpicture}[baseline=(a.base)]
\node[outer sep=0pt] (a){\usebox{\mybox}};
%%% Change dimensions in $(a.east)+(-0.9,0cm)$
% \node[anchor=east,outer sep=0pt] at
% ($(a.east)+(-0.9,0cm)$){\usebox{\mybox}};
\end{tikzpicture}
{\usebox{\myboxB}}
\\ \bottomrule
\end{tabular}
\caption{Test}
\label{tbl:1}
\end{table}
\end{document}