mdframed 内的 Makebox 间距

mdframed 内的 Makebox 间距

我希望能够将一些文本(例如定理标签)对齐到左边距,然后将示例放在 mdframed 框中。这是我失败的尝试的一个例子。

在此处输入图片描述

如您所见,文本“这是一个测试”被稍微推到了右边。以下是此示例的代码

\documentclass[18pt]{article}

\usepackage{mdframed}
\newcommand{\sdef}{ %
\hspace*{-2in}\makebox[2in]{\hfill \textbf{Definition 1.1.1.1} \hspace*{.35in}}}

\newenvironment{definition} 
{\begin{mdframed}[linewidth=2pt,roundcorner=8pt,align=center]
\vspace*{5px}%
\sdef}
{\vspace*{5px}
\end{mdframed}}

\begin{document}
\begin{definition}
    This is a test \\
    Here is more text.
\end{definition}
\end{document}

我该如何正确对齐第一句话?提前谢谢您。

编辑:我遇到的另一个解决方案是使用 \ignorespaces 宏,因此用这个宏替换 sdef 的定义即可

\newcommand{\sdef}{ %
\hspace*{-2in}\makebox[2in]{\hfill \textbf{Definition 1.1.1.1} \hspace*{.35in}}\ignorespaces}

答案1

这是一个解决方法,在环境的开始处插入一个负的单词间空格:

\documentclass[18pt]{article}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.3pt}
\usepackage{mdframed}
\newcommand{\sdef}{ %
\hspace*{-2in}\makebox[2in]{\hfill \textbf{Definition 1.1.1.1}\hspace*{.35in}}}

\newenvironment{definition}
{\begin{mdframed}[linewidth=2pt,roundcorner=8pt,align=center]%
\vspace*{5px}%
\sdef\hspace*{-\fontdimen2\font}}
{\vspace*{5px}
\end{mdframed}}

\begin{document}

\begin{definition}
This is a test \\
    Here is more text.
\end{definition}
\end{document} 

在此处输入图片描述

相关内容