23

I have found this in the cover of seminar(one tool to make slide) document.

The final result I have captured below:

enter image description here

The complete document can download here.

I wonder how to make this. Is there any easy way?

pythonee
  • 2,567

4 Answers4

22

Quoting from Chapter 14 of The TeXbook

You can specify an essentially arbitrary paragraph shape by saying \parshape= < number >, where the < number> is a positive integer n, followed by 2n < dimen > specifications. In general, '\parshape= n i1 l1 i2 l2... in ln' specifies a paragraph whose first n lines will have lengths l1, l2,...,ln, respectively, and the will be indented from the left margin by the respective amounts i1, i2,...,in

I went straight to the source http://mirrors.ctan.org/macros/latex/contrib/seminar/doc/ and found seminar-doc.tex. I was able to recreate the result:

enter image description here

The code is below

\documentclass[12pt]{article}

\usepackage[textwidth=15cm,textheight=26cm]{geometry} \setlength{\parindent}{0mm}

\begin{document}

\setlength{\unitlength}{1cm} \thicklines \centerline{\lower.8in\hbox{% \begin{picture}(0,0) \put(2,-11){\framebox(4,2){}} \put(2,-11){\line(-2,3){1}} \put(2,-9){\line(-2,3){1}} \put(6,-9){\line(-2,3){1}} \put(1,-9.5){\line(0,1){2}} \put(1,-7.5){\line(1,0){4}} \put(5.8,-8.7){\line(0,1){2}} \put(5.0,-6.7){\oval(1.6,1.6)[tr]} \put(5.0,-5.9){\line(-1,0){.7}} \put(3.1,-6.4){\framebox(1.2,1){}} \put(3.1,-6.4){\line(-1,2){.3}} \put(3.1,-5.4){\line(-1,3){.3}} \put(4.3,-5.4){\line(-1,3){.3}} \put(2.8,-5.8){\line(0,1){1.3}} \put(2.8,-4.5){\line(1,0){1.2}} \put(0,6.2){\oval(14,10)} \put(.02,6.18){\oval(14,10)} \thinlines \put(2.8,-5.8){\line(-4,3){9.6}} \put(2.8,-4.5){\line(-3,5){9.35}} \put(4,-4.5){\line(1,6){2.6}} \put(6.8,1.4){\line(-1,-3){2.5}} \end{picture}}} \par \bigskip \rightskip=0pt plus 2em\relax \parshape=20 0cm 2.3cm 0cm 2.9cm 0cm 3.5cm 0cm 4.1cm 0cm 4.7cm 0cm 5.3cm 0cm 5.9cm 0cm 6.5cm 0cm 7.1cm 0cm 7.7cm 0cm 8.3cm 0cm 8.3cm 0cm 8.3cm 0cm 7.3cm 0cm 7.3cm 0cm 7.3cm 0cm 7.3cm 0cm 7.3cm 0cm 7.3cm 0cm 7.3cm seminar.sty is a \LaTeX\ style for typesetting slides or transparencies, and accompanying notes. Here are some of its special features: It is compatible with AmS-\LaTeX, and you can use PostScript and AmS fonts. Slides can be landscape and portrait. There is support for color and frames. The magnification can be changed easily. Overlays can be produced from a single slide environment. Accompanying notes, such as the text of a presentation, can be put outside the slide environments. The slides, notes or both together can then be typeset in a variety of formats.

\end{document}

Note that in reference to The TeXbook quote, each line is indented by 0cm, but each line has a different length. The paragraph is designed to be 20 lines long.

Marijn
  • 37,699
cmhughes
  • 100,947
14

ConTeXt allows you to define a shape using metapost and then typeset any text using that shape. Behind the schemes, Metapost calculates the parameters for \parshape, writes them to an external file, TeX reads that file and sets \parshape. Below is an example:

\startuseMPgraphic{shape}
  % Shape of the paragraph
  path p ; p := ((0,1)..(-1,0)..(1,0)--cycle) scaled 5cm ;

  build_parshape
  ( p,                     % shape path
   .5*\baselinedistance,  % offset
   .5*\baselinedistance,  % x offset
   .5*\baselinedistance,  % y offset
   \baselinedistance,     % distance between lines
   \strutheight,          % height of a line
   \strutdepth,           % depth of a line
   \strutheight           % height of the first line
  ) ;

  % For visualization purposes only
  draw p ;
\stopuseMPgraphic

% For visualization purposes only
\defineoverlay[shape][\useMPgraphic{shape}]

\useMPlibrary[txt]
\setupshapetexts%
  [bodyfont=10pt]

\starttext
\startshapetext[shape]
  \input knuth \endgraf
\stopshapetext


% The \type{background} is set only to visualize the parshape
\startTEXpage[background=shape,offset=2mm]
{\getshapetext}
\stopTEXpage
\stoptext

which gives

enter image description here

Aditya
  • 62,301
9

You could look at the shapepar package.

lockstep
  • 250,273
Ulrike Fischer
  • 327,261
2

You can use \parshape primitive. The following example is a modification of Knuth example in his TeXBook. The commands are in Persian (I am not sure if this helps you at all): source and its PDF output

IRAN
  • 2,338