禁用数据工具表中的换行符

禁用数据工具表中的换行符

我有一个 csv 文件,其中包含带有地址的姓名列表。我使用包datatool来加载这些内容并输出信封贴纸(使用labels包)。这是使用 完成的\DTLforeach。有时姓名太长,一行写不完,因此我手动\\在 csv 中包含 ,以免姓名被连字符连接。

我还想使用 打印所有收件人的完整列表\DTLdisplaydb

对于我的贴纸来说,这非常有效,但这当然会破坏我列出所有收件人的表格。

作为 MWE,将其保存为 data.csv:

Name,Street,City
John Doe,Street 1,A City
Osop Eskobmr Sempeg Cotbadt\\Demnoskoywar,Street 9,B City
Jeeta Ex,Street 2,A City

并使用

\documentclass{article}
\usepackage{labels}
\usepackage{datatool}
\begin{document}
\DTLloaddb{address}{data.csv}
\DTLforeach{address}{\name=Name,\street=Street,\city=City}%
{\addresslabel{\name\\ \street\\ \city}}

\DTLdisplaydb{address}
\end{document}

我想我可以插入一个特殊命令,例如,\mybreak并将其定义为空或\newline根据情况定义为。但我更愿意保持数据原样。

答案1

\addresslabel将其参数排版为右侧不规则(使用\raggedright)并放在适当宽度的框中。由于\raggedright几乎从不连字符,因此这很可能就足够了。当我\\从您的示例中删除 时,我得到了我认为您想要的行为。

确保不会出现任何连字符的一种方法是将其\lefthyphenmin1000作为可选参数添加\addresslabel

\addresslabel[\lefthyphenmin1000]{\name\\ \street\\ \city}

这告诉 TeX 连字点左边必须至少有 1000 个字符。

相关内容