LabelMaker 样式为 TEX

LabelMaker 样式为 TEX

我没有标签机,但我找到了一些有粘性的 A4 纸。因此它们可以用作标签。我编写了以下代码,其中命令\newLabel应该制作一个带有虚线框的标签。轮廓框用作用剪刀剪标签时的参考。

我面临的一个问题是,我创建的框不会调整为单词长度。这浪费了很多纸张。它们应该尽可能靠近,并在边框和字母之间有任意的填充。你有什么建议吗?我该如何实现这个目标?

    % !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode

\documentclass[12pt]{article} % use larger type; default would be 10pt

\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\usepackage{geometry} % to change the page dimensions
\geometry{a4paper} % or letterpaper (US) or a5paper or....
\geometry{margin=0cm} % for example, change the margins to 2 inches all round

\usepackage{environ}
\usepackage{tikz}

\NewEnviron{elaboration}{
\par
\begin{tikzpicture}

\node[rectangle,minimum width=0.9\textwidth] (m) {
    \begin{minipage}{\textwidth}
        \BODY
    \end{minipage}};

\draw[dashed] (m.south west) rectangle (m.north);
\end{tikzpicture}
}

\newcommand{\newLabel}[1] {
    \begin{elaboration}
        \uppercase{#1}
    \end{elaboration}
}


\begin{document}

\newLabel{$H_2O$}
\newLabel{salt}
\newLabel{High Voltage}
\newLabel{Danger}
\newLabel{DO not touch}

\end{document}

生成以下 PDF: 在此处输入图片描述

我想要的是像这样的东西(边框和字母之间有良好的填充):

在此处输入图片描述

答案1

您可以使用varwidth包来调整宽度。也可以根据需要调整inner和值。该选项不是必需的,单独的命令是多余的,因为您可以在节点本身的选项中绘制。outer sepminimum width=0.9\textwidth\draw

    % !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode

\documentclass[12pt]{article} % use larger type; default would be 10pt

\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\usepackage{geometry} % to change the page dimensions
\geometry{a4paper} % or letterpaper (US) or a5paper or....
\geometry{margin=0cm} % for example, change the margins to 2 inches all round

\usepackage{varwidth}
\usepackage{environ}
\usepackage{tikz}

\NewEnviron{elaboration}{
\par
\begin{tikzpicture}

\node[rectangle,draw,dashed,outer sep=4pt,inner sep=10pt,execute at begin node={\begin{varwidth}{\textwidth}},
   execute at end node={\end{varwidth}}] (m) {\BODY};

%\draw[dashed] (m.south west) rectangle (m.north);
\end{tikzpicture}
}

\newcommand{\newLabel}[1] {%
    \begin{elaboration}%
        \uppercase{#1}
    \end{elaboration}
}


\begin{document}

\newLabel{$H₂O$}
\newLabel{salt}
\newLabel{High Voltage}
\newLabel{Danger}
\newLabel{DO not touch}

\end{document}

在此处输入图片描述

如果你从类似\par定义中删除elaboration

\NewEnviron{elaboration}{
%\par     %%<--------------------------------
\begin{tikzpicture}

\node[rectangle,draw,dashed,outer sep=4pt,inner sep=10pt,execute at begin node={\begin{varwidth}{\textwidth}},
   execute at end node={\end{varwidth}}] (m) {\BODY};

%\draw[dashed] (m.south west) rectangle (m.north);
\end{tikzpicture}
}

你得到

在此处输入图片描述

相关内容