мини-страницы в fbox смещение по горизонтали при включении рисунка (не float)

мини-страницы в fbox смещение по горизонтали при включении рисунка (не float)

Я пытаюсь разместить текст и рисунок рядом друг с другом и в то же время избежать эффекта «переворачивания» :-)

Размещение двух мини-страниц внутри фрейма работает просто отлично: текст можно выровнять с помощью [t]op

Однако если я помещу на одну мини-страницу рисунок вместо текста, то возникнет смещение.

МВЭ:

\documentclass[a4paper,10pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[danish]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}

% Title Page
\title{Title}
\author{Author}

\begin{document}
\maketitle

\section*{Alignment problems}

\noindent\fbox{
\begin{minipage}[t]{0.7\textwidth}
 A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
\end{minipage}
\begin{minipage}[t]{0.2\textwidth}
 B B B B B B B B B B B B B B B B B
\end{minipage}
}

\vspace{2cm}

\noindent\fbox{
\begin{minipage}[t]{0.7\textwidth}
 A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
\end{minipage}
\begin{minipage}[t]{0.2\textwidth}
 \includegraphics[width=0.9\textwidth]{gull}
\end{minipage}
}
\end{document}

В результате получается что-то вроде этого Вывод из кода TeX выше

решение1

Результат тот, что ожидалось. Возможно, не тот, чтотыхотя и ожидаемо.

Когда вы делаете \parbox[t]или \begin{minipage}[t], точка отсчета ящика совпадает с точкой отсчета первого элемента в нем. Точка отсчета всегда находится на базовой линии, воображаемой линии, на которой обычно размещаются буквы.

Точкой отсчета первого элемента в поле, содержащем изображение чайки, является нижняя часть изображения, в текстовом поле — первая строка, состоящая из букв А (поскольку абзац разделен на блоки шириной в строку).

Поэтому вам нужно заставить TeX думать, что опорная точка изображения чайки находится выше. Пакет adjustboxприходит на помощь: его valignключ позволяет разместить опорную точку так, как будто только строка текста находится выше базовой линии, а все остальное — ниже.

\documentclass[a4paper,10pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[danish]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[export]{adjustbox}

% Title Page
\title{Title}
\author{Author}

\begin{document}
\maketitle

\section*{Alignment problems}

\noindent\fbox{
\begin{minipage}[t]{0.7\textwidth}
 A A A A A A A A A A A A A A A A A A A A A A A A
 A A A A A A A A A A A A A A A A A A A A A A A
\end{minipage}
\begin{minipage}[t]{0.2\textwidth}
 B B B B B B B B B B B B B B B B B
\end{minipage}
}

\vspace{2cm}

\noindent\fbox{
\begin{minipage}[t]{0.7\textwidth}
 A A A A A A A A A A A A A A A A A A A A A A A A
 A A A A A A A A A A A A A A A A A A A A A A A
\end{minipage}
\begin{minipage}[t]{0.2\textwidth}
 \includegraphics[width=0.9\textwidth,valign=t]{../duck}
\end{minipage}
}
\end{document}

введите описание изображения здесь

За неимением чайки я выбрал утку, которая является любимым животным на этом сайте.

В качестве альтернативы можно добавить невидимый элемент в оба поля:

\begin{minipage}[t]{0.7\textwidth}
 \vspace{0pt}
 A A A A A A A A A A A A A A A A A A A A A A A A
 A A A A A A A A A A A A A A A A A A A A A A A
\end{minipage}
\begin{minipage}[t]{0.2\textwidth}
 \vspace{0pt}
 \includegraphics[width=0.9\textwidth]{../duck}
\end{minipage}

Результат будет одинаковым: первый элемент на обеих мини-страницах — это вертикальное пространство.

решение2

Перед \includegraphics применением \vspace{-\baselineskip}. Это сместит нижнюю часть изображения вниз на \baselineskip.

Связанный контент