我能够制作一张 3 英寸 x 2.5 英寸的名片。但是,我找不到可以在没有框架的页面上重复 10 次的脚本。
这就是我目前的情况使用(文章下半部分的第二组代码)。我想要的是一个脚本,它将重复 pdf 文件 10 次,但使用类似于这。
更新:
\documentclass{article}
\usepackage{stackengine}
\usepackage{graphicx}
\usepackage{fullpage}
\usepackage[top=.5in, bottom=.5in,right=1.25in,left=1.25in, paperheight=11in, paperwidth=8.5in]{geometry}
\begin{document}
\pagestyle{empty}
\def\myimg{\protect\includegraphics[]{BusinessCards.pdf}}
\def\myhgap{\protect\hspace{1pt}}
\setstackgap{S}{1pt}
\Shortstack
{{\myimg\myhgap\myimg} {\myimg\myhgap\myimg} {\myimg\myhgap\myimg}
{\myimg\myhgap\myimg} {\myimg\myhgap\myimg}}
\end{document}
答案1
我在图像之间设置了 1ex 间隙,可以使用定义\myhgap
和进行更改\myvgap
。图形的大小对于方法来说并不重要,除非您有足够的边距来容纳它们。
已编辑,使结果在页面上垂直和水平居中。
已重新编辑,提供切割用的对准标记。此外,还清理了代码,以获得适当的垂直间距。
\documentclass{article}
\usepackage{stackengine}
\usepackage{graphicx}
\newlength\plusheight
\newlength\stackvgap
%%%
\def\myvgap{1ex}
\def\myhgap{1ex}
%%%
\addtolength\textheight{.8in}
\def\myimg{\protect\includegraphics[scale=.4]{iV9q1}}
% \def\myimg{\protect\rule{1in}{1in}}% THIS CAN BE USED TO CHECK GAP SPACING
\def\myimgwd{\widthof{\myimg}-\widthof{+}}
\def\imgline{\myimg\protect\hspace{\myhgap}\myimg}
\def\seperatorline{+\protect\rule{\myimgwd+\myhgap}{0pt}%
+\protect\rule{\myimgwd+\myhgap}{0pt}+}
\setlength\plusheight{\heightof{+}}
\addtolength\plusheight{\depthof{+}}
\setlength\stackvgap{\myvgap-\the\plusheight}
\setlength\stackvgap{.5\stackvgap}
\setstackgap{S}{\the\stackvgap}
\begin{document}
\centering
\vfill
\Shortstack{%
{\seperatorline}
{\imgline} {\seperatorline}
{\imgline} {\seperatorline}
{\imgline} {\seperatorline}
{\imgline} {\seperatorline}
{\imgline} {\seperatorline}}
\vfill
\end{document}
答案2
如果emka.pdf
是包含名片的 PDF 文件,您可以执行
\documentclass{article}
\usepackage[
paperwidth=8in, %???
paperheight=13in, %???
textwidth=6in,
textheight=12.5in
]{geometry}
\usepackage{graphicx}
\newcommand{\putpic}{%
\includegraphics{emka.pdf}\includegraphics{emka.pdf}\par}
\begin{document}
\setlength{\parindent}{0pt}
\offinterlineskip
\putpic
\putpic
\putpic
\putpic
\putpic
\end{document}
设置纸张的精确尺寸;Letter 纸或 A4 纸上放不下五行。
答案3
首先,编译文件中的以下代码(使用latex
--> dvips
--> ) :ps2pdf
single.tex
\documentclass[11pt,a4paper]{memoir}
\usepackage{pst-barcode}
\setstocksize{55mm}{85mm} % UK Stock size
\setpagecc{55mm}{85mm}{*}
\settypeblocksize{45mm}{75mm}{*}
\setulmargins{5mm}{*}{*}
\setlrmargins{5mm}{*}{*}
\setheadfoot{0.1pt}{0.1pt}
\setheaderspaces{1pt}{*}{*}
\checkandfixthelayout[fixed]
\pagestyle{empty}
% Code for the card.
\newcommand*\BusinessCard{%
%\pagecolor[cmyk]{.22,.36,.51,.08}%
\begin{Spacing}{0.75}%
\noindent
\textbf{Alexander~Slesarev}\\
\rule{74mm}{1mm}\\
\begin{minipage}[t]{30mm}
\vspace{-1.5mm}%
\begin{pspicture}(30mm,30mm)
% The MECARD format is used to exchange contact information. More information at:
% http://www.nttdocomo.co.jp/english/service/imode/make/content/barcode/function/application/addressbook/index.html
\psbarcode{MECARD:N:Slesarev,Alexander;TEL:+16047165085;EMAIL:[email protected];URL:http://nuald.blogspot.com;;}{eclevel=L width=1.15 height=1.15}{qrcode}
\end{pspicture}
\end{minipage}
\hspace{1mm}
\begin{minipage}[t]{42mm}
\vspace{-1mm}%
\begin{flushleft}
{\scriptsize
\begin{Spacing}{1}%
\textbf{IT Specialist}\\
\hspace{5mm}Software Development\\
\hspace{5mm}Security Researcher\\
\hspace{5mm}High Load Systems\vspace{9mm}\\
\end{Spacing}
}
{\tiny
\textbf{email:} [email protected]\\
\textbf{phone:} 604-716-5085\\
\textbf{web:} http://nuald.blogspot.com/\\
\vspace*{2mm}
}
\end{flushleft}
\end{minipage}
\rule{74mm}{1mm}
\end{Spacing}
}
\begin{document}
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\end{document}
接下来,编译以下代码(使用pdflatex
):
\documentclass{article}
\usepackage{pdfpages}
\newcommand*\TheCards{\includepdf[nup=2x5,pages=-]{single}}
\begin{document}
\TheCards
\TheCards
\TheCards
\end{document}
这是你想要的?
我认为,如果使用url
包裹:
\documentclass[11pt,a4paper]{memoir}
\usepackage{pst-barcode}
\usepackage{url}
\setstocksize{55mm}{85mm} % UK Stock size
\setpagecc{55mm}{85mm}{*}
\settypeblocksize{45mm}{75mm}{*}
\setulmargins{5mm}{*}{*}
\setlrmargins{5mm}{*}{*}
\setheadfoot{0.1pt}{0.1pt}
\setheaderspaces{1pt}{*}{*}
\checkandfixthelayout[fixed]
\pagestyle{empty}
% Code for the card.
\newcommand*\BusinessCard{%
%\pagecolor[cmyk]{.22,.36,.51,.08}%
\begin{Spacing}{0.75}%
\noindent
\textbf{Alexander~Slesarev}\\
\rule{74mm}{1mm}\\
\begin{minipage}[t]{30mm}
\vspace{-1.5mm}%
\begin{pspicture}(30mm,30mm)
% The MECARD format is used to exchange contact information. More information at:
% http://www.nttdocomo.co.jp/english/service/imode/make/content/barcode/function/application/addressbook/index.html
\psbarcode{MECARD:N:Slesarev,Alexander;TEL:+16047165085;EMAIL:[email protected];URL:http://nuald.blogspot.com;;}{eclevel=L width=1.15 height=1.15}{qrcode}
\end{pspicture}
\end{minipage}
\hspace{1mm}
\begin{minipage}[t]{42mm}
\vspace{-1mm}%
\begin{flushleft}
{\scriptsize
\begin{Spacing}{1}%
\textbf{IT Specialist}\\
\hspace{5mm}Software Development\\
\hspace{5mm}Security Researcher\\
\hspace{5mm}High Load Systems\vspace{9mm}\\
\end{Spacing}
}
{\tiny
\textbf{email:} \url{[email protected]}\\
\textbf{phone:} 604-716-5085\\
\textbf{web:} \url{http://nuald.blogspot.com/}\\
\vspace*{2mm}
}
\end{flushleft}
\end{minipage}
\rule{74mm}{1mm}
\end{Spacing}
}
\begin{document}
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\BusinessCard
\end{document}
(比较电子邮件地址和网站。)
PS 我已经调整了环境\vspace
的开始位置{minipage}
,以便使其相对于文本垂直居中。
PPS 卡片的绘制不是使用好的 LaTeX 代码完成的,但它可以工作。:)
答案4
如果您下载(免费)智者计算机代数系统,那么该sagetex
软件包将为您提供 Sage 和 Python 的强大功能。由于您只需要一个简单的 for 循环,因此您不必担心学习语言。
\documentclass{article}%
\usepackage{sagetex}
\usepackage{graphics}
\pagestyle{empty} % removes page numbers
\textwidth 22.00cm % 21.59cm
\textheight 27.94cm
\topmargin -1.75in % was -1.0
\headheight 0in
\headsep 0in
\oddsidemargin -0.5in % ok fits A4 paper
\begin{document}
\noindent
\setlength{\unitlength}{1in}
\begin{sagesilent}
output = ""
output += r"\begin{picture}(8.5,11)(0.0,0.3937)\\"
for i in range(0,5):
output += r"\put(0,%d){\includegraphics*{BusinessCards.pdf}}\\"%(2*i)
for i in range(0,5):
output += r"\put(3.5,%d){\includegraphics*{BusinessCards.pdf}}\\"%(2*i)
output += r"\end{picture}"
\end{sagesilent}
\sagestr{output}
\end{document}
环境sagesilent
会创建一个字符串,我将其称为输出,其中包含将 BusinessCards.pdf 放在所需位置的代码。通过使用 2 个 for 循环,您的脚本需求已得到满足。在流程结束时,您想要的所有 LaTeX 代码都在字符串输出中,因此我们保留sagesilent
。每当您想将该代码插入文档时,请使用。如\sagestr{output}
您所见,使用 Python 使代码更具可读性。r
原始字符串因为“...反斜杠字符用于转义具有特殊含义的字符”。