문제가 많은 그림에 문제가 있습니다. 일부 그림은 “날아 다니는”경향이 있습니다. 즉, 해당 단락 앞에 배치했지만 아래 단락이됩니다. 저는 코드를 사용합니다 :
\begin{figure}[ht] \begin{center} \advance\leftskip-3cm \advance\rightskip-3cm \includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8} \caption{} \label{visina8} \end{center}\end{figure}
내 수치를 배치합니다. 얼마나 많은 공백이 남아 있든 관계없이 특정 위치에 그림을 정말로 원한다고 라텍스에게 어떻게 알릴 수 있습니까?
댓글
답변
짧은 대답 : “ float “패키지를 사용한 다음 옵션.
\usepackage{float} ... \begin{figure}[H] \centering \includegraphics{slike/visina8} \caption{Write some caption here}\label{visina8} \end{figure}
더 긴 답변 : Figure의 기본 동작은 플로팅입니다. 따라서 LaTeX는 문서에서 도형을 배열하고 더보기 좋게 만드는 가장 좋은 방법을 찾을 수 있습니다. 보시면 책이 자주 조판되는 방식입니다. 따라서 일반적으로 가장 좋은 방법은 LaTeX가 작업을 수행하도록하고 특정 위치에 그림을 강제로 배치하지 않도록하는 것입니다. 이는 또한 ” , 특정 위치를 설정하기 위해 Figure를 요구하고 대신 LaTeX의 상호 참조를 활용하여“in Figure~\ref{..}
“를 사용합니다.
어떤 이유로 정말 특정 도형을 LaTeX가 원하는 위치가 아닌 여기에 배치하려면 [H]
“ float “패키지의 옵션은 기본적으로 부동 그림을 일반 비 부동으로 변환합니다.
또한 Figure에 caption
를 추가하고 싶지 않다면 figure
환경을 전혀 사용할 필요가 없습니다! 문서의 어느 곳에서나 \includegraphics
명령을 사용하여 이미지를 삽입 할 수 있습니다.
댓글
- 감사합니다. 이것을 주목 해 주셔서! 저는 ' 변경 사항을 인식하지 못했습니다.
H
는 ' 패키지 없이는 작동하지 않는 것 같지만float
로드 작업을 수행합니다.float
의H
가!h
와 동일합니까? - 아니요 , [! h]는 어쨌든 대부분의 문서 클래스에서 [! ht]로 변경됩니다. 그리고 h의 의미는 단지 가능하다면 여기에 있지만 절대적으로 여기에는 아니요 입니다. ! LaTeX는 유동 환경을 참조하는 모든 카운터와 길이를 최소화 할 수 있습니다.
- 감사합니다. 보통 라텍스를 원하는 곳에 두지 만 가끔은 내가 원하는 곳에 필요 합니다.
- 인쇄 할 의도가없는 문서의 경우 시도하고 저장할 이유가 없습니다. 종이, 너무 넓은 공백 영역은 문제가되지 않습니다. ' 따라서 ' 그림이 다른 곳에서 떠 다니는 것보다 가장 논리적 인 지점에서 텍스트를 나누는 것이 훨씬 낫습니다. 이러한 어색한 관습은 라틴어처럼 진행될 것입니다.
- 나는 ' 일반적인 관심이 스타일 적으로 최상의 것을 찾으려는 것이 아니라 공간을 절약하는 것이라고 생각하지 않습니다. 그림, 표 등을 놓을 위치를 배치합니다.
답변
하지 않습니다 부동 환경을 원하지 않으면 부동 환경을 사용하십시오.
\usepackage{caption} ... \noindent% \begin{minipage}{\linewidth}% to keep image and caption on one page \makebox[\linewidth]{% to center the image \includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8}} \captionof{figure}{...}\label{visina8}% only if needed \end{minipage}
또는
\begin{center} \includegraphics[...]{slike/visina8}} \captionof{figure}{...}\label{visina8}% only if needed \end{center}
댓글
- 안녕하세요 @Herbert-이 답변에 감사드립니다! 나는
\begin{figure}
가 플로팅 환경이라는 것을 결코 이해하지 못했습니다. 반면\begin{minipage}
는 아닙니다 ! 텍스트가있는 페이지 하단에 이미지를 포함하는 데 문제가 있었지만[H]
도 도움이되지 않았습니다. 만이! 방금minipage
를figure
–로 바꾸고captionof
를caption
-그리고 드디어 내가 원하는 것을 얻었습니다! 다시 한 번 감사드립니다. 건배! -
\makebox
를 사용하는 이유는 무엇입니까? 그것 없이는 똑같이 보이지 않나요? - @Tobi : 이미지가
\textwidth
보다 크지 않으면 예, 그렇지 않으면 아닙니다!\makebox
는 너비와 상관없이 이미지를 중앙에 배치합니다. - 이것은 매우 유용했습니다. IMHO 현재 허용되는 답변보다 예상대로 작동하므로 허용되는 답변이어야합니다.
답변
방금 분류 한 다른 답변에서 언급되지 않은 한 가지 해결책은 \clearpage
특별한 패키지가 필요하지 않습니다.
\clearpage
는 텍스트를 계속하기 전에 .tex
파일에서 그 위에있는 모든 그림이 인쇄되도록합니다. 이로 인해 큰 공백이 남을 수 있습니다.
제게는 서식을 변경할 필요가 없었고 모든 그림이 다음 텍스트 이전에 인쇄되도록했기 때문에 이것이 최선의 해결책이었습니다. 내 문제는 그림이 많고 텍스트가 많지 않은 문서의 일부였습니다.
댓글
- 간단하고 효과적인 솔루션, 감사합니다 !!
답변
이제 adjustbox
패키지를 사용하여 키. 캡션과 라벨은 nofloat
앞에 자체 키로 추가 할 수 있습니다. 센터링을 위해 center
키를 사용할 수 있습니다. 수직 공간을 추가하려면 vspace
키를 사용하세요. 이 솔루션에는 adjustbox
의 다른 모든 기능을 사용하여 콘텐츠 (최소 / 최대 크기 조정, 프레임 등)를 수정할 수도 있다는 이점이 있습니다.
그림 콘텐츠가 단일 이미지 인 경우 \adjustbox
에서 동일한 키를 사용하고 한 줄짜리를 얻을 수 있습니다. 원하는 것이 표 형식이면 {adjustbox}
에 대한 tabular
키가 있습니다.
나중에 원하는 경우 실제 부동으로 변경하십시오. nofloat
를 float
로 바꾸고 vspace
키를 제거하십시오. adjustbox
는 table
의 경우 상단에, figure
의 경우 하단에 캡션을 배치합니다. caption
대신 captionbelow
또는 captionabove
키를 사용하여 변경할 수 있습니다. 모든 옵션은 adjustox
설명서를 참조하십시오.
콘텐츠를 포장하지 않으려면 {adjnofloat}{<type>}
div를 제공하는 adjustbox
패키지를 계속 사용할 수 있습니다. > 환경. nofloat
키를 구현하기 위해 내부적으로 사용됩니다. 사용자는이 환경을 재정 의하여 nofloat
동작을 변경하거나 패치하거나 환경은 Herberts 답변 에서와 매우 유사한 코드를 사용합니다.
사용 예 :
\documentclass{article} \usepackage{blindtext}% for example text here only \usepackage{adjustbox} \begin{document} \blindtext \begin{adjustbox}{center,caption={some caption},label={somelabel},nofloat=figure,vspace=\bigskipamount} % maybe other stuff \includegraphics[width=\textwidth]{example-image}% example only, could also be \adjustimage % maybe other stuff \end{adjustbox} \blindtext % For simple images, a one liner is enough \adjustimage{width=\textwidth,center,caption={some caption},label={somelabel},nofloat=figure,vspace=\bigskipamount}{example-image} \blindtext \begin{adjustbox}{center,caption={some caption},label={somelabel},nofloat=table,vspace=\bigskipamount} % maybe other stuff \begin{tabular}{lll} some & tabular & is\\ also & possible & with this \\ \end{tabular} % maybe other stuff \end{adjustbox} \blindtext % For just a tabular: \begin{adjustbox}{tabular=lll,center,caption={some caption},label={somelabel},nofloat=table,vspace=\bigskipamount} some & tabular & is\\ also & possible & with this \\ \end{adjustbox} \blindtext \end{document}
결과의 일부 :
답변
더 많이 사용하려면 [ht!]
사용 텍스트가 그림을 따르도록하려면 이전에 시작하는 대신 서문에 \usepackage{parskip}
를 사용하고 해당 텍스트 앞에 공백을 두십시오.
\vspace{}
또는 텍스트와 그림 사이의 공간을 조작하여보다 균형 잡힌 모습을 제공하기 위해 그림 환경 앞에. \subfigure
를 사용하는 더 복잡한 다중 그림 환경에서도 이런 식으로 문제가 없습니다.
center
환경이지만 Figure의 경우\centering
명령입니다. 그림과 표에 중앙 또는 중앙을 사용해야합니까?\FloatBarrier
그림과 단락 사이에 있습니다. 명령 전에 정의 된 모든 그림이 텍스트의 해당 지점 이전에 렌더링되도록합니다. 명령을 사용하려면 서문에\usepackage{placeins}
를 추가해야합니다. 때때로이 기능이 매우 유용하다고 생각합니다.