是否有一个包可以截断超出固定宽度和高度的文本?

是否有一个包可以截断超出固定宽度和高度的文本?

我正在尝试混合使用 LaTeX 和 Python 来生成小型参考卡,并通过互联网获取数据。

我遇到的问题是,有时获取的文本对于卡片来说太长,并且自然会溢出到新页面中。

我基本上是在寻找与这个包功能完全相同的东西truncate但我也可以指定高度框,因此它允许文本在该点之前换行,然后才实际截断文本。

这可以在 LaTeX 中执行吗,或者我最好从 Python 方面截断文本?

谢谢你的建议。

答案1

除此之外,clipbox您还可以使用 TikZ 进行剪辑。在下面的示例中,剪辑区域首先定义为 10 x 2 的矩形,文本位于该矩形内,导致文本被垂直截断。

(0,0)请注意,TikZ 使用左下角的x,y 坐标(如在数学函数图中一样),因此左上角(应放置文本的位置)为(0,max),如下例(0,2)所示。此外,在示例中,锚点指定为north west,这意味着节点的左上角将绘制在提供的坐标处(而不是默认的节点中心)。

如果您不想要该框架,您应该draw从中删除该选项\clip

梅威瑟:

\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\begin{document}

\begin{tikzpicture}
\clip[draw] (0,0) rectangle (10,2);
\node [align=justify, text width=9.5cm, anchor=north west] (text) at (0,2) {\lipsum[3]};
\end{tikzpicture}

\end{document}

结果:

enter image description here

答案2

由于我不了解该软件包,因此不太清楚您使用“truncate”的意图。但使用\clipbox,您也许能够实现您的目标。

\documentclass{article}
\usepackage{trimclip,lipsum}
\begin{document}
\textsf{original text in 10cm wide parbox}\smallskip

\parbox{10cm}{\lipsum[3]}

\bigskip
\textsf{Version of above box clipped to  8cm x 3cm:}\smallskip

\setbox0=\hbox{\parbox[b]{10cm}{\lipsum[3]}}
\clipbox{0pt \dimexpr\ht0-3cm\relax{} 2cm 0pt}{\copy0}

\bigskip
\textsf{First 10 wrapped lines of original box in a 5cm wide box:}\smallskip

\setbox0=\hbox{\parbox[t]{5cm}{\lipsum[3]}}
\clipbox{0pt \dimexpr\dp0-9\baselineskip\relax{} 0in 0pt}{\copy0}
\end{document}

enter image description here

相关内容