命令内的换行符

命令内的换行符

有没有办法在不接受换行符的命令中使用换行符?例如,

\documentclass{article}

\begin{document}

    \mbox{line 1\\line 2}

\end{document}

答案1

一些示例和解决方案:

\documentclass{article}
\usepackage{varwidth}
\usepackage{parskip}
\begin{document}

\texttt{line 1\\line 2}

\emph{line 1\\line 2}

But:

\mbox{line 1\\line 2}

\fbox{line 1\\line2}

Solutions:

\fbox{\parbox{5cm}{line 1\\line 2}} % or environment minipage

% varwidth is like minipage, but truncates the lines if possible:
\fbox{\begin{varwidth}{5cm}line 1\\line 2\end{varwidth}}

\fbox{\begin{tabular}{ll}line 1\\line 2\end{tabular}}

\end{document}

结果

答案2

通过将其放入允许换行的框中。例如\vbox,您也可以使用\vtop框来实现这一点。问题是您需要退出水平模式,其中正常模式仅允许宽度\hbox不超过的单行。\hsize

\documentclass{article}

\begin{document}

        \mbox{\vbox{\noindent line1\\line2}}

 \end{document}

![在此处输入图片描述

但是,正如沃纳指出的那样,\texttt没有必要使用任何东西,因为它确实允许段落。

但是,使用\fbox不允许多个段落的命令(感谢 Heiko Oberdiek 提供以下示例):

\documentclass{article}

\begin{document}

    \fbox{\vbox{\noindent line 1\\line 2}}

\end{document}

在此处输入图片描述

如果使用\vtop盒子,结果也是相同的:

    \fbox{\vtop{\noindent line 1\\line 2}}

在此处输入图片描述

相关内容