我输入了几个 fbox 命令,但由于某种原因,各个框之间用小空格隔开:
梅威瑟:
\documentclass{article}
\usepackage{fullpage}
\setlength{\oddsidemargin}{-15mm}
\raggedright
\begin{document}
\noindent
\fbox{text text text text text text text text text text text}
\fbox{text text text text text text text text text text text}
\fbox{text text text text text text text text text text text}
\fbox{text text text text text text text text text text text}
\end{document}
我首先想到的是,这是由于对齐引起的。但是当我将内容左对齐时,“问题”仍然存在。
我想删除这些 fbox 之间的空间:垂直和水平(在屏幕截图上用红色箭头显示)。
编辑:
最初的问题是使用 datatool 生成徽章。我有一个徽章模板,我使用 datatool 从 csv 文件多次生成它。问题是徽章彼此之间有点距离,所以我必须稍后手动将它们剪掉。
梅威瑟:
\documentclass[a4paper,12pt]{article}
\usepackage{fullpage}
\usepackage{filecontents}
\usepackage{datatool}
\DTLsetseparator{&}
\pagestyle{empty}
\setlength{\oddsidemargin}{-15mm}
\begin{filecontents*}{data.csv}
NAME&TITLE
Name1 & Title1
Name2 & Title2
Name3 & Title3
Name4 & Title4
Name5 & Title5
Name6 & Title6
\end{filecontents*}
\DTLloaddb{data}{data.csv}
\begin{document}
\DTLforeach*
{data}
{\NAME=NAME,\TITLE=TITLE}
{
\noindent
\fbox{\begin{minipage}[t][55mm]{90mm}
\vspace{11mm}
\centering
\vfill
{\bf \fontsize{30}{36}\selectfont\textrm{\NAME}\par}
\vfill
\large\itshape\TITLE
\vspace{5mm}
\end{minipage}}
}
\end{document}
给出:
编辑:
如果要使用双面徽章,则需要将相同的名称写两次,这样可以弯曲徽章并在两面使用相同的名称。在这种情况下,可以使用:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{data.csv}
NAME&AFFILIATION
Name1 & Title1
Name2 & Title2
Name3 & Title3
Name4 & Title4
Name5 & Title5
\end{filecontents*}
\usepackage{datatool}
\DTLsetseparator{&}
\DTLloaddb{data}{data.csv}
\usepackage{eso-pic}
\usepackage{graphicx}
% 4 per in a column:
\usepackage[a4paper,top=1cm,bottom=1cm,left=0.5in,right=0.5in]{geometry}
% % 5 per in a column:
% \usepackage[a4paper,top=0.27cm,bottom=0.1cm,left=0.5in,right=0.5in]{geometry}
\pagestyle{empty}
\begin{document}
\par
% \offinterlineskip
\noindent % <- Outside the loop
\DTLforeach*{data}{\NAME=NAME,\AFFILIATION=AFFILIATION}
{% <- Spurious space was here
\allowbreak % <- Added
\fbox{\begin{minipage}[t][55mm]{90mm}
\vspace{11mm}
\centering
\vfill
{\bf \fontsize{30}{36}\selectfont\textrm{\NAME}\par}
\vfill
\large\itshape\AFFILIATION
\vspace{5mm}
\end{minipage}}% <- Spurious space was here
\fbox{\begin{minipage}[t][55mm]{90mm}
\vspace{11mm}
\centering
\vfill
{\bf \fontsize{30}{36}\selectfont\textrm{\NAME}\par}
\vfill
\large\itshape\AFFILIATION
\vspace{5mm}
\end{minipage}}% <- Spurious space was here
}
\end{document}
这使:
答案1
您有虚假空格。我还\noindent
从循环中删除了它,将其放在外面,并放在\allowbreak
any 之前\fbox
。\offinterlineskip
一切顺利。如果您想在文档中包含其他内容,则应将所有内容括在一个组中\begingroup .. \endgroup
。
\documentclass{scrartcl}
\usepackage{lmodern}
\usepackage{fullpage}
\usepackage{filecontents}
\usepackage{datatool}
\DTLsetseparator{&}
\pagestyle{empty}
\setlength\oddsidemargin{-15mm}
\begin{filecontents*}{data.csv}
NAME&TITLE
Name1 & Title1
Name2 & Title2
Name3 & Title3
Name4 & Title4
Name5 & Title5
Name6 & Title6
\end{filecontents*}
\DTLloaddb{data}{data.csv}
\begin{document}
\par
\offinterlineskip
\noindent % <- Outside the loop
\DTLforeach*{data}{\NAME=NAME,\TITLE=TITLE}
{% <- Spurious space was here
\allowbreak % <- Added
\fbox{\begin{minipage}[t][55mm]{90mm}
\vspace{11mm}
\centering
\vfill
{\rmfamily\bfseries\fontsize{30}{36}\selectfont\NAME\par}
\vfill
\large\itshape\TITLE
\vspace{5mm}
\end{minipage}}% <- Spurious space was here
}
\end{document}
答案2
列空间简单。%
在行尾使用以删除任何额外空间。要删除垂直空间,您必须使用负空间将框向上移动。(我很快就会编辑)
\fbox{text text text text text text text text text text text}%
\fbox{text text text text text text text text text text text}\\