Não consigo justificar minha legenda corretamente para carros alegóricos largos. Tenho páginas opostas e, depois de muitas experiências, o mais próximo que cheguei do sucesso foi um layout adequado apenas para páginas ímpares.
Gostaria que a figura larga e a legenda ficassem justificadas na página. Gostaria que a legenda fosse muito menos larga que o flutuador.
Aqui está meu MWE:
\documentclass[openright,twoside]{book}
\usepackage[facing=yes]{floatrow}
\usepackage{caption}
\usepackage{lipsum}
\usepackage{tabulary}
%%
% Set page layout geometry
% The asymmetric option keeps the margin notes always on the same side of the page which is the way Tufte does it.
\RequirePackage[
letterpaper,
asymmetric,
includemp,
inner=0.5in,
bindingoffset=1.0in,
width=6.75in,
marginparsep=0.25in,
marginparwidth=2in,
showframe,
] {geometry}
\floatsetup[widefloat]
{
floatwidth=6.75in,
objectset=raggedright,
}
%
\captionsetup[widefloat]
{
margin={0pt,2.25in},
justification=justified,
font=small
}
\begin{document}
\lipsum[2]
\begin{table*}[ht]
\begin{tabulary}{\linewidth}{|L|l|l|l|l|l|l|}
\hline
foofoofoo & barbarbar & foofoofoo & barbarbar & foofoofoo & barbarbar & foofoofoo \\
\hline
\end{tabulary}
\caption{Pellentesque habitant morbi tristique senectus et netus et malesuada
fames ac turpis egestas. Donec odio elit, dictum in, hendrerit sit amet,
egestas sed, leo. Praesent feugiat sapien aliquet odio. Integer vitae justo.}
\end{table*}
\clearpage
\lipsum[2]
\begin{table*}[ht]
\begin{tabulary}{\linewidth}{|L|l|l|l|l|l|l|}
\hline
foofoofoo & barbarbar & foofoofoo & barbarbar & foofoofoo & barbarbar & foofoofoo \\
\hline
\end{tabulary}
\caption{Pellentesque habitant morbi tristique senectus et netus et malesuada
fames ac turpis egestas. Donec odio elit, dictum in, hendrerit sit amet,
egestas sed, leo. Praesent feugiat sapien aliquet odio. Integer vitae justo.}
\end{table*}
\end{document}
Aqui está o problema em que me meto (showframe
está ativado). Observe que a tabela larga está corretamente alinhada à esquerda, mas a legenda está pendurada no lado errado.
----- EDITAR -----
Tanto quanto posso dizer,floatrow
tem um bug girando nas margens esquerda e direita. Este hack usa ochangepage
pacote para desfazer o swizzle da margem:
\newcommand{\widecapfix}
{
\checkoddpage
\ifoddpage
\captionsetup{margin={0in,2.25in}}
\else
\captionsetup{margin={2.25in,0in}}
\fi
}
Portanto, devo inserir \widecapfix
em cada figura larga o uso logo acima da legenda. Muito nojento, eu acho.
Responder1
Se você deseja fazer a transição de suas tabelas de um ambiente para uma estrutura de comando, modifiquei uma boxhandler
rotina de pacote para alcançar, creio eu, o resultado desejado. As alterações que tive que fazer no \ReciteTable
comando foram duas: tive que colocar a legenda da tabela depois, e não antes, do conteúdo da tabela; e tive que forçar a legenda a ficar justificada à esquerda em relação à mesa superdimensionada.
\documentclass[openright,twoside]{book}
\usepackage{lipsum}
\usepackage{tabulary}
\usepackage{boxhandler}
%%
% Set page layout geometry
% The asymmetric option keeps the margin notes always on the same side of the page which is the way Tufte does it.
\RequirePackage[
letterpaper,
asymmetric,
includemp,
inner=0.5in,
bindingoffset=1.0in,
width=6.75in,
marginparsep=0.25in,
marginparwidth=2in,
showframe,
] {geometry}
\makeatletter
\renewcommand\ReciteTable[6][ht]{%
\begin{table}[#1]%
\begin{\LRTablePlacement}%
\let\@makecaption\new@makecaption%
\setlength\abovecaptionskip{\arabic{abovecaptionskipterm}\p@}%
\setlength\belowcaptionskip{\arabic{belowcaptionskipterm}\p@}%
\set@DataBoxWidth{#3}%
\setlength\CaptionBoxWidth{#4}%
\set@BoxOffsets%
\if T#6%
\rule{\@DataBoxOffset}{0in}%
\makebox[\@DataBoxWidth][l]{#5}%
\rule{\@DataBoxOffset}{0in}\\%
\fi
\rule{\@DataBoxOffset}{0in}%
\usebox{#3}%
\rule{\@DataBoxOffset}{0in}\\%
\par%
\parbox{\CaptionBoxWidth}{\bx@caption{#2}}%
\rule{\@CaptionBoxOffset}{0em}%
\rule{\@CaptionBoxOffset}{0em}%
\if T#6%
\rule{\@DataBoxOffset}{0in}\\%
\makebox[\@DataBoxWidth][r]{#5}%
\rule{\@DataBoxOffset}{0in}%
\fi
\let\@makecaption\old@makecaption%
\setlength\abovecaptionskip \oldabovecaptionskip%
\setlength\belowcaptionskip \oldbelowcaptionskip%
\end{\LRTablePlacement}%
\end{table}%
}
\makeatother
\begin{document}
\lipsum[2]
\constrainCaptionWidth{\textwidth}
\captionStyle{n}{l}
\setlength\TableDeadMargin{0em}
\bxtable[ht]{Pellentesque habitant morbi tristique senectus et netus et malesuada
fames ac turpis egestas. Donec odio elit, dictum in, hendrerit sit amet,
egestas sed, leo. Praesent feugiat sapien aliquet odio. Integer vitae justo.}
{%
\normalsize
\begin{tabulary}{6.75in}{|L|l|l|l|l|l|l|}
\hline
foofoofoo & barbarbar & foofoofoo & barbarbar & foofoofoo & barbarbar & foofoofoo \\
\hline
\end{tabulary}
}
\clearpage
\lipsum[2]
\bxtable[ht]{Pellentesque habitant morbi tristique senectus et netus et malesuada
fames ac turpis egestas. Donec odio elit, dictum in, hendrerit sit amet,
egestas sed, leo. Praesent feugiat sapien aliquet odio. Integer vitae justo.}
{%
\normalsize
\begin{tabulary}{6.75in}{|L|l|l|l|l|l|l|}
\hline
foofoofoo & barbarbar & foofoofoo & barbarbar & foofoofoo & barbarbar & foofoofoo \\
\hline
\end{tabulary}
}
\end{document}