我正在尝试混合使用 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}
结果:
答案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}