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