盒子自動換行

盒子自動換行

我想使用循環和保存箱來自動化 LaTeX 中的一些操作,但是當沒有空間時,這些框不想自動轉到下一行(保存箱是必要的)。下面的程式碼是我想要實現的一個簡單範例(盒子不是透過循環創建的,但我這樣做是為了簡單演示)。 X 將是一些文本

\usepackage{xsavebox}
\usepackage{pgffor}
\foreach \n in {3,...,11}{\xsbox{R.1.\n}{\textbf{R.1.\n}~X\hspace{2em}}}
...
\foreach \n in {3,...,11}{\xusebox{R.1.\n}}

這段程式碼的結果是這樣的: 在此輸入影像描述

答案1

您需要使用\globalbefore \setbox,因為\foreachfrom pgf 會執行群組中的每個循環步驟。離開群組後,本地設定將被忘記。並且您要使用\penalty0以便允許斷點,因為每個\xsboxexectes\leavevmode在放置框之前,所以您處於水平模式。

\foreach \n in {3,...,11}
    {\global\setbox\n=\hbox{\textbf{R.1.\n}~X\hskip2em}%
     \leavevmode\copy\n\hfil\penalty0 }
...
\foreach \n in {3,...,11}{\leavevmode\box\n\hfil\penalty0 }

相關內容