Как выровнять текст с логотипом?

Как выровнять текст с логотипом?

Я пытаюсь выровнять текст по правому краю логотипа, т. е. я хотел бы разместить текст слева от логотипа и выровнять этот текст по вертикали относительно логотипа.

Я прикрепил PDF-файл, чтобы было более понятно, что я пытаюсь сделать.

Я хотел бы разместить текст «Faculty of Science» слева от черного «логотипа» в pdf-файле выше. В этом примере синяя прямоугольная граница находится на расстоянии 1 см от края страницы, а квадратный логотип шириной 2,5 см находится на расстоянии 1,25 мм от синей прямоугольной границы.

Я думаю, что textpos — это решение того, что я пытаюсь сделать, и я придумал код ниже.

\documentclass{article}

% ...

\usepackage[absolute]{textpos}
\setlength{\TPHorizModule}{1mm}
\setlength{\TPVertModule}{\TPHorizModule}
\textblockorigin{0mm}{0mm} % start everything at the top-left corner

\begin{document}

% ...

\begin{textblock}{100}[0,0](120, 23.75)

\large \textit{\textbf{Faculty of Science}}

\end{textblock}

% ...

\end{document}

Однако мне бы хотелось, чтобы что-то работало независимо от того, какой текст я хочу разместить (т. е. самая правая буква последнего слова всегда должна находиться на одном и том же фиксированном расстоянии от логотипа, скажем, в 1 см, и также должна быть вертикально отцентрирована относительно логотипа). Здесь, каждый раз, когда я меняю текст или его стиль, мне приходится возиться с координатами, пока я не получу что-то, что будет выглядеть правильно.

Есть идеи?

решение1

minipageДля этого можно использовать s.

Скриншот

Обратите внимание, что minipageсреда принимает обязательный <width>аргумент и необязательный positionаргумент. Я использовал, [c]чтобы иметь centredв виду ниже.

Я использовал пустую коробку \mbox{}, чтобы \hfillбыло на что опереться.

При необходимости отрегулируйте ширину и не забудьте извлечь demoопцию из graphicxупаковки.

\documentclass{article}
\usepackage[showframe=true]{geometry}
\usepackage[demo]{graphicx}

\begin{document}

\mbox{}\hfill
\begin{minipage}[c]{4cm}
Faculty of science
\end{minipage}%
\hspace{1cm} % your specified distance
\begin{minipage}{4cm}
  \includegraphics[width=\textwidth]{yourimagename}
\end{minipage}

\mbox{}\hfill
\begin{minipage}[c]{4cm}
Faculty of science
Faculty of science
Faculty of science
Faculty of science
Faculty of science
\end{minipage}% 
\hspace{1cm} % your specified distance
\begin{minipage}{4cm}
  \includegraphics[width=\textwidth]{yourimagename}
\end{minipage}
\end{document}

Обратите внимание на символ %в конце первой буквы minipages, чтобы избежать лишних пробелов, которые в противном случае были бы вставлены.

решение2

Другой вариант — использовать coffinfs изxcoffinsупаковка:

\documentclass{article}
\usepackage[margin=1cm,showframe=true]{geometry}
\usepackage[demo]{graphicx}% just for the example
\usepackage{xcoffins}
\usepackage{lipsum}% just to generate some text for the example

\newlength\logosz
\setlength\logosz{2.5cm}
\newlength\logosep
\setlength\logosep{1.25mm}

\begin{document}

% coffins allocation
\NewCoffin \Result
\NewCoffin \Institution
\NewCoffin \Logo

% fill the coffins
\SetHorizontalCoffin \Result{}
\SetVerticalCoffin \Institution{7cm} {\noindent\raggedleft Faculty of Science}
\SetVerticalCoffin \Logo{2.5cm} {\vspace*{\logosep}\noindent\includegraphics[width=\logosz,height=\logosz]{logo}}

% Join the coffins
\JoinCoffins \Result \Logo(\textwidth-\logosz-\logosep,10pt)
\JoinCoffins \Result[\Logo-vc,\Logo-l] \Institution [vc,r](-1cm,0pt)

% Typeset \Result
\noindent\TypesetCoffin \Result

\lipsum[1-4]

\end{document}

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

Добавление большего количества текста к \Institutionгробу по-прежнему сохраняет вертикальное выравнивание и 1cmотделение от \Logoгроба:

\documentclass{article}
\usepackage[margin=1cm,showframe=true]{geometry}
\usepackage[demo]{graphicx}
\usepackage{xcoffins}
\usepackage{lipsum}

\newlength\logosz
\setlength\logosz{2.5cm}
\newlength\logosep
\setlength\logosep{1.25mm}

\begin{document}

% coffins allocation
\NewCoffin \Result
\NewCoffin \Institution
\NewCoffin \Logo

% fill the coffins
\SetHorizontalCoffin \Result{}
\SetVerticalCoffin \Institution{7cm} {\noindent\raggedleft Faculty of Science Faculty of Science Faculty of Science Faculty of Science Faculty of Science Faculty of Science Faculty of Science}
\SetVerticalCoffin \Logo{2.5cm} {\vspace*{\logosep}\noindent\includegraphics[width=\logosz,height=\logosz]{logo}}

% Join the coffins
\JoinCoffins \Result \Logo(\textwidth-\logosz-\logosep,10pt)
\JoinCoffins \Result[\Logo-vc,\Logo-l] \Institution [vc,r](-1cm,0pt)

% Typeset \Result
\noindent\TypesetCoffin \Result

\lipsum[1-4]

\end{document}

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

Параметр demoпросто graphicxзаменяет реальные фигуры черными прямоугольниками;нетиспользуйте эту опцию в вашем реальном документе.

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