[Tex/LaTex] Setting position of figure, captions using sidecap

captionssidecap

I have a poster with 2 sidecaped graphics: one in the lower-left corner (LLC) and another in the lower-right (LRC). Problems include

  • both have their captions on the left. I'd prefer the LLC graphic to have its caption on the right, for symmetry.

  • how to force both to the bottom of the layout? I know how to do that with package=figure, but not package=sidecap.

details:

I have a git repo for my first poster (and first LaTeX project) from which I generated the PDF linked above: git clone git@bitbucket.org:tlroche/cmas-2012-poster.git. It's pretty simple/crude and has a number of defects, about which I'd appreciate advice for improvement. One area of interest is the graphics in the LLC and LRC of the current layout (Figures 1 and 4). I'm using package sidecap to put their captions to the side of (rather than above or below) the figure. I'd like to know how to do the following with sidecap, or alternate package that provides the desired functionality:

  1. how to set caption position per figure (not per document)? For symmetry I'd like to have the LLC graphic to have its caption on the right, and the LRC graphic to have its caption on the left.

  2. how to force those figures to the bottom of the layout? I believe I can do that with \begin{figure}[b] but that won't provide side captions, and I don't know how to force to bottom with sidecap.

Best Answer

  1. I would suggest you to use the more powerful and flexible floatrow package instead; it allows you to easily customize the caption position per figure; a little example using the a0poster document class and some of the settings of your document.

    The example shows three three figures; the leftmost one has its caption to the right; the middle one has the caption below the figure, and the rightmost figure has the caption to the left; of course, you can change the lengths used according to your needs:

    \documentclass{a0poster}
    \usepackage[demo]{graphicx}
    \usepackage[capbesideposition={bottom},facing=yes,capbesidesep=quad]{floatrow}
    \usepackage{lipsum}% just to generate text for the example
    \usepackage{textpos}
    
    \TPGrid[10mm,10mm]{122}{100}     % e.g., 3 cols width=40, plus 2 gaps width=1
    \parindent=0pt
    \parskip=0.5\baselineskip
    \setlength\fboxsep{0pt}
    \setlength\fboxrule{0.5pt}
    
    \begin{document}
    
    \begin{textblock}{40}(0,8.2)
    \lipsum[3-11]
    \begin{figure}
    \thisfloatsetup{capbesideposition={bottom,outside},capbesidewidth=15cm}
    \fcapside[\FBwidth]
      {\caption{some text here to represent the caption for figure one}\label{fig:testa}}
      {\includegraphics[width=10cm,height=6cm]{image1}}
    \end{figure}
    \end{textblock}
    
    \begin{textblock}{40}(41,8.2)
    \lipsum[3-11]
    \begin{figure}
    \floatbox{figure}[3\FBwidth]
      {\caption{some text here to represent the caption for figure two}\label{fig:testb}}
      {\includegraphics[width=10cm,height=6cm]{image3}}
    \end{figure}
    \end{textblock}
    
    \begin{textblock}{40}(82,8.2)
    \lipsum[3-11]
    \begin{figure}
    \thisfloatsetup{capbesideposition={bottom,inside},capbesidewidth=15cm}
    \fcapside[\FBwidth]
      {\caption{some text here to represent the caption for figure three}\label{fig:testc}}
      {\includegraphics[width=10cm,height=6cm]{image3}}
    \end{figure}
    \end{textblock}
    
    \end{document}
    

enter image description here

The demo option for graphicx simply replaces actual figures with black rectangles; do not use that option in your actual document.

  1. Since you are using the textblock environment, the floating mechanism is disabled so the usual placement specifiers (e.g., [!b] or [!hb]) won't have effect here; as far as I know, you'll have to adjust the vertical positioning manually.