这是我的 MWE:
\documentclass[]{article}
\usepackage{showframe}
\usepackage{lipsum}
\usepackage{parskip}
\begin{document}
\lipsum[1]
\fbox{
\begin{minipage}{\textwidth}
\lipsum[1]
\end{minipage}
}
\end{document}
为什么仍然有一个小的缩进,并且为什么框架minipage
比整体框架更宽?
答案1
您的代码中有一些虚假空格\fbox
,导致开头和结尾的间距问题(请参阅%
行尾的百分号 ( ) 有什么用?(为什么我的宏会产生额外的空间?))。此外,文本块的宽度应减少\fbox
规则的宽度(\fboxrule
)和框间隙(\fboxsep
)两次(每侧一次)。
\documentclass{article}
\usepackage{showframe}
\usepackage{lipsum}
\usepackage{parskip}
\begin{document}
\lipsum[1]
% Note the use of '%' here...
\fbox{%
\begin{minipage}{\dimexpr\linewidth-2\fboxsep-2\fboxrule}
\lipsum[1]
\end{minipage}%
}
\end{document}
答案2
您需要考虑\fboxsep
和\fboxrule
参数。这是一个fminipage
与共享所有语法minipage
并自行进行计算的新环境。
\documentclass[]{article}
\usepackage{parskip}
\usepackage{lipsum}
\ExplSyntaxOn
% a handy function
\cs_set_eq:NN \dimeval \dim_eval:n
\ExplSyntaxOff
\newsavebox{\fminipagebox}
\NewDocumentEnvironment{fminipage}{O{c}oO{#1}m}
{%
\begin{lrbox}{\fminipagebox}
\IfNoValueTF{#2}
{\begin{minipage}[#1]{\dimeval{#4-2\fboxsep-2\fboxrule}}}
{\begin{minipage}[#1][#2][#3]{\dimeval{#4-2\fboxsep-2\fboxrule}}}
}
{%
\end{minipage}
\end{lrbox}\fbox{\usebox{\fminipagebox}}%
}
\begin{document}
\lipsum[1][1-4]
\begin{fminipage}{\textwidth}
\lipsum[1][5-7]
\end{fminipage}
\begin{center}
x\begin{fminipage}[t][4cm][s]{4cm}
\lipsum[2][1]
\vfill
\lipsum[2][2]
\end{fminipage}
\end{center}
\end{document}