我希望能够将一些文本(例如定理标签)对齐到左边距,然后将示例放在 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}