Tehdessäni muutamia apusukroja latexia varten niin huomasin, että ehdoissa ei ollut helppiä tilanteelle:
- if W1 = (empty) / testi, onko numeerinen parametri tyhjä arvo
TUTSAVE APU / testataan miten tyhjä parametri tulostuu
{init}{tempo 0}{ins line}{line start}
{print W1}{end}
Lopputulos:
/APU
(empty)
Kyselyjärjestelmässä esimerkki näytti olevan tilanteelle, jossa testataan merkkijonomuuttujan olemassaoloa:
- if W1 '=' {} / merkkijonomuuttuja on tyhjä
Sukro:
*
*TUTSAVE FIG / Latex dokua varten
/ Usage: /FIG <filename> <scale>
/ http://en.wikibooks.org/wiki/LaTeX/Importing_Graphics#Supported_image_formats
*{init}{tempo 0}{ref set 1}{line start}{d10}{u10}
*{ins line}{ins line}{ins line}{ins line}
*{ins line}{ins line}{u5}
- if W2 = (empty) then goto A else goto B
+ A: {W2=1.0}{goto B}
+ B:
\begin{(}figure{)}[p]{R}
* \centering{R}
* \includegraphics[scale={print W2}]{(}{print W1}{)}{R}
* \caption{(}{print W1}{)}{R}
* \label{(}fig:{print W1}{)}{R}
*\end{(}figure{)}
*{ref jump 1}{line start}{ins}%
*{end}
*
/FIG kuva.png / ilman skaalaparametria
%/FIG kuva.png
\begin{figure}[p]
\centering
\includegraphics[scale=1.0]{kuva.png}
\caption{kuva.png}
\label{fig:kuva.png}
\end{figure}
/FIG kuva.png 0.75
%/FIG kuva.png 0.75
\begin{figure}[p]
\centering
\includegraphics[scale=0.75]{kuva.png}
\caption{kuva.png}
\label{fig:kuva.png}
\end{figure}
Oheisessa esimerkissä ero noiden kahden if tavan välillä on pieni...
Jos jälkimmäisen parametrin antaa ei validina arvona, esim. tekstinä "suuri", niin oletus toimii ok.
/FIG kuva.png suuri / jälkimmäinen parametri väärin merkkijonona
%/FIG kuva.png suuri
\begin{figure}[p]
\centering
\includegraphics[scale=1.0]{kuva.png}
\caption{kuva.png}
\label{fig:kuva.png}
\end{figure}
Jos yo. sukrossa olisi koodissa:
- if W1 '=' {} ... / siis testataan merkkijonon olemassaoloa
niin lopputuloksena olisi LaTeX-koodissa "scale=suuri" ...
Tälläinen pieni huomio siitä, miten sukro käyttäytyy tyhjän parametrin kanssa... :)