TransWikia.com

centerline{} command alternative?

TeX - LaTeX Asked by mwoua on September 30, 2021

I am adding figures to a work and most of the figures are too wide and are thus not centered but are shifted to the right. I searched here and found a solution, that would consist in adding the centerline{} command into the figure environment. This work fine for figures added with the command includegraphics{}, like in this example:

begin{figure}[h!]
begin{center}
centerline{includegraphics{SOIR_optics}}
end{center} % is this really useful?
end{figure}

But when I try to add a tikzpicture instead, this solution does not work (see example)

begin{figure}[h!]
begin{center}
centerline{begin{tikzpicture} 
some code 
end{tikzpicture}}
end{center}
end{figure}

My question is : are there alternatives to this centerline{} command?

Thanks!

2 Answers

The centerline command should never be used in a LaTeX document (unless you know precisely what you're doing, and probably only in the preamble for some definition). Use

begin{figure}[htp]
centering

<whatever>

end{figure}

and <whatever> (a graphic, a TikZ picture or anything) will be centered.

Correct answer by egreg on September 30, 2021

You can use adjustbox

documentclass{scrreprt}
usepackage[export]{adjustbox}  %%  export option makes adjustbox --
                                %%  -- goodies available inside includegraphics command
usepackage{graphicx}

begin{document}
Xhrulefill X
begin{figure}[htp]
includegraphics[width=1.1textwidth,center]{example-image-a}
end{figure}
end{document}

enter image description here

This is very useful for figures that are wider than textwidth. Another useful macro will be adjustbox environment with max width option.

documentclass{scrreprt}
usepackage[export]{adjustbox}
usepackage{graphicx}

begin{document}
Xhrulefill X

This is resized to verb|1.1textwidth|
begin{figure}[htp]
begin{adjustbox}{center,max width=1.1textwidth}
includegraphics[width=1.2textwidth,center]{example-image-a}
end{adjustbox}
end{figure}
clearpage
The following is not resized:
begin{figure}[htp]
begin{adjustbox}{center,max width=1.1textwidth}
includegraphics[width=0.7textwidth,center]{example-image-b}
end{adjustbox}
end{figure}

end{document}

enter image description here

enter image description here

The advantage of max width is that the content is resized only if it exceeds the max width otherwise not.

With tikzpicture environment

I assume that your tikz picture are saved as separate files. Then using adjustbox and tikzscale packages:

documentclass{article}

usepackage{graphicx,tikz,tikzscale}
usepackage{adjustbox}
usepackage{filecontents}
begin{filecontents*}{myfig.tikz}
begin{tikzpicture}[inner sep=0pt, outer sep=0pt]
    draw[use as bounding box](-20,-20) rectangle (20,20);
    node at (0,0) (A) {A};
    node[above right] (B) at (A.north east) {B};
    draw (A.south west)--(B.north east);
  end{tikzpicture}
end{filecontents*}

begin{document}
Xhrulefill X

This is resized to verb|1.1textwidth|
begin{figure}[htp]
begin{adjustbox}{max width=1.1textwidth,center}
includegraphics[width=1.2textwidth]{myfig.tikz}
end{adjustbox}
end{figure}
clearpage
The following is not resized:
begin{figure}[htp]
begin{adjustbox}{max width=1.1textwidth,center}
includegraphics[width=0.7textwidth]{myfig.tikz}
end{adjustbox}
end{figure}
end{document}

enter image description here

Answered by user11232 on September 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP