
Theполная ширинапакет (текущая версия 0.1) отМарко Даниэль "обеспечивает окружающую средуfullwidth
, позволяющую очень просто устанавливать левые и правые поля»(руководство, стр. 1). Согласно руководству, пакет основан на алгоритмеmdframedпакет (текущая версия 1.0) того же автора.
Однако попытка изменить поля отдельных абзацев с помощью fulllwidth
не даёт желаемых результатов. Установка leftmargin
параметра на положительное значение сдвинет весь абзац вправо (в правое поле страницы), а установка rightmargin
на положительное значение вообще не даст никакого эффекта. (Пакет mdframed
, с другой стороны, изменяет соответствующие поля, как и ожидалось [и добавляет рамку вокруг абзаца].) fullwidth
Поведение s не может быть правильным, не так ли?
\documentclass{article}
\usepackage[linewidth=1.2pt]{mdframed}
\usepackage{fullwidth}
\newcommand*{\sometext}{Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu
libero, nonummy eget, consectetuer id, vulputate a, magna. Donec
vehicula augue eu neque.}
\begin{document}
\section{\texttt{mdframed} works as expected}
\sometext
\begin{mdframed}[leftmargin=3em]
\sometext
\end{mdframed}
\begin{mdframed}[rightmargin=3em]
\sometext
\end{mdframed}
\section{But \texttt{fullwidth} doesn't}
\sometext
\begin{fullwidth}[leftmargin=3em]
\sometext
\end{fullwidth}
\begin{fullwidth}[rightmargin=3em]
\sometext
\end{fullwidth}
\end{document}
решение1
@lockstep: Как вы думаете, следующее поведение более эффективно?
\documentclass{article}
\usepackage{showframe}
\usepackage[linewidth=1.2pt]{mdframed}
\usepackage{fullwidth}
\newcommand*{\sometext}{Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu
libero, nonummy eget, consectetuer id, vulputate a, magna. Donec
vehicula augue eu neque.}
\makeatletter
\def\fullwidth@i[#1]{% default-Umgebung
\begingroup
\fullwidthsetup{#1}%%
\fwd@twoside@checklength%
\ifbool{fwd@twosidemode}%
{\advance\fwd@width@length by -\fwd@outermargin@length
\advance\fwd@width@length by -\fwd@outermargin@length}%
{\advance\fwd@width@length by -\fwd@leftmargin@length
\advance\fwd@width@length by -\fwd@rightmargin@length}%
\let\width\z@%
\let\height\z@%
\setlength{\topsep}{\fwd@skipabove@length}%
\begingroup%
\let\partopsep\z@%
\expandafter\endgroup%
\begin{fwd@trivlist}\item\relax%
\hsize=\fwd@width@length\relax%
\fwd@footnoteinput%
\begin{fwd@lrbox}{\@tempboxa}%
}
\makeatother
\begin{document}
\section{\texttt{mdframed} works as expected}
\sometext
\begin{mdframed}[leftmargin=3em]
\sometext
\end{mdframed}
\begin{mdframed}[rightmargin=3em]
\sometext
\end{mdframed}
\section{But \texttt{fullwidth} doesn't}
\sometext
\begin{fullwidth}[leftmargin=3em]
\sometext
\end{fullwidth}
\begin{fullwidth}[rightmargin=3em]
\sometext
\end{fullwidth}
\null\hfill\smash{\rule[1.5cm]{3em}{2pt}}
\end{document}