您知道如何强制 mdframed 更紧密地框住文本吗?看起来,它只是框住整行。但我的目标是只框住文本,这样完成的框将根据文本具有不同的宽度。如果您看一下图片,您就会明白我的意思。非常感谢您的帮助!
\mdfdefinestyle{MyFrame}{%
linecolor=black,
outerlinewidth=2pt,
%roundcorner=20pt,
innertopmargin=4pt,
innerbottommargin=4pt,
innerrightmargin=4pt,
innerleftmargin=4pt,
leftmargin = 4pt,
rightmargin = 4pt
%backgroundcolor=gray!50!white}
}
% text
\begin{mdframed}[style=MyFrame,nobreak=true]
\begin{center}
\textbf{THIS TEXT SHOULD BE MORE TIGHTLY FRAMED }
\end{center}
\end{mdframed}
% sipka
\begin{figure}[h!]
\centering
\includegraphics[width=.1\textwidth]{sipka3.pdf}
\end{figure}
% arrow
\begin{mdframed}[style=MyFrame,nobreak=true]
\lipsum[2]
\end{mdframed}
% sipka
\begin{figure}[h!]
\centering
\includegraphics[width=.1\textwidth]{sipka3.pdf}
\end{figure}
% arrow
\begin{mdframed}[style=MyFrame,nobreak=true]
\lipsum[1]
\end{mdframed}
答案1
您可以使用mdframed
选项align=center,userdefinedwidth=...
。
\documentclass{article}
\usepackage{mdframed,lipsum}
\begin{document}
\mdfdefinestyle{MyFrame}{%
linecolor=black,
outerlinewidth=2pt,
%roundcorner=20pt,
innertopmargin=4pt,
innerbottommargin=4pt,
innerrightmargin=4pt,
innerleftmargin=4pt,
leftmargin = 4pt,
rightmargin = 4pt
%backgroundcolor=gray!50!white}
}
% text
\lipsum[1]
\begin{mdframed}[style=MyFrame,nobreak=true,align=center,userdefinedwidth=30em]
\textbf{THIS TEXT SHOULD BE MORE TIGHTLY FRAMED}
\end{mdframed}
\lipsum[2]
\end{document}
答案2
为了改进 gernot 的答案,您可以使用calc
包自动计算出所需的宽度,即
\documentclass{article}
\usepackage{mdframed,lipsum,calc}
\begin{document}
\mdfdefinestyle{MyFrame}{%
linecolor=black,
outerlinewidth=2pt,
%roundcorner=20pt,
innertopmargin=4pt,
innerbottommargin=4pt,
innerrightmargin=4pt,
innerleftmargin=4pt,
leftmargin = 4pt,
rightmargin = 4pt
%backgroundcolor=gray!50!white}
}
\newcommand\header[1]{
\newlength{\headerwidth}
\setlength{\headerwidth}{\widthof{#1}}
\addtolength{\headerwidth}{8pt}
\begin{mdframed}[style=MyFrame,nobreak=true,align=center,userdefinedwidth=\headerwidth]
#1
\end{mdframed}
}
% text
\lipsum[1]
\header{\textbf{THIS TEXT SHOULD BE MORE TIGHTLY FRAMED}}
\lipsum[2]
\end{document}
我将环境放在一个新命令中,因为我需要两次使用它的内容。我8pt
手动添加,因为我不确定如何从样式中提取innerleftmargin
和innerrightmargin
。尝试使用不同的文本字符串,它似乎无法正确处理边距;我不知道为什么。在我自己的代码中,我只是在文本中添加了一个额外的内容\qquad
来考虑边距。