我使用数据工具来获取数据并且行距可以改变。
如果满足以下条件,则计算 (文本 A + 文本 B) 总字符数的单词/字符数:
(文本 A + 文本 B) 总字符数 < 20 个字符 => 设置 tcolorbox 中文本的行距 = 1.5 厘米
(文本 A + 文本 B) 的总字符数 = 21 - 50 个字符 => 设置 tcolorbox 中文本的行距 = 0.8 cm
(文本 A + 文本 B) 总字符数 > 50 个字符 => 设置 tcolorbox 中文本的行距 = 0.3 厘米
最小工作代码:
\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{wrapfig}
\usepackage{lipsum}
\tcbset{colframe=blue!75!black,colback=white}
\usepackage{filecontents}
\begin{filecontents*}{file.tex}
No,TextA,TextB
1,a a a a a a a a a a a a a a a a a a a a,b b b b b b
2,a a a a a a a a a a,b b b b b b
3,a a a a a a a a a a,b b b b b b b b b b b b
4,a a a a a a a a a a,b b b b b b b b b b b b b b b b b b
5,a a a a a a a a a a a a a a a,b b b b b b
6,a a a a a a a a a a a a a a a a a a a a,b b b b b b
7,a a a a a a a a a a a a a a a,b b b b b b b b b b b b
\end{filecontents*}
\usepackage{datatool}
\DTLloaddb[autokeys=false]{file}{file.tex}
\begin{document}
\DTLforeach*
{file}% Database
{\No=No,\TextA=TextA,\TextB=TextB}{%
%\begin{mybox}[height=4.5cm]
\begin{tcolorbox}[height=4cm,width=6cm]
\begin{wrapfigure}{R}{1.5cm}
\centering
\includegraphics[width=2cm,height=2cm]{example-image-a}
\end{wrapfigure}
\No \quad \TextA \quad \TextB\par
\end{tcolorbox}
\newpage
}%
\end{document}
多谢
答案1
您必须先设置基线跳过wrapfigure
。
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname-file.tex}
No,TextA,TextB
1,a a a a a a a a a a a a a a a a a a a a,b b b b b b
2,a a a a a a a a a a,b b b b b b
3,a a a a a a a a a a,b b b b b b b b b b b b
4,a a a a a a a a a a,b b b b b b b b b b b b b b b b b b
5,a a a a a a a a a a a a a a a,b b b b b b
6,a a a a a a a a a a a a a a a a a a a a,b b b b b b
7,a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a,b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
\end{filecontents*}
\documentclass[twocolumn]{article}
\usepackage[many]{tcolorbox}
\usepackage{filecontents}
\usepackage{datatool}
\usepackage{wrapfig}
\usepackage{xparse}
\usepackage{lipsum}
\tcbset{colframe=blue!75!black,colback=white}
\DTLloaddb[autokeys=false]{file}{\jobname-file.tex}
\ExplSyntaxOn
\NewDocumentCommand{\setbaselineskip}{mmm}
{
\tl_set:Nx \l_tmpa_tl { \exp_not:V #1 ~ \exp_not:V #2 ~ \exp_not:V #3 }
\int_compare:nTF { \tl_count:N \l_tmpa_tl <= 20 }
{
\setlength{\baselineskip}{ \dim_eval:n { \baselineskip+1.5cm} }
}
{
\int_compare:nTF { \tl_count:N \l_tmpa_tl <= 50 }
{
\setlength{\baselineskip}{ \dim_eval:n { \baselineskip+0.8cm} }
}
{
\setlength{\baselineskip}{ \dim_eval:n { \baselineskip+0.3cm} }
}
}
}
\ExplSyntaxOff
\begin{document}
\DTLforeach*
{file}% Database
{\No=No,\TextA=TextA,\TextB=TextB}
{%
\begin{tcolorbox}[width=6cm]
\setbaselineskip{\No}{\TextA}{\TextB}
\begin{wrapfigure}{R}{2cm}
\centering
\includegraphics[width=2cm,height=2cm]{example-image-a}
\end{wrapfigure}
\No \quad \TextA \quad \TextB
\end{tcolorbox}
% \newpage
}
\end{document}