在通过脚本生成 TeX 文档的情况下,挑战在于将可变长度的文本很好地放入固定大小的框中。
有一个适合 80% 情况的默认字体大小,但是如果框太满,TeX 引擎* 应该减小该框的字体大小,直到文本适合该框。
这可能吗?
(抱歉没有提供示例代码,但我认为从解释上可以清楚地看出。)
如果在这种情况下 LuaTeX 可以很好地发挥作用,我很乐意研究它。
答案1
再次tcolorbox
回答。首先是宏版本:
\documentclass{article}
\usepackage[fitting]{tcolorbox}
\usepackage{lipsum}
\usepackage{lmodern}
\newtcboxfit{\mybox}[3][]{colback=red!25!olive,
colframe=red!75!olive,fonttitle=\bfseries,
boxsep=1mm,left=0mm,right=0mm,top=0mm,
bottom=0mm,center upper,valign=center,
nobeforeafter,#1,width=#2,height=#3}
\begin{document}
%% \mybox[<optional>]{<width>}{<height>}{<content>}
\mybox{5cm}{3cm}{\lipsum[1]}
\mybox[colback=green!30]{6cm}{4cm}{\lipsum[1]}
\end{document}
现在环境形式:
\documentclass{article}
\usepackage[fitting,skins]{tcolorbox}
\usepackage{lipsum}
\usepackage{lmodern}
\newtcolorbox{fitbox}[3][]{fit,,width=#2,height=#3,boxsep=1pt,valign=center,opacityupper=0.5,
top=0.4\tcbfitdim,bottom=0.4\tcbfitdim,left=0.75\tcbfitdim,right=0.75\tcbfitdim,
enhanced,watermark text={\tcbfitsteps},colframe=blue!75!black,colback=white,#1}
\begin{document}
%\begin{fitbox}[<optional>]{<width>}{<height>}
%contents
%\end{fitbox}
\begin{fitbox}{4cm}{2cm}
\lipsum[1]
\end{fitbox}
\begin{fitbox}[colback=green!20]{2cm}{4cm}
\lipsum[2]
\end{fitbox}
\begin{fitbox}{1cm}{2cm}
\lipsum[3]
\end{fitbox}
\end{document}