切换锻炼方式的命令

切换锻炼方式的命令

我正在尝试创建一个命令,允许我(或用户)在两种不同的排版问题样式之间切换。一个是页边距中的运行,而另一个由subsection

  • 有没有一种简单的方法可以使两种风格获得一致的间距?
  • 具体来说,我希望 runin 样式从同一行开始,无论下面是否有空行。另外,如果\problem无论哪种样式,前面的空格都相同,那就太好了。

从图中可以看出,第二个问题的换行符太多。

在此处输入图片描述

有没有办法

\Problem
\lipsum[66]

\Problem

\lipsum[66]

产生相同的输出?

  • 虽然这并不是真正的问题,但在枚举环境中,相同的输出会很棒。但是,我无法\subsection使用 来模拟外观\item

代码

\documentclass{article}
\usepackage{lipsum}
\usepackage{enumitem}
\usepackage{etoolbox}

\newtoggle{inline} \settoggle{inline}{true}

\newcounter{problem}
\newcommand{\Problem}{%
    \stepcounter{problem}%
    \iftoggle{inline}{%
        \bigskip

        \noindent\makebox[0pt][r]{\protect\fbox{\theproblem}\qquad}%
        %\vspace{-\baselineskip}
        }{%
        \subsection*{Problem~\theproblem}%
    }%
}

\setlength\parindent{0pt}

\begin{document}

\Problem
\lipsum[66]

\Problem

\lipsum[66]

\settoggle{inline}{false}

\Problem

\lipsum[66]

\Problem
\lipsum[66]

\end{document}

答案1

两个s 的作用与一个(空白行)\par相同。\par

\documentclass{article}
\usepackage{lipsum}
\usepackage{enumitem}
\usepackage{etoolbox}

\newtoggle{inline} \settoggle{inline}{true}

\newcounter{problem}
\newcommand{\Problem}{%
    \stepcounter{problem}%
    \iftoggle{inline}{%
        \bigskip\par
        \noindent\makebox[0pt][r]{\protect\fbox{\theproblem}\qquad}%
        \par\vskip-\baselineskip\vskip-\parskip
        }{%
        \subsection*{Problem~\theproblem}%
    }%
}

\setlength\parindent{0pt}

\begin{document}

\Problem
\lipsum[66]

\Problem

\lipsum[66]

\settoggle{inline}{false}

\Problem

\lipsum[66]

\Problem
\lipsum[66]

\end{document}

相关内容