Segna lettera realizzato con TikZ

  • Creatore
    Topic
  • #83968
    Up
    0
    Down
    ::


    Ciao a tutti,

    in un libretto che sto realizzando avrei la necessità di inserire ad ogni pagina un segna lettera. Quello che ho fatto finora è:
    `\documentclass[a5paper,11pt]{memoir}

    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[greek,italian]{babel}

    \usepackage{tikz}
    \usetikzlibrary{calc}

    % Segna-lettera pagine pari
    \newcommand{\segnaLetteraP}[2]{%
    \begin{tikzpicture}[remember picture,overlay]
    % definizione e macro
    \def\l{1}
    \pgfmathsetmacro{\rappAureo}{(1+sqrt(5))/2}
    \pgfmathsetmacro{\h}{\l/\rappAureo}
    % spazio fra segna-lettera consecutivi
    \def\spazioFraSegnaLettera{.15}
    % numero di progressione
    \def\nProgressivo{#1}
    \pgfmathsetmacro{\nReale}{\nProgressivo-1}
    \pgfmathsetmacro{\avanzamentoSL}{\h+\spazioFraSegnaLettera}

    % coordinate
    \coordinate (northWest) at (current page.north west);

    \coordinate (a) at ($(northWest)+(\l,-3.65)+(0,-\nReale*\avanzamentoSL)$);
    \coordinate (b) at ($(a)+(-\l,0)$);
    \coordinate (c) at ($(b)+(0,-\h)$);
    \coordinate (d) at ($(c)+(\l,0)$);

    % testo
    \shade

    (a) — (b) — (c) — (d) — cycle;
    \coordinate [label={0:{\sffamily\textbf{#2}}}] (testo) at ($(c)!.5!(b)$);
    \end{tikzpicture}
    }

    \begin{document}

    Testo.

    \newpage

    \segnaLetteraP{1}{A}

    \end{document}`
    L’esempio l’ho fatto per la pagina pari, ma ho creato un comando analogo per le pagine dispari. Ora, il segna lettera che realizzo è molto simile a quello che viene usato nei dizionari e, poiché anche il mio libretto può concettualmente essere assimilato a un dizionario, mi piacerebbe automatizzare il mio comando. Comunque, per il momento mi basterebbe anche aggiungere un argomento al comando [tt]\segnaLetteraP[/tt] che rappresenti il numero di pagina in cui voglio far eseguire il comando. Mi velocizzerebbe molto il lavoro. C’è qualcuno che sa come potrei fare?

    Grazie mille e buona giornata,
    Marco.

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #83969
      franen
      Partecipante
        Up
        0
        Down
        ::


        Non so se ho capito, tu vorresti un [tt]\segnaLetteraP{2}{B}[456][/tt] che inserisca il segnalettera B a pagina 456?

        Fran

      • #83970
        Up
        0
        Down
        ::


        Ciao Francesco,

        franenNon so se ho capito, tu vorresti un [tt]\segnaLetteraP{2}{B}[456][/tt] che inserisca il segnalettera B a pagina 456?

        Esattamente! (Andrebbe bene anche [tt]\segnaLetteraP{2}{B}{456}.[/tt])

        Ciao e grazie,
        Marco.

      • #83971
        franen
        Partecipante
          Up
          0
          Down
          ::


          Non riesco a immaginarmi bene il semso della cosa… Cioè impostare a mano qualcosa che potrebbe poi dover essere spostato, se per esempio aggiungi dei contenuti prima.
          A ogni modo, inserissi le unghie con fancyhdr mi verrebbe in mente di usare un condizionale tipo \ifnum{page}… per stampare qualcosa solo a pagina X. (con le solite limitazioni sull’affidabilità di questo sistema).
          in passato per stampare le ungie avevo associato al comando \chapter un contatore che mi serviva per gestire lo spostamento delle unghie lungo la direzinoe y e il contenuto delle unghie stesse era l’argomento di \chapter. Quindi tutto automatico, con picture…
          Non saprei come altro aiutarti. Per cultura personale, vedi qui: http://tex.stackexchange.com/questions/57031/how-to-set-a-letter-to-the-margin-of-the-page-and-position-it-vertically-accordi

          Fran

        • #83972
          Up
          0
          Down
          ::


          Ciao Francesco,

          grazie mille della risposta! A me andrebbe bene anche usare [tt]fancyhdr,[/tt] ma vedo un problema: se in una pagina ci sono alcune voci che iniziano con la A e poi vi è la prima che inizia con la B, vorrei avere sia l’unghia di A che quella di B. Non solo, le unghie le vorrei esattamente al margine estremo della pagina, proprio come si ottiene nell’esempio che ho mostrato.

          Ciao e grazie,
          Marco.

        • #83973
          franen
          Partecipante
            Up
            0
            Down
            ::


            Beh dai, se il problema è qui credo che lo si risolva in fretta. Io (che devo ancora trovare la voglia di mettermi a studiare seriamente TikZ) farei così:
            – una bella studiata agli articoli di Claudio sui Mark (ArsTeXnica dell’anno scoro mi pare) e sul suo dizionario
            – gestirei le unghie con i mark (anche senza fancyhdr, guarda dictionarySCR)
            – per il problema delle doppie unghie fare una verifica di uguaglianza fra l’iniziale della prima parola e di quella dell’ultima (che sono salvate come due mark). Se sono uguali, stampo solo un’unghia, se son diverse, ne stampo due. Se sulla stessa pagina hai aprole con tre iniziali diverse…. auguri 🙂 (comunque io credo che taglierei la testa al toro e metterei un \pagebreak quando cambia lettera iniziale).

            Tutto questo in teoria, perdonami ma ora non posso mettermi a fare delle prove.

            Fran

          • #83974
            Up
            0
            Down
            ::


            Ciao Francesco,

            grazie mille! Vedrò di vedere quanto mi hai consigliato e di attingere dalla classe dictionarySCR per quel comando. Credo che il caso di tre voci con tre iniziali non mi capiterà proprio!

            franenTutto questo in teoria, perdonami ma ora non posso mettermi a fare delle prove.

            Ci mancherebbe! 🙂 Ora ho diverse in più di prima strade da provare a percorrere.

            Grazie ancora e ciao,
            Marco.

          • #83975
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              dictionarySCR era una vecchia classe, nell’ultimo meeting ho presentato altre cose relative al dizionario, e nel sito GuIT, nella sezione ArsTeXnica ci dovrebbe essere anche la presentazione che ho fatto al meeting di Napoli; l’ultima slide contene un indirizzo web che permette di scaricare un grosso zip che contiene anche la nuova classe e dove il problema delle unghie è risolto in modo corretto; per altro, come succede nei dizionari soliti, le unghie sono sulle pagine di destra; la questione del dizionario presenta anche il problema delle intestazioni dove entrano in gioco i mark; quindi la questione dei mark è un po’ diversa da quella delle unghie. In compenso le unghie sono traslate in asso via via che aumenta il “numero del “capitolo” cioè del gruppo di voci che cominciano con la stessa lettera; ovviamante ogni nuova lettera comincia una nuova pagina come succede in ogni dizionario che non sia un dizionarietto tascabile.

            • #83976
              Up
              0
              Down
              ::


              Ciao Claudio,

              intanto grazie della risposta. In quest’altra discussione hai fatto riferimento al link di cui, credo, stai parlando ora. Lì si trova una presentazione dal titolo “Una classe per dizionari tematici”, realizzata da te e Heinrich Fleck per il “GuIT meeting” del 2012. Nell’ultima slide c’è, in effetti, un link. Quello che si trova, però, non riguarda le nuove classi. Forse quella di cui parli tu non è ancora disponibile a chi non è un socio del GuIT.

              Grazie e ciao,
              Marco.

            • #83977
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                A me non risulta che il file scaricabile da quel link, Astro_Dizionario_Sorgenti_.zip non contenga le classi che ho indicato.

                Visto che quel grosso file di 16MiB contiene un largo “sample” di composizione di una parte del Dizionario di Astronomi, e che il file ,zip contiene tutti i file necessari per ricompilarlo, esso, per forza di cose, contiene alche la classe e i file accessori, compresa una buona dose di bellissime immagini a definizione abbastanza alta.

                L’unica cosa che è parzialmente falsa in quel che ho detto è che la classe si chiama dictionary.cls, e non dictionarySCR.cls, poiché questa è una vecchia versione. Questa affermazione è vera nel senso che è vecchia rispetto a quella su cui sto lavornado da ottobre scorso, è falsa nel senso che è l’unica resa disponibile ai frequentatori del forum, che non possono sapre che non è così vecchia da doveressere buttata via. Me ne scuso.

                dictionarySCR.cls contiene tutto quello che ti serve vedere per vedere se riesci a implementare una variante che vada bene per le tue necessità. Il documento dictionarySCR.pdf ne costituisce la documentazione.

                Claudio

              • #83978
                Up
                0
                Down
                ::


                Ciao Claudio,

                In effetti l’avevo scaricato, ma leggendo dictionarySCR pensavo non fosse quello a cui ti riferivi. Ora ho capito. Sicuramente cercherò qualcosa che mi possa servire.

                Grazie e ciao,
                Marco.

            Visualizzazione 9 filoni di risposte
            • Devi essere connesso per rispondere a questo topic.

            Go to top