自制Prosper样式:mytu

2005/05/11 - 8 条留言

由于月底要开国际会议,开始着手准备幻灯片,一如既往,抛开PowerPoint,使用Latex+Prosper来生成PDF。今天做了一个新样式,因为打算把学校的校徽放上去,所以整体的颜色就以校徽的颜色为基调,像下面的样子,名字就以我的名字和大学的名字的头字母,mytu,来命名。

A new prosper style screenshot
Prosper样式:mytu。

样式的设计很简单,一个置顶的渐变蓝色背景,一条与校徽中间等高的渐变深蓝色窄条,标题使用白色底,细黑线勾边,这个功能使用了如下的命令:

\newcommand{\slidetitle}[1]{%
\rput[l](-1.4, 4.1){\pscharpath[fillstyle=solid,fillcolor=white,%
linecolor=black,linewidth=0.5pt]{\parbox{13cm}{\fontTitle{#1}}}}}

其中的\pscharpath是Ps-tricks的一个命令,需要pst-char包的支持。另外,\pscharpath与\parbox的顺序不能调换,如果\parbox在前,对于过长的标题就不会自动换行,这是花了好长时间才弄明白的。

校徽的插入并没有在样式中定义,是使用\Logo命令插入的,所以,用户可以自由放置自己学校的图案,宽度设置在1厘米时可达到最佳效果。

\Logo{\includegraphics[width=1cm]{tulogo.eps}}

如果您也是Prosper的用户,并喜欢此样式的话,欢迎下载使用。也许你要插入的Logo不是蓝色的,不要紧,你可以修改样式文件中的颜色定义,变成你喜欢的颜色。

下载此Prosper样式

我用此样式文件制作的PDF演示文稿,此文件曾于国际会议ISCAS05上演讲。

自制Prosper样式:RYBFlags

2004/12/16 - 3 条留言

上午分析了一下PPRblends.sty样式的详细构成,现在就根据blends样式,做一些适当的修改,来产生自己的样式文件。

先来看看原本的blends样式是什么样子的:

PROSPER: Blends

作如下修改:

  1. 对三种基本颜色重新定义,使用纯的红黄蓝。
  2. 对方块的大小和位置进行修改,重新摆放。
  3. 将横竖两条线的两头都变成白色,并改变坐标使其穿透页面
  4. 标题和正文的位置向左做适当移动

就这样,我制作了一个新的样式,因为颜色比较鲜艳,像红黄蓝三色的大旗,所以起个名字就叫RYBFlags。同一页面的样式预览如下:

PROSPER: RYBFlags

本样式欢迎Prosper爱好者下载使用。当然,本文的目的还是想推动Prosper样式向多样化发展,希望鼓励大家都来进行设计,百花齐放,以后一定要比微软的Powerpoint多!

点击下载

Prosper样式的制作

2004/12/16 - 3 条留言

很久以前就筹划这篇文章。因为用Prosper制作幻灯目前最大的弱点就是样式相对单调。不过这也许也是它的优势所在,因为在PowerPoint里面想要做一个样式可能还不如Prosper里面简单。下面就讨论一下Prosper里面如何修改甚至自己制作一个样式。

Prosper的样式文件是以PPR作为开头的,名字如PPRblends.sty,就是blends样式的源文件(这个模板的样子可以参看我以前的帖子),下面就以PPRblends.sty来做为例子进行说明。在源文件上添加注释文件如下:

% =======
% Prosper — (PPRblends.sty) Style file
% 版权说明以及一些其他乱七八糟的,不用理它。
% =======

\NeedsTeXFormat{LaTeX2e}[1995/12/01]
% 不用动

\ProvidesPackage{PPRblends}[2001/11/15]
% 这里是PPRblends,如果你要做自己的样式,
% 这里要与文件名一致,否则会有警告信息。

\typeout{‘Blends’ style for Prosper —}
\typeout{(c) 2001 Andrew Arnt}
% 上述信息会在编译的时候出现。
% 如果你要发行自己创作的样式,
% 请在这里申明版权之类,一切你想说的东西。

\IfFileExists{pst-grad}{\RequirePackage{pst-grad}}
{\RequirePackage{gradient}}
% 这里是做了一个判断,选择一个包来实现颜色的渐变。
% 如果pst-grand包存在,就用pst-grand包,
% 如果不,就用gradient包。

\RequirePackage{semhelv}
% semhelv.sty是seminar包的一部分。
% 其实整个Prosper就是基于seminar这个样式之上的。

\ifinColor
% 如果在文件的option声明里使用了颜色的话。
% 按照下面定义几种颜色(彩色RGB)。

\newrgbcolor{cyellow}{1.0 0.812 0.004}
\newrgbcolor{cred}{1.0 0.220 0.224}
\newrgbcolor{cblue}{0.2 0.2 0.8}
\newrgbcolor{ctitle}{0.2 0.2 0.6}
\newrgbcolor{cblack}{0.110 0.110 0.110}
% 以上颜色都由{颜色名字随便起}{R G B}定义而成,
% RGB分别从0到1,由弱变强,0就是黑,1就是白。

\else
% 与ifinColor对应,如果没有选择彩色,即为黑白。

\newgray{cyellow}{0.75}
\newgray{cred}{0.50}
\newgray{cblue}{0.25}
\newgray{ctitle}{0.00}
\newrgbcolor{cblack}{0.110 0.110 0.110}
% 颜色的定义由\netgbcolor变成了\newgray,
% 只有一个参数定义灰度。

\fi
% 判断完了。

\FontTitle{%
\usefont{T1}{phv}{b}{n}\fontsize{17.28pt}{14pt}\selectfont\ctitle}{%
\usefont{T1}{phv}{b}{n}\fontsize{17.28pt}{14pt}\selectfont\ctitle}
\FontText{%
\black\usefont{T1}{phv}{m}{n}\fontsize{14.4pt}{12pt}\selectfont}{%
\black\usefont{T1}{phv}{m}{n}\fontsize{14.4pt}{12pt}\selectfont}
%上面的文字用来定义字体,无论是Title还是Text都有两行,
% 一个是针对彩色的情况,一个是针对黑白的(但在这里,两种都使用了同一种定义)。
% \fontsize用来定义大小,这个可以修改到合适的数值。
% phv是指PostScript Helvetica字体,有关字体的详细,有时间再讨论。

\ColorFoot{\ctitle}
% 角标的颜色,ctitle在上面有定义

\newcommand{\slidetitle}[1]{%
\rput[rb](11,3.3){%
\parbox{9.5cm}{\begin{flushleft}\fontTitle{#1}\end{flushleft}}}}
% 这里比较重要,它规定了每一页标题的现实位置等信息。
% 在本例中,使用\rput来放置一个宽9.5cm的文本框在坐标(11,3.3)处,基点是右下角[rb]。
% 文本框中,采用左对齐和事先定义的标题字体。
% 这里通过调整各种数值,你可以比较随意的使标题抬高,居中或者右对齐。

\LogoPosition{-1.5,-1.1}
%Prosper允许用户使用\Logo(x,y){mylogo}命令放置自己的Logo在页面中。
%如果不指定尺寸,就会使用这一行所定义的位置。

\newcommand{\Blendsframe}[1]{%
\rput[lt](-1.5,6.0){%
\psframe[gradbegin=cyellow,gradend=white,gradmidpoint=1,
gradangle=90,fillstyle=gradient,gradlines=1000,
linestyle=none](0.685,2.235)(2.385,1.185)
\psframe[gradbegin=cblue,gradend=white,gradmidpoint=1,
gradangle=90,fillstyle=gradient,gradlines=1000,
linestyle=none](0.98,1.24)(2.705,0.115)
\psframe[gradbegin=white,gradend=cred,gradmidpoint=1,
gradangle=135,fillstyle=gradient,gradlines=1000,
linestyle=none](0,1.405)(1.335,0.415)
\psframe[gradbegin=cblack,gradend=white,gradmidpoint=1,
gradangle=0,fillstyle=gradient,gradlines=1000,
linestyle=none](1.060,2.485)(1.18,-7)
\psframe[gradbegin=cblack,gradend=white,gradmidpoint=1,
gradangle=90,fillstyle=gradient,gradlines=1000,
linestyle=none](0.5,0.78)(13.5,0.66)
%%\psgrid(0,0)(-10,-10)(20,10)
}
\PutLogo % Mandatory
{#1}}
% 以上是定义背景的代码,多是使用PSTricks中的命令来绘图。
% 本例中,使用\psframe来放置三个彩色的方块和两个长条,颜色都是渐变的。
% 这里比较灵活,可以自由修改来达到想要的效果。
% 当然你也可以放置自己的图片作为背景。
% 注意:这里把所有背景图案和在一起起了个名字:Blendsframe,后面会用到。

\myitem{1}{\psframe[fillstyle=solid,fillcolor=cblue,%
linestyle=none](-.15,.25)(0.1,.1)}
\myitem{2}{\psframe[fillstyle=solid,fillcolor=cred,%
linestyle=none](-.15,.25)(0.1,.1)}
\myitem{3}{\psframe[fillstyle=solid,fillcolor=cyellow,%
linestyle=none](-.15,.25)(0.1,.1)}
% 上面的代码定义了三级条款的样式,本例比较简单,用了三种颜色的方块。
% 你也可以使用数学符号来作为条款的标签。

\NewSlideStyle{t}{5.2,2.2}{Blendsframe}
% 这个\NewSlideStyle命令定义了整个页面的位置信息。格式如下:
% \NewSlideStyle[width]{ref_point}{position}{background_name}
% [width]是文本的宽度值,如:[115mm],可以省略。
% {ref_point}和其他命令一样表示参考点的位置,用t,b,l,c及他们的组合,
% 本例中使用的是t,也就是顶部的中间点。
% {position}就是上面的参考点所放置的位置了。
% 以上三个参数都是“页面文本”的信息。
% 最后的{background_name}就是前面定义的背景图案的名字,
% 本例中使用的是Blendsframe,如果你用了自己喜欢的名字,这里要保持一致。

\PDFCroppingBox{0 15 700 810}
% 这个命令顾名思义,就是最终输出PDF的页面所抽出来的部分,
% 四个数字定义了左上角为(0, 15),右下角为(700, 810)的长方形。
% 最后的PDF文件所显示的东西就是这个长方形中的内容,
% 如果取得不好,可能会使内容被割掉。

\endinput
% 结束

以上文件可按自己意识修改,然后保存到LaTeX-Prosper源文件的目录中(最好换个名字),然后编译看看效果。然后再参考一些其他的PPRxxxx.sty文件,会发现很多新东西。起初可以找一个自己喜欢的框架作一些更适合自己的改动,挪挪地方,变变颜色,改改大小等等,熟悉了之后,就可以动手写一个自己的样式了,当然设计可以参照PowerPoint中丰富的模板。

Last Page Column Equalization

2004/09/13 - 1 条留言

使用LaTeX的双栏(twocolumn)格式在最后一页如果不加修改,通常会左面到底,右面悬空这样的两边不齐的样子,这通常不是我们想要的输出。如何使双栏的底端找齐呢?基本上有如下方法:

  1. 如果文章到最后是进入到参考文献的部分,可以在你觉得应该拐弯儿的地方加入\newpage命令。可是如果你的参考文献是用BibTeX来嵌入的话,就不好办了,虽然可以在.bbl文件里面加入,但是如果重新编译了BibTeX的话,.bbl文件会被重新刷新。如果是使用IEEEtran(用来向IEEE会刊投稿的样式)的style的话,可以使用IEEE提供的\IEEEtriggeratref{x}命令,这个命令放在bibliography的前面,x就是你想要断开的文献号码。他会在第x个参考文献前面自动加入\newpage。
  2. 如果你的文档没有参考文献,或者很少,上面的方法就不适用了。这种情况下可以用\enlargethispage{-X.Yin}命令来使最后一页的左面栏的长度缩短。这个命令需要放在你最后一页第一栏的文字顶部某处,X.Y就是要缩小的量。在IEEEtran中命令变成了\IEEEtriggercmd{\enlargethispage{-5.35in}}的格式。
  3. 使用第三方的package。如:balance.sty或者flushend.sty。虽然他们都可以很方便的得到,但是不少杂志都不太接受这种非官方的包,因为这样也许会使排版变得不够标准。所以,很多目的都必须通过很传统的LaTeX命令来实现,这也正是深入了解LaTeX的必要性。

在Prosper中使用PS命令 (2)

2004/09/09 - Comments Off on 在Prosper中使用PS命令 (2)

使用Prosper时,要在特定的位置放置特定的文字,图片,表格最常用的命令(我个人比较喜欢使用的)就是

\rput[bp]{rot}(px,py){objects}

  • [bp] – 参考点(基准点),也就是说指定的坐标是对要放的东西的那个点来说的。
    • [c] center
    • [t] top
    • [b] bottom
    • [u] upper
    • [l] left
    • [r] right
    • 可以使用上面的组合,一般来讲,使用左上角[tl]或者左下角[bl]是比较方便的。
  • {rot} — 制定偏角,一般用不到,可以忽略。
  • (px,py) — 顾名思义,就是横纵坐标的意思。坐标值可以参考在本文第一部分打印的坐标图。
  • {objects} — 就是你要放置的东西了。

也许你也注意到了,这个命令里面没有关于宽度高度的定义。那么它就会把你要放的object按照它的大小一比一的放到指定的坐标值上。这里有一点技巧,就是为了使它的大小也可以控制,我通常把\rput和\parbox一同来使用,通过\parbox来控制宽度。使用的时候就是如下的样子:

\rput[tl](1,0.2){
 \parbox[t]{10cm}{
  \shadowbox{
   $\piff{\vtx_2}{\vtx_0} = %略
  }
 }
}
\rput[tl](0.5,-2.9){
 \parbox[t]{10cm}{
  By finding %略
 }
}

上面的代码放到一个页面里的输出如下:

Prosper example

文字和公式都分别用\rput被安放在制定的位置。所以,有了这个命令,Prosper就充满了生气,不必像普通的LaTeX文档一样,一行接着一行的排版了。这种定位准确,灵活,不会像Powerpoint一样会有移动的情况。活用这个命令,可以实现很多功能。

未完待续……

在Prosper中使用PS命令 (1)

2004/09/08 - 1 条留言

使用Prosper制作幻灯的时候,如果只是使用Latex的命令的话,未免单调,对位置的控制往往也不尽如人意。那么通常需要调用PS的一些命令来实现准确的定位,绘制几何图形,连线,箭头等等略微复杂但是却有效的操作。有关PS的命令有很多package。常用的几个如下:

\usepackage{pstricks,pst-node,pst-plot}

每个package里面也涉及了很多功能,不可能一一赘述,只挑些我用过的来介绍。

使用Pstricks最关键的就是关于版面的定位。而每个样式的位置还都略有差异,所以,使用之前,最好先对版面的坐标有一个清醒地认识。怎么办呢?建议用如下的代码针对要用的样式画一个坐标。

%%— 前面有你的样式文件和package定义,此处略。

\begin{slide}[Wipe]{}
\psline[linecolor=cyan] (-3, 2)(12, 2)
\psline[linecolor=cyan] (-3, 1)(12, 1)
\rput(0,0){(0,0)}
\psline[linecolor=red]  (-3, 0)(12, 0)
\psline[linecolor=cyan] (-3,-1)(12,-1)
\psline[linecolor=cyan] (-3,-2)(12,-2)
\psline[linecolor=cyan] (-3,-3)(12,-3)
\psline[linecolor=cyan] (-3,-4)(12,-4)
\rput(0,-5){(0,-5)}
\psline[linecolor=green](-3,-5)(12,-5)
\psline[linecolor=cyan] (-3,-6)(12,-6)
\psline[linecolor=cyan] (-3,-7)(12,-7)
\psline[linecolor=cyan] (-3,-8)(12,-8)
\psline[linecolor=cyan] (-3,-9)(12,-9)
\rput(5,-5){(5,-5)}
\psline[linecolor=cyan] (-2,3)(-2,-9)
\psline[linecolor=cyan] (-1,3)(-1,-9)
\rput(10,-5){(10,-5)}
\psline[linecolor=red]  ( 0,3)( 0,-9)
\psline[linecolor=cyan] ( 1,3)( 1,-9)
\psline[linecolor=cyan] ( 2,3)( 2,-9)
\psline[linecolor=cyan] ( 3,3)( 3,-9)
\psline[linecolor=cyan] ( 4,3)( 4,-9)
\rput(5,0){(5,0)}
\psline[linecolor=green]( 5,3)( 5,-9)
\psline[linecolor=cyan] ( 6,3)( 6,-9)
\psline[linecolor=cyan] ( 7,3)( 7,-9)
\psline[linecolor=cyan] ( 8,3)( 8,-9)
\psline[linecolor=cyan] ( 9,3)( 9,-9)
\rput(10,0){(10,0)}
\psline[linecolor=green](10,3)(10,-9)
\psline[linecolor=cyan] (11,3)(11,-9)
\psline[linecolor=cyan] (12,3)(12,-9)
\end{slide}

这样,编译后会输出一个类似于下面的页面:

Pstricks

如图所示,版面的坐标就是这个样子的了(此图为自制的iscas样式),将输出的页面打印出来作为参考。然后,使用Pstricks的命令就可以随心所欲的在页面上放置任何东西了。

此为(1),为完待续……

参考网站(日文):http://cse.naro.affrc.go.jp/takezawa/tex/latex/image1/