如果文本不为空,则使用文本代替虚线

如果文本不为空,则使用文本代替虚线

我用datatool

我有这样的流程:

  • 如果文本 A 或文本 B 为空白,则显示虚线
  • 如果文本 A 或文本 B 不为空,则删除虚线并显示文本 A/文本 B

我的最小工作示例:

 \RequirePackage{filecontents}

    \begin{filecontents*}{file.tex}

    No,TextA,TextB
    1,a1,b1
    2,,b2
    3,a2,
    4,,
    5,a5,b5

\end{filecontents*}

    \documentclass[twocolumn]{article}
    \usepackage[many]{tcolorbox}
    \usepackage{filecontents}
    \usepackage{datatool}
    \usepackage{wrapfig}
    \usepackage{xparse}
    \usepackage[utf8]{vietnam}
    \usepackage{lipsum}

    \tcbset{colframe=blue!75!black,colback=white}


    \DTLloaddb{file}{file.tex}
    \begin{document}

    \DTLforeach*
      {file}% Database
      {\No=No,\TextA=TextA,\TextB=TextB}
      {%
       \begin{tcolorbox}[width=3cm, height=2cm]

      \No \quad \\
      ..........\TextA \quad \\
      ..........\TextB
       \end{tcolorbox}
    %   \newpage
      }

    \end{document}

在此处输入图片描述

答案1

您可以用它\DTLifnullorempty来测试条目是否为空。

编辑:要测试值 0,请使用\DTLifeq

 \RequirePackage{filecontents}

    \begin{filecontents*}{file.tex}
    No,TextA,TextB
    1,a1,b1
    2,,b2
    3,a2,
    4,,
    5,0,b2
    6,a2,0
    7,0,0
\end{filecontents*}

    \documentclass[twocolumn]{article}
    \usepackage[many]{tcolorbox}
    \usepackage{filecontents}
    \usepackage{datatool}
    \usepackage{wrapfig}
    \usepackage{xparse}
    \usepackage[utf8]{vietnam}
    \usepackage{lipsum}

    \tcbset{colframe=blue!75!black,colback=white}


    \DTLloaddb{file}{file.tex}
    \begin{document}

    \DTLforeach*
      {file}% Database
      {\No=No,\TextA=TextA,\TextB=TextB}
      {%
       \begin{tcolorbox}[width=3cm, height=2cm]
         \No\newline
         \DTLifnullorempty{\TextA}{..........}{\DTLifeq{\TextA}{0}{..........}{\TextA}}\newline
         \DTLifnullorempty{\TextB}{..........}{\DTLifeq{\TextB}{0}{..........}{\TextB}}
       \end{tcolorbox}
    %   \newpage
      }

    \end{document}

在此处输入图片描述

相关内容