1

The \FloatBarrier command from the placeins package is frequently used before a section in order to certify that any floats from previous sections have been properly flushed. Such is not my case.

I have a text which describes the process for a software: the user enters the input and then a table with results is generated. I have a series of images demonstrating the various input windows followed by the table. The resulting pdf, however, unfortunately switches the order, placing the last input figure after the table. The result is indeed prettier, but it breaks the logical pattern.

Using \FloatBarrier, that is no longer the case. However, the text is also interrupted, as can be seen below:

enter image description here

Here's the MWE. Sorry for the size, just needed sufficient text to fill the pages. Also, yes, the figure is set with just [p]. It was needed to make sure it stayed on a solitary page for this MWE. In the actual document its set as [tbp] and same problem can still be observed.

\documentclass[12pt]{book}
\usepackage{graphicx}
\usepackage{placeins}
\usepackage{multirow}
\graphicspath{{../figures/}} % graphicx

\begin{document}
\chapter{Passo-a-passo do programa com exemplo}
Como descrito acima, com a protensão dos cabos na primeira fase, a viga irá sacar da forma e ativar seu peso-próprio. Nesta fase teremos então a atuação desta carga permanente. Já na segunda fase, a carga permanente é dada pela combinação de todos os demais esforços: peso-próprio da laje, da pavimentação, do recapeamento e dos guarda-rodas e guarda-corpos. O Prestress permite apenas um carregamento permanente por fase, logo todos estes esforços da segunda fase devem ser adicionados a uma combinação. Esta combinação, no entanto, não deve incluir o peso-próprio das vigas, uma vez que esta carga já foi considerada na fase anterior. Apenas carregamentos novos devem ser inclusos. Por este motivo, as demais fases não apresentam carregamentos permanentes. As cargas selecionadas podem ser vistas na .

O mesmo procedimento deve ser repetido para as cargas acidentais. Neste caso, no entanto, o programa permite mais de uma carga por fase. O Prestress não cria combinações destas, mas adota para cada seção a combinação mais solicitante. Isso significa que cargas móveis que são compostas por diferentes parcelas como o trem-tipo classe 45 (cargas concentradas e distribuídas) devem ser postos em combinações. Observe também que, caso o modelo já tenha sido calculado e as cargas acidentais apresentarem envoltórias do tipo ``Acidental+'' e ``Acidental-'', estes não devem ser selecionados. Apenas o carregamento principal, sem ``+'' ou ``-'', deve ser selecionado. Ao contrário das cargas permanentes, onde cargas já aplicadas não devem ser selecionadas novamente, aqui é necessário selecionar as cargas acidentais atuantes em todas as fases em que atuam. Isso permite a consideração de diferentes cargas acidentais ao longo da vida da estrutura devido a metodologia construtiva, por exemplo. Considerando que a carga acidental é aplicada aos 28 dias, logo após a protensão dos últimos cabos, devemos então selecionar as cargas acidentais atuantes nas fases 2 a 4, conforme .

\begin{figure}[p]
\includegraphics[width=\linewidth, height=0.5\textheight]{example-image-10x16}
\end{figure}
\FloatBarrier

Quando o cálculo é iniciado, o Prestress começa com o cálculo das perdas. Agora compararemos os resultados obtidos pelo programa após cada perda aos esperados pelos cálculos já apresentados. Os valores obtidos pelo programa serão apresentados para todos os cabos, porém somente os do cabo C2 serão utilizados para a comparação de resultados. Vale mencionar que os valores apresentados aqui não podem ser obtidos pelo usuário, que recebe apenas os resultados finais.

A apresenta os valores obtidos para $\lambda$ após as perdas por atrito. Os erros são da ordem de 0,5\%, oriundos das aproximações de ângulo feitas pelo programa e o fato do cálculo a mão considerar que a parábola de $x\in[0;16,504]$ é perfeita, o que ela não é. Comparando o traçado de uma parábola perfeita com o traçado apresentado noobserva-se que o traçado não é exatamente parabólico. Ambos o cálculo a mão e pelo Prestress não consideram o fato do primeiro metro do traçado ser reto e não parabólico, conforme o item 18.6.1.5 da, o que afeta o traçado.

\begin{table}[tbp]
    \centering
    \begin{tabular}{c | c || c | c || c | c}
    \multirow{2}{*}{Seção} & \multirow{2}{*}{C1} & \multicolumn{2}{c||}{C2} & \multirow{2}{*}{C3} & \multirow{2}{*}{C4} \\
    & & Prestress & Cálculo & & \\\hline
    0  & 1.000 & 1.000 & 1.000 & 1.000 & 1.000 \\
    1  & 0.980 & 0.977 & 0.980 & 0.974 & 0.976 \\
    2  & 0.960 & 0.955 & 0.960 & 0.950 & 0.957 \\
    3  & 0.941 & 0.934 & 0.941 & 0.932 & 0.945 \\
    4  & 0.922 & 0.918 & 0.922 & 0.920 & 0.935 \\
    5  & 0.907 & 0.907 & 0.903 & 0.910 & 0.924 \\
    6  & 0.922 & 0.918 & 0.922 & 0.920 & 0.935 \\
    7  & 0.941 & 0.934 & 0.941 & 0.932 & 0.945 \\
    8  & 0.960 & 0.955 & 0.960 & 0.950 & 0.957 \\
    9  & 0.980 & 0.977 & 0.980 & 0.974 & 0.976 \\
    10 & 1.000 & 1.000 & 1.000 & 1.000 & 1.000 \\
    \end{tabular}
    \caption{Perdas por atrito dos cabos do Viaduto de acesso à Santa Isabel}
    \label{tab:StaIsabelAtrito}
\end{table}

O programa então calcula as perdas por encunhamento das ancoragens. A apresenta a fração da protensão inicial existente após estas perdas. O Prestress calculou que o ponto $X = 14,51$m. Adotando a no cálculo a mão, temos que $X = 14,03$m. Como este valor é contido na parábola sem atingir a reta que implicaria em um $\alpha(x)$ não-linear, iremos adotar este valor. A diferença entre os valores obtidos para $X$ é aceitável, uma vez que o método daconsidera um perfil de perdas por atrito linear e o Prestress, um perfil exponencial. O fato do $X$ obtido pelo Prestress ser maior que o obtido a mão também é explicado por este fato. A área entre $P(0)$ e $P(x)$ obtida por um perfil exponencial é menor que a de um perfil linear, logo o perfil exponencial tem que chegar a um $X$ maior para obter a mesma área. A proximidade dos valores de $X$ (erro de 3\%), no entanto, demonstra que o valor obtido pelo Prestress é razoável. As perdas obtidas também são bem próximas, com um erro médio da ordem de 0,8\%.

Agora o programa inicia o cálculo das perdas progressivas, incluindo a deformação elástica do concreto. Estas perdas são calculadas por fases. A fim de resumir este item, as perdas do cabo C2 entre as fases 1 e 2 por cada parcela serão apresentadas na. Para as demais fases serão apresentadas somente os resultados finais, considerando todas as perdas, na . Os resultados para o cabo C2 nas seções extremas e no meio do vão serão comparados a outros obtidos pelo método tradicional.

As perdas por deformação elástica serão comparadas apenas para a primeira fase. Nesta fase os cabos C2 e C3 são protendidos, nesta ordem. Isto significa que o cabo C2 sofre perdas devido à protensão do cabo C3, enquanto que este não sofre perdas devido à sua própria protensão. No momento da protensão destes cabos, no entanto, a viga saca da forma e ativa seu peso-próprio. Desta forma, ambos os cabos sofrem ``perdas'' nesta fase. No caso do cabo C3, no entanto, como este sofrerá apenas a ação do peso-próprio, o resultado será de fato um acréscimo de tensão e não uma perda.

Para o cálculo do efeito da protensão do cabo C3 no C2, o programa gera uma carga equivalente provisória e o Robot resolve o modelo para este carregamento. Com a soma dos esforços obtidos para este carregamento e o peso-próprio das vigas, é então apenas uma questão de calcular as perdas. Adotando as propriedades da seção  definida no Robot  e os esforços obtidos no mesmo, temos
\end{document}

EDIT: See below the real case.

Here's the original output, without \FloatBarrier. Notice how the table was printed before the last input window (in the code, the table is defined after the figure). This is what I want to avoid.

enter image description here

And here's the output with \FloatBarrier. The table is now printed correctly after the last input window. However, notice how the text on page 2 is cut short. Right after that paragraph the input window was defined, followed by the \FloatBarrier, which is apparently acting like a \clearpage and creating a new page before continuing the text.

enter image description here

14
  • 1
    So you don't want figures to overtake tables and vice versa? Do you need the floating behaviour at all? – Johannes_B Jan 19 '15 at 19:38
  • Possible solution: Label and caption without float – Mike Renfro Jan 19 '15 at 19:51
  • 1
    This isn't my field of expertise, so i won't write up an answer (i can't even test before buuilding a testcase). I would simply \def\ftype@table{1} (don forget \makeateltter and \makeatother. If both have the same time, they will come in the order specified in your code. – Johannes_B Jan 19 '15 at 20:51
  • 1
    In answer to your question about floatbarrier it doesn't "act like" \clearpage it is \clearpage that is its definition, \floatbarrier = "if there are no pending floats do nothing, otherwise do \clearpage " – David Carlisle Jan 19 '15 at 22:50
  • 1
    Yes. As David already mentioned, an alternative is to define all the floats you want in order as figure rather than using figure for one and table for others. Note that when you say \usepackage{somestrangething}, you are likely initiating much more serious low-level surgery than the command suggested here. The only difference is that you don't see the code you trigger. Some of it is excellent, of course. But some of it is pretty nasty. (I don't mean malicious: it won't wipe your document, even if that was possible. But it is not very robust or cautious.) – cfr Jan 20 '15 at 3:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.