我没有标签机,但我找到了一些有粘性的 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 sep
minimum 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}
}
你得到