Sukrojen opiskelua - if W1 = tyhjä numeerinen vs. merkkijono

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Sukrojen opiskelua - if W1 = tyhjä numeerinen vs. merkkijono

Petri Palmu
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... :)
Reply | Threaded
Open this post in threaded view
|

Re: Sukrojen opiskelua - if W1 = tyhjä numeerinen vs. merkkijono

Kimmo Vehkalahti
Administrator
Tuo (empty) liittyy vain W1-paikan testaamiseen, muissa (W2 jne.) käytetään "".