如果总字符数可变,则动态行间距

如果总字符数可变,则动态行间距

我使用数据工具来获取数据并且行距可以改变。

如果满足以下条件,则计算 (文本 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}

在此处输入图片描述

相关内容