Re: Scritta DRAFT in diagonale grigio chiara sul foglio

#83061
robitex
Amministratore del forum
    Up
    0
    Down
    ::

    OldClaudio” post=83670

    Poi, in realtà non è TikZ che inserisce il capoverso: se si toglie il secondo comando il testo scende comunque.

    Sì,l’ho capito, ma il problema non è solo \tikz; anche la prima scatola, benché di dimensioni nulle, impegna una riga; ecco perché il testo scende.

    Buona Pasqua a te e a tutti i frequentatori del Forum

    Claudio

    Innanzi tutto rinnovo i miei auguri di Buona Pasqua.
    Per la sfida propongo il seguente codice che utilizza alcune primitive di pdftex, in particolare \pdfsetmatrix che imposta la matrice di traformazione.
    Se vi inseriamo i coseni direttori della diagonale, si riesce a ruotare il materiale contenuto fino a \pdfrestore, che ripristina le impostazioni geometriche fissate con \pdfsave.
    Il seno e coseno dell’angolo li calcolo ancora con il modulo fp di LaTeX3.
    Tuttavia ci sono tre problemi:
    Il primo che affliggeva anche le soluzioni della classe precedente (quelle con il calcolo dell’arcotangente), è lo spostamento verso il basso del testo, così che la scritta non risulta perfettamente disposta sotto il testo.

    Il secondo problema è che non so ancora bene trattare il materiale tra \pdfsave e \pdfrestore e la scritta Draft pur se bel allineata on la diagonale della gabbia del testo, se ne va per conto suo disponendosi dove gli pare.

    Il terzo problema è che non c’è verso ma il secondo parametro numerico della matrice, non può essere l’espansione di \fp_use:N perché altrimenti non funziona, chissà perché invece gli altri tre possono esserlo.

    Ok, ho finito, non mi resta che postarvi il codice e salutarvi:
    `% !TEX program = pdflatex
    % !TEX encoding = UTF-8 Unicode

    \documentclass[a4paper]{article}
    \usepackage{graphicx}
    \usepackage{xcolor}
    \usepackage{kantlipsum}

    \ExplSyntaxOn

    \fp_new:N \g_diag
    \fp_set:Nn \g_diag { ( \textwidth^2 + \textheight^2 )^{0.5} }

    \fp_new:N \g_sin
    \fp_new:N \g_cos

    \fp_set:Nn \g_sin { \textheight / \g_diag }
    \fp_set:Nn \g_cos { \textwidth / \g_diag }

    \NewDocumentCommand { \mtrxdataset } { } {
    \pdfsetmatrix {
    \fp_use:N \g_cos ~ 0.866 ~
    -\fp_use:N \g_sin ~ \fp_use:N \g_cos
    }
    }

    \ExplSyntaxOff

    \def\draftonpage{%
    \hbox to 0pt {%
    \vbox to 0pt {%
    \pdfsave
    \mtrxdataset
    \hbox to \textwidth {%
    \hfil
    \scalebox{8}{\textcolor{gray!75}{Draft}}%
    \hfil
    }\pdfrestore
    \vss}%
    \hss}%
    }

    \begin{document}
    \draftonpage

    \kant
    \end{document}
    `

    Go to top