![Как выровнять текст с логотипом?](https://rvso.com/image/254707/%D0%9A%D0%B0%D0%BA%20%D0%B2%D1%8B%D1%80%D0%BE%D0%B2%D0%BD%D1%8F%D1%82%D1%8C%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D1%81%20%D0%BB%D0%BE%D0%B3%D0%BE%D1%82%D0%B8%D0%BF%D0%BE%D0%BC%3F.png)
Я пытаюсь выровнять текст по правому краю логотипа, т. е. я хотел бы разместить текст слева от логотипа и выровнять этот текст по вертикали относительно логотипа.
Я прикрепил 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}
Обратите внимание на символ %
в конце первой буквы minipage
s, чтобы избежать лишних пробелов, которые в противном случае были бы вставлены.
решение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
заменяет реальные фигуры черными прямоугольниками;нетиспользуйте эту опцию в вашем реальном документе.