Hi Ben,
On Thu, May 22, 2014 at 6:09 PM, Ben Coman<btc(a)openinworld.com> wrote:
Now is there any important function missing, or
is there a better way to do
this?
thank you for your contribution.
I would try to generate this instead:
\begin{note}
foo bar baz
\end{note}
This environment is meant for this. To output the \begin and \end parts, use
canvas environment
(look at the senders of #environment in the PRLaTeXWriter class for examples)
To output the text, you can just write
super visitAnnotatedParagraph: aParagraph
I also want add an annotation type, which
I'll describe in a following post.
I should we should think a bit how these should be handled. In the
meantime, you can just hack around :-). And please add unit tests.
--
Damien Cassou
So I determined that the following works well...
PRLaTeXWriter>>visitAnnotatedParagraph: anAnnotatedParagraph
"Pier seams to lack consistency here ..."
'todo' = anAnnotatedParagraph annotation asLowercase
ifTrue: [ ^ self visitCommentedLine: anAnnotatedParagraph ].
canvas environment
name: 'note' ;
with: [ super visitAnnotatedParagraph: anAnnotatedParagraph ].
to process Pillar markup...
@@note Pay attention to the class definition for your new
""==BlankCellTest=="". It must be a subclass of the class
""==TestCase=="". This is easy to overlook. If you did it wrong
already,
no problem, just go back and correct it now and then save the code again.
Within a class, methods are organised into "protocols" that are shown in
the third browser pane from the left of Figure
*testCellStateShouldBeOffEmpty*. We will group our "tests" inside a
protocol of the same name.
to produce this nice looking PDF showing the note indented with dividing
lines...
Now that was real easy to do!! Thanks for making Pillar accessible. I
can't imagine making a similar change as easy in a Markdown processor in
some other language.
---------------
Next, in common.tex [1] I found...
{
\newcommand{\dothisicon}{\raisebox{-.5ex}{\includegraphics[height=1.2em]{pharo}}}
\newcommand{\dothis}[1]{%
\medskip
\noindent\dothisicon
\ifx#1\empty\else\quad\emph{#1}\fi
\par\smallskip\nopagebreak}
}
and discovered I could do this in the Pillar markup...
Before defining a class we should define a package to contain our
classes. When we save a package all the classes will be saved together.
It is a good practice to group together classes that work together.
{{{latex:
\dothis{Right-click on the background and open a System Browser.}
\dothis{In the package list of the System Browser, choose "add package"
to add a new package. Use the name "LaserG
}}}
to produce in the PDF two Pharo icons on separate lines...
But that is awkward and verbose to do each time, and I though it would
be nice for Pillar to handle this as an annotation like this...
Before defining a class we should define a package to contain our
classes. When we save a package all the classes will be saved together.
It is a good practice to group together classes that work together.
@@dothis Right-click on the background and open a System Browser.
@@dothis In the package list of the System Browser, choose "add package"
to add a new package. Use the name "LaserGame-Model".
so I found I could do that by added the following hack to
PRLaTeXWriter>>visitAnnotatedParagraph: ...
'dothis' = anAnnotatedParagraph annotation asLowercase
ifTrue:
[ ^ self writeRawDuring:
[ stream newLine.
stream << '\dothis{' .
stream << anAnnotatedParagraph text trimBoth .
stream << '} ' .
].
].
However changing this to be less of a hack like this...
'dothis' = anAnnotatedParagraph annotation asLowercase
ifTrue:
[ ^ canvas command
name: 'dothis' ;
parameter: [ super visitAnnotatedParagraph:
anAnnotatedParagraph ]
].
doesn't quite work, since the first Pharo icon runs onto the previous
line...
That can be fixed as follows....
PRLaTeXCommand>>name: aString
stream newLine. "<---THIS LINE ADDED"
stream
<< $\
<< aString
but I don't know if that is the right thing to do. Maybe there are
times when you want commands to run on from a line. What would be the
right thing?
Also, is it reasonable to add this new annotation type? i.e. might it
be integrated soon ? :) :) . This would really help with the Laser Game
tutorial.
[1]
https://github.com/bencoman/PharoLaserGameTutorial/blob/master/common.tex
cheers -ben
P.S. This is my first post to the mail list using PostBox on OSX. Let
me know if you notice any issues with it being not plain text and if you
have any advice ensure plain text posts in PostBox.