Выравнивание заполненных полей для ФИО и подписи с подстрочным текстом
Оформляю титульный лист к дипломной работе. Там присутствуют графы с подписями и ФИО. Проблема стала в их выравнивании относительно друг друга.
Минимальный код:
\documentclass[fontsize=14bp,a4paper]{scrreprt}
% Подключение пакетов
\usepackage[utf8]{inputenc} % Кодировка исходного текста
\usepackage{polyglossia} %для русского языка
\usepackage[T2A]{fontenc} %внутренняя кодировка
\usepackage[left=25mm, right=15mm, top=20mm, bottom=20mm, footskip=10mm]{geometry} %задаёт поля документа
\usepackage{amsmath} %пакет мат. формул
\usepackage[normalem]{ulem} %пакет для подчёркиваний
% Установка параметров для документа
\setdefaultlanguage[forceheadingpunctuation=false]{russian} %% устанавливает главный язык документа, опция - убирает последнюю точку в нумерации заголовков
\setotherlanguage{english} %% объявляет второй язык документа
\setmainfont{Liberation Serif}
\begin{document}
\noindent Обучающийся \hfill $\underset{\text{подпись}}{\underline{\hspace{3cm}}}$ \hfill $\underset{\text{инициалы и фамилия}}{\uline{\text{А.Б. Славный}}}$
\noindent Руководитель \hfill $\underset{\text{подпись}}{\underline{\hspace{3cm}}}$ \hfill $\underset{\text{инициалы и фамилия}}{\uline{\text{В.Г. Достопочтенный}}}$
\noindent Ответственный \\ за нормоконтроль \hfill $\underset{\text{подпись}}{\underline{\hspace{3cm}}}$ \hfill $\underset{\text{инициалы и фамилия}}{\uline{\text{Д.Е. Уважаемый}}}$
\end{document}
Как видно - подписи и ФИО расположены не очень ровно. Пробовал оформить через tabular - всё равно остаётся проблема с ФИО из-за разных длин строк + выравнивание таблицы по ширине страницы - та ещё задача.
Хочу добиться вот такого результата, но не знаю, как (тут нет полей с подписями, но в моём случае их надо сделать):
Дистрибутив: TeXLive
Компилятор: XeLaTeX
Ответы (1 шт):
Я сделал как пример два возможных варианта: через таблицу (необходим пакет tabularx) и с помощью TikZ (для этого варианта необходим пакет tikz). Лично мне через Tikz больше нравится, так как с его помощью можно сделать макрос. Но если попадется длинная фамилия, то надо будет пересчитывать размеры полей для нее. Этот момент можно было слегка автоматизировать, но во-первых, для трех фамилий это не стоит возни - проще руками подобрать размеры по ситуации, во-вторых, придется добавлять какие-то глобальные длины (чтобы хранить максимальную длину фамилий). В общем, первый вариант с таблицей использует столбец формата X с автоматическим вычислением ширины по размерам других столбцов и ширине всей таблицы и при этом таблицу можно растянуть на заданную ширину (собственно, эти возможности и предоставляет пакет tabularx). И в этом случае, сложнее получить подстрочные надписи (использовал \raisebox и корректировку высоты строки \\[]. Недостаток такого подхода - все слишком громоздко выглядит.
Во втором случае, макрос гораздо проще использовать, но нужно будет корректировать длины отдельных блоков.
Строку \setdefaultlanguage[forceheadingpunctuation=false]{russian} я закомментировал, потому как мой TeXLive ее отказался принимать. Но на результат это влиять не должно. Лишние пакеты из примера тоже удалил.
\documentclass[fontsize=14bp,a4paper]{scrreprt}
% Подключение пакетов
\usepackage[utf8]{inputenc} % Кодировка исходного текста
\usepackage{polyglossia} %для русского языка
\usepackage[T2A]{fontenc} %внутренняя кодировка
\usepackage[left=25mm, right=15mm, top=20mm, bottom=20mm, footskip=10mm]{geometry} %задаёт поля документа
\usepackage{tabularx}
\usepackage{tikz}
% Установка параметров для документа
%\setdefaultlanguage[forceheadingpunctuation=false]{russian} %% устанавливает главный язык документа, опция - убирает последнюю точку в нумерации заголовков
\setdefaultlanguage[indentfirst=true]{russian}
\setotherlanguage{english} %% объявляет второй язык документа
\setmainfont{Liberation Serif}
\newcommand{\podpis}[2]{
\parbox[b]{4cm}{#1}
\hspace{2.5cm}
\tikz[baseline=2pt]{\draw(0,0) to node[below=-2pt]{\scriptsize подпись}(3.5cm,0);}
\hspace{1.5cm}
\tikz[baseline=2pt]{
\def\familywidth{\textwidth-4cm-2.5cm-3.5cm-1.5cm-10pt}
\draw(0,0) to node[below=-2pt]{\scriptsize инициалы и фамилия}(\familywidth,0);
\node[anchor=west](f) at (5pt,7pt){#2};
}
}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{p{3.8cm}p{2cm}p{3cm}p{1.5cm}X}
Обучающийся & & \phantom{подпись} & & А.Б. Славный \\ \cline{3-3}\cline{5-5}
& & \hfil\scriptsize \raisebox{5pt}{подпись}\hfil & & \hfil\scriptsize \raisebox{5pt}{инициалы и фамилия}\hfil \\
Руководитель & & \phantom{подпись} & & В.Г. Достопочтенный \\ \cline{3-3}\cline{5-5}
& & \hfil\scriptsize \raisebox{5pt}{подпись}\hfil & & \hfil\scriptsize \raisebox{5pt}{инициалы и фамилия}\hfil \\[-10pt]
Ответственный\endline за нормоконтроль & & \phantom{подпись} & & Д.Е. Уважаемый \\ \cline{3-3}\cline{5-5}
& & \hfil\scriptsize \raisebox{5pt}{подпись}\hfil & & \hfil\scriptsize \raisebox{5pt}{инициалы и фамилия}\hfil \\
\end{tabularx}
\vskip 2cm
\noindent
\podpis{Обучающийся}{А.Б. Славный}\\
\podpis{Руководитель}{В.Г. Достопочтенный}\\
\podpis{Ответственный\\за нормоконтроль}{Д.Е. Уважаемый}\\
\end{document}



