Lorem 行命令

Lorem 行命令

我有这个命令\loremlines{n},它可以生成多行n的lipsum文本。但是,它与 配合使用效果不佳\lettrine(如下所示)。我还希望能够在其他环境中使用该命令,因此想要一个更“通用”的命令\loremlines,可以在很多情况下使用,而不仅仅是lettrine

梅威瑟:

\documentclass{article}

\usepackage{lettrine}
\usepackage{lipsum,multicol}

% This is from a .sty file:
\RequirePackage{parskip}

\newbox\one
\newbox\two
\long\def\loremlines#1{%
    \setbox\one=\vbox {%
      \lipsum%
     }
   \setbox\two=\vsplit\one to #1\baselineskip
   \unvbox\two}

\begin{document}

\lettrine{1}{} \textbf{Step 1} \loremlines{3}

\section{\loremlines{1}}

\begin{center}
\begin{tabular}{|p{0.47\textwidth}|p{0.47\textwidth}|}
    \hline
    {\loremlines{2} } & {\loremlines{3} } \\
    \hline
\end{tabular}
\end{center}

\loremlines{2}

\end{document}

结果

在此处输入图片描述

结果没有parskip几乎期望输出):

在此处输入图片描述

我希望文本继续与“步骤 1”在同一行。

n另外,我可以使用打印lipsum 单词的命令。

要明确的是: 我只想要从 lipsum 打印单词的命令,大约是n行长。有没有办法计算 LaTeX 换行符并继续打印单词直到n达到换行符?我希望它遵循当前的格式。如果它在段落中间被调用,它应该继续在该段落内运行,而不是开始新的段落。

答案1

我看不出这与该parskip包裹有任何关联。

您必须将“letrine”设计的段落开头包含在分割框中。我建议设置宏的第二个参数\loremlines来获取段落的开头:

\documentclass{article}
\usepackage{lettrine}
\usepackage{lipsum,multicol}
% This is from a .sty file:
\RequirePackage{parskip}

\def\afterfi#1#2\fi{\fi#1}
\def\loremlines{\futurelet\next\loremlinesA}
\def\loremlinesA{\ifx\next[\afterfi{\loremlinesB}\else\afterfi{\loremlinesB[]}\fi}

\long\def\loremlinesB[#1]#2{%
    \setbox0=\vbox {%
      \penalty0
      \ifx^#1^\else #1\hfil\break \fi
      \lipsum%
     }
   \setbox2=\vsplit0 to0pt
   \setbox0=\vsplit0 to \numexpr#2\ifx^#1^\else+1\fi\baselineskip
   \unvbox0 
}

\begin{document}

\loremlines [\lettrine{1}{} \textbf{Step 1}] {4} 

\bigskip
\loremlines {4}

\end{document}

答案2

您无法重新排列框起来的段落,因此请反转操作顺序:

在此处输入图片描述

\documentclass{article}

\usepackage{lettrine}
\usepackage{lipsum,multicol}

% This is from a .sty file:
\RequirePackage{parskip}

\newbox\one
\newbox\two
\newcommand\loremlines[3]{%
    \setbox\one=\vbox {%
      \lettrine{#1}{} \textbf{#2} \lipsum%
     }
   \setbox\two=\vsplit\one to #3\baselineskip
   \unvbox\two}

\begin{document}

\loremlines{1}{Step 1}{3}

\end{document}

相关内容