Я создаю ряд стандартных рабочих процедур в LaTeX, которые требуют инициал рядом с каждым элементом списка, чтобы сказать, что он завершен. Есть ли способ автоматически добавлять выровненную по правому краю начальную строку справа от текста или во втором столбце для каждого элемента?
\documentclass{report}
\begin{document}
Please initial each line item of the procedure.
\begin{itemize}
\item First item needing an initial line next to it..
\item Second item needing an initial line next to it.
\item Another lines with initial.
\end{itemize}
\begin{enumerate}
\item Some text
\item Some more text
\item blah, blah.
\end{enumerate}
\end{document}
решение1
Строка на полях:
\documentclass{article}
\usepackage[heightadjust]{marginnote}
\usepackage{lipsum}
\let\Item\item
\renewcommand\item{\marginnote{\hrulefill}[1.6\baselineskip]\Item}
\begin{document}
Please initial each line item of the procedure.
\begin{itemize}
\item First item needing an initial line next to it.
\item \sloppy\lipsum[2]
\item Another lines with initial.
\end{itemize}
\begin{enumerate}
\item Some text
\item Some more text
\item blah, blah.
\end{enumerate}
\end{document}
решение2
Ниже указано initialitemize
, что вставляет обычную \item
плюс подчеркивание (из 3em
, на базовой линии) в правом поле (на первой строке каждого \item
). Расстояние между инициалом и полем составляет ~
, но его можно изменить по мере необходимости.
\documentclass{article}
\usepackage{lipsum}
\newenvironment{initialitemize}
{\begin{itemize}
\let\olditem\item
\renewcommand{\item}{%
\olditem\leavevmode
\makebox[0pt][l]{\makebox[\linewidth][r]{\makebox[0pt][l]{~\rule{3em}{.4pt}}}}%
\ignorespaces}}
{\end{itemize}}
\begin{document}
Please initial each line item of the procedure.
\begin{initialitemize}
\item First item needing an initial line next to it.
\item \sloppy\lipsum[2]
\item Another lines with initial.
\end{initialitemize}
\begin{enumerate}
\item Some text
\item Some more text
\item blah, blah.
\end{enumerate}
\end{document}
Для версии можно сделать копию enumerate
.