有没有办法在不接受换行符的命令中使用换行符?例如,
\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}}