Newsgroup: it.comp.software.tex
Titolo: Comando tikz per scritta in rounded box

Ciao a tutti,
per simulare i bottoni di un'interfaccia grafica di un software, ho 
creato, attraverso la libreria tikz, un comando che incornicia in un box 
con bordi arrotondati l'etichetta del bottone.
(Avevo la necessità di utilizzare un colore di sfondo ed \ovalbox mi 
pare non lo supporti...)
Conosco il package keystroke, che è ottimo per emulare i tasti di una 
vera tastiera, ma nel mio caso è più realistico il comando riportato 
nell'esempio in basso.
Funziona bene e l'effetto è gradevole ma non mi soddisfa l'allineamento 
rispetto al testo vicino.
Infatti come si potrà verificare dall'esempio il "bottone" è posto 
leggermente in alto e a destra rispetto alla riga del paragrafo.
C'è un modo per allinearlo al meglio?
Codice minimale:
---------------------------------------------
% begin preamble
\documentclass[12pt,a4paper,twoside]{book}
\usepackage{tikz}
% end preamble
\newcommand{\isbutton}[1]{
\tikzstyle{fancytitle} =[fill=gray, text=white]
\begin{tikzpicture}
\node[fancytitle, rounded corners]{\textsf{#1}};
\end{tikzpicture}%
}
\begin{document}
Questo è un test con il nuovo comando \isbutton{Test} per esaminarne il 
funzionamento reale.
\end{document}
-----------------------------------------------
Grazie in anticipo a tutti.
-jospic

 scrive:

\newcommand{\isbutton}[1]{\tikz[baseline]
  \node[fill=gray, text=white, rounded corners, 
    anchor=text]{\textsf{#1}};}
Nota l'uso di \tikz invece dell'ambiente tikzpicture. Nel tuo
codice hai comunque ben tre spazi spuri:
(1) dopo la graffa di apertura; (2) dopo la prima quadra chiusa;
(3) dopo il ;
Ciao
Enrico

 Enrico
Non si finisce mai di imparare... Come si fa a capire dove sono inseriti 
"spazi puri"?
Molte grazie.
-jospic

 scrive:

Meglio "spuri" nel senso di indesiderati.
Quando dai una definizione stai dicendo a TeX di eseguire una certa
sostituzione quando incontra il comando che definisci: con
\newcommand{\isbutton}[1]{...}
dici appunto che quando TeX incontra \isbutton deve cercarne l'argomento
e poi sostituire il tutto con ciņ che sta tra le graffe (con l'argomento
al posto di ogni #1 che compare).
Se scrivi
\newcommand{\isbutton}[1]{
  ...}
TeX sostituirą "<spazio>..." perché quello spazio non viene ignorato
in lettura. Dirai che non vedi spazi; ma la regola generale dice che
un fine riga viene convertito in uno spazio. La stessa regola garantisce
che spazi a inizio riga siano ignorati, quindi puoi rientrare il codice
come ti pare.
Dunque, a meno che tu non voglia proprio quello spazio, devi 
"commentarlo":
\newcommand{\isbutton}[1]{%
  ...}
Occorre mettere % alla fine di ogni riga in una definizione? No; il
commento č inutile se la riga termina con un comando, perché gli spazi
dopo i nomi di comando sono ignorati gią in fase di lettura del file
tex. Anche nella definizione
\newcommand{\isbutton}[1]{\tikz[baseline]
   \node[fill=gray, text=white, rounded corners,
     anchor=text]{\textsf{#1}};}
non occorre "mascherare" i fine riga perché gli spazi negli ambienti
di tikz sono ignorati (se non sono in posti dove si deve scrivere
testo).
Ciao
Enrico

 Enrico
Chiarissimo. Molte, molte grazie.
-jospic