Produzione di pseudocodice “personalizzato” con latex

  • Creatore
    Topic
  • #69939
    Up
    0
    Down
    ::


    Salve a tutti quanti! Mi chiamo damiano e sono uno studente di 4° superiore; frequento un itis informatico; uso latex da circa una settimana. Lavoro con miktex su windows e texlive su linux.

    Tenterò di spiegare brevemente la mia situazione, tentando di essere il più chiaro possibile, anche per quello che riguarda i non programamtori.
    Il mio professore di informatica consegna a tutti gli studenti di 3à 4à e 5à dei fascicoli contenete appunti che spiegano come realizzare i programmi in laboratorio (pseudocodifica). Questi appunti sono attualmente realizzati con carta e penna e sucessivamente fotocopiati. Il mio obbiettivo è quello di permettere una trasposizione di tutti questi fascicoli in formato digitale, per migliorarne la versatilità e la qualità.

    Ora questo insegnante (haime) non utilizza metodi di pseudocodifica “convenzionale”, per la quale latex ha già l’apposito pacchetto algorithmic, ma stabilisce uno standard tutto suo, il quale prevede una serie di elementi grafici che incornicino la pseudocodifica.
    Allego immagini per referenza: http://i.imgur.com/WRMd1.png http://i.imgur.com/o0fmw.png http://i.imgur.com/1Tso8.png
    Prima di passare alla scrittura di un apposito modulo latex intendo produrre una o due pseudocodifiche descrivendole manualmente.

    Qual’è il metodo migliore per produrre identici elementi grafici di questo genere? Sono sufficenti gli strumenti incorporati in una distribuzione latex (tabelle, quadratini, freccette) o è più conveniente appoggiarsi ad una libreria per la grafica quale, es: tikz? A quale libreria appoggiarsi?

    Ciao!

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #69940
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        damiano” post=69119Salve a tutti quanti! Mi chiamo damiano e sono uno studente di 4° superiore; frequento un itis informatico; uso latex da circa una settimana. Lavoro con miktex su windows e texlive su linux.

        Tenterò di spiegare brevemente la mia situazione, tentando di essere il più chiaro possibile, anche per quello che riguarda i non programamtori.
        Il mio professore di informatica consegna a tutti gli studenti di 3à 4à e 5à dei fascicoli contenete appunti che spiegano come realizzare i programmi in laboratorio (pseudocodifica). Questi appunti sono attualmente realizzati con carta e penna e sucessivamente fotocopiati. Il mio obbiettivo è quello di permettere una trasposizione di tutti questi fascicoli in formato digitale, per migliorarne la versatilità e la qualità.

        Ora questo insegnante (haime) non utilizza metodi di pseudocodifica “convenzionale”, per la quale latex ha già l’apposito pacchetto algorithmic, ma stabilisce uno standard tutto suo, il quale prevede una serie di elementi grafici che incornicino la pseudocodifica.
        Allego immagini per referenza: http://i.imgur.com/WRMd1.png http://i.imgur.com/o0fmw.png http://i.imgur.com/1Tso8.png
        Prima di passare alla scrittura di un apposito modulo latex intendo produrre una o due pseudocodifiche descrivendole manualmente.

        Qual’è il metodo migliore per produrre identici elementi grafici di questo genere? Sono sufficenti gli strumenti incorporati in una distribuzione latex (tabelle, quadratini, freccette) o è più conveniente appoggiarsi ad una libreria per la grafica quale, es: tikz? A quale libreria appoggiarsi?

        Ciao!

        Ciao,
        dai un occhiata al pacchetto tcolorbox ( http://mirrors.ctan.org/macros/latex/contrib/tcolorbox/tcolorbox.pdf ), potrebbe facilitare la costruzione dei riquadri. Per il contenuto, un po’ di lavoro dovrebbe risolvere.
        Buon lavoro.
        R.

      • #69941
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::

          dai un occhiata al pacchetto tcolorbox ( mirrors.ctan.org/macros/latex/contrib/tcolorbox/tcolorbox.pdf ), potrebbe facilitare la costruzione dei riquadri. Per il contenuto, un po’ di lavoro dovrebbe risolvere.

          C’è un motivo per il quale non suggerisci di usare texdoc (almeno con TeX Live) piuttosto che indirizzare su un mirror di CTAN?

          Il pacchetto mi sembra bello, specialmente per quel che vuol fare Damiano; peccato che la documentazione sia in tedesco…:sad:

        • #69942
          Up
          0
          Down
          ::

          OldClaudio” post=69132

          dai un occhiata al pacchetto tcolorbox ( mirrors.ctan.org/macros/latex/contrib/tcolorbox/tcolorbox.pdf ), potrebbe facilitare la costruzione dei riquadri. Per il contenuto, un po’ di lavoro dovrebbe risolvere.

          C’è un motivo per il quale non suggerisci di usare texdoc (almeno con TeX Live) piuttosto che indirizzare su un mirror di CTAN?

          Il pacchetto mi sembra bello, specialmente per quel che vuol fare Damiano; peccato che la documentazione sia in tedesco…:sad:

          L’autore ha promesso una versione inglese della documentazione a breve. Speriamo.

          Ciao
          Enrico

        • #69943
          Up
          0
          Down
          ::


          Grazie per le risposte!

          Il pacchetto che mi avete suggerito sarà il punto di riferimento per lo sviluppo del mio progetto.

          Ora mi rimane un dubbio, che google ha saputo soddisfare in maniera parziale, visto che ho trovato solo guide introduttive o appunti sparsi.
          Quali sono le migliori guide e documenti sullo scripting in latex, per chi sà già programmare?

          Ciao, damiano.

        • #69944
          Up
          0
          Down
          ::

          damiano” post=69146Grazie per le risposte!

          Il pacchetto che mi avete suggerito sarà il punto di riferimento per lo sviluppo del mio progetto.

          Ora mi rimane un dubbio, che google ha saputo soddisfare in maniera parziale, visto che ho trovato solo guide introduttive o appunti sparsi.
          Quali sono le migliori guide e documenti sullo scripting in latex, per chi sà già programmare?

          Prova TeX by Topic, se sai l’inglese (“texdoc texbytopic” dal terminale) e, naturalmente, gli Appunti. Ma non sono per principianti: TeX non è un linguaggio di scripting.

          Ciao
          Enrico

        • #69945
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::

            OldClaudio” post=69132C’è un motivo per il quale non suggerisci di usare texdoc (almeno con TeX Live) piuttosto che indirizzare su un mirror di CTAN?

            Si giusto.
            Il fatto è che al momento della risposta avevo una TeX Live 2010 che non dispone del pacchetto. Io intanto non mi ricordavo bene il nome ed allora ho fatto una verifica su CTAN. Poi è stato un pensiero impilicito quello di riportare il link.

            OldClaudio” post=69132Il pacchetto mi sembra bello, specialmente per quel che vuol fare Damiano; peccato che la documentazione sia in tedesco…:sad:

            Si ma si capisce lo stesso dagli esempi di codice.
            Mi sono interessato a questo pacchetto perché mi servivano dei box per la guida tematica sulla riga di comando.

            Un saluto.
            R.

          • #69946
            Up
            0
            Down
            ::


            Ciao a tutti e grazie, siete grandissimi! Non oso immaginare a che punto sarei senza di voi 😀

            Stò leggendo manuali di TeX e LaTeX, continuando a lavorare al pacchetto; per quanto riguarda l’indentazione lo sviluppo è ancora ad uno stato embrionale, ma per quanto riguarda le “cornici” più esterne stò riuscendo a risolvere i problemi, pezzo per pezzo.

            `\documentclass{article}

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

            \usepackage{tabularx}
            \usepackage{array}
            \usepackage{amssymb}

            \usepackage{docfz}

            \begin{document}

            \section{Colored boxes}
            My box. My box with my title. Upper part of my box.Lower part of my box. I can do this also with a title. Lower part of my box. Now, we play hide and seek. Where is the lower part? I'm invisible until you find me. This is a \LaTeX\ example:

            Fungal Growth is an extremely versatile spell, allowing the Zerg player to dictate the battlefield positions in a similar manner to the Sentry's Force Field spell. For economic harassment, two Fungal Growths will kill any worker units. When used for positioning, Fungal Growth forces the opposing player to hold their ground until the effect expires, or risk splitting their army. This provides the casters army a brief time frame to jockey for a superior position. When Fungal Growth is employed for defense, it can block enemy forces from passing through choke points or ramps.
            {\tt
            \\[0.5cm]
            \begin{tabularx}{\textwidth}{p{0.6cm}@{}|@{}l@{:}X|@{}p{0.6cm}}
            \cline{2-3}
            & \multicolumn{2}{l|}{Procedura PreparazioneMazzoDiCarte} & \\ \cline{2-3}
            $\Longleftarrow$ & $\square$ Basi&TVettoreStackCarte & \\
            $\Longleftarrow$ & $\square$ Tabellone&TVettoreStackCarte & \\
            $\Longleftarrow$ & $\square$ Riserva&TListaCarte & \\ \cline{2-3}
            & \multicolumn{2}{l|}{< Dati locali >} & \\ \cline{2-3}
            & \multicolumn{2}{l|}{\begin{minipage}{0.70\columnwidth}
            \vspace{3pt}
            \fbox{PreparaMazzoDiCarte(Mazzo)} \\
            \fbox{MescolareMazzo(Mazzo)} \\
            Tabellone = \fbox{TabelloneOttoVia(Mazzo)} \\
            Riserva = \fbox{ListaUltime4Carte(Mazzo)} \\
            \fbox{InizializzazioneVettoreDiStack(Basi, 4)} \\
            SceltaCartaEffettuata = Falso \\
            NumeroMosse = 0\vspace{3pt} \end{minipage}} & \\ \cline{2-3}
            \end{tabularx}
            \\[0.5cm]
            }

            Until Patch 1.4, Phoenix were not a safe opening against a 4 Warpgate Rush. However, Patch 1.4 allows force fields to essentially negate a 4 gate rush, so Phoenix are now a viable opening in PvP. Once the threat of a 4 gate ends, Phoenix, or Stargate builds in general, are a good counter to Robotics tech. Most Protoss tend to tech Robotics Facility units to get detection in case of Dark Templar, which leads to compositions featuring Immortals and Colossi. In these armies, Protoss spend the vast majority of their gas building Robo units and sink their minerals into Zealots.
            \end{document}
            `

            Ho incluso testo non rilevante per rendere visibile i margini della pagina.
            Ora ho in serbo per voi una lista di domande:
            Come posso fare a costruire una colonna contenente test giustificato a destra con una dimensione fissa? (La dimensione 0.6cm dell’esempio è calibrata procedendo per tentativi)
            Come faccio a includere del testo negli argomenti nel comando \multicolumn in un ambiente definito con \newenvironment?
            C’è un modo di definire la larghezza della minipage in maniera più elegante di quella proposta?ù
            Come posso spaziare quando occorre un comando \cline ? Il metodo che ho trovato su internet funziona solo in assenza di righe verticali nella tabella.

            Ciao e ancora grazie!

            ps: potete vedere lo stato attuale dei sorgenti su https://github.com/stoffie/docfz , qualsiasi commento è apprezzatissimo.

          • #69947
            Up
            0
            Down
            ::


            Ti complichi la vita per niente. 🙂 La tua è una tabella a una colonna, con una sottotabella a due.

            `
            \newcommand{\arrowsquare}{\makebox[0pt][r]{$\Longleftarrow$\quad}$\square$}

            \begin{document}

            \begin{center}
            \ttfamily
            \begin{tabular}{|l|}
            \hline
            Procedura PreparazioneMazzoDiCarte\\
            \hline
            \begin{tabular}{@{}l@{:}l@{}}
            \arrowsquare\ Basi&TVettoreStackCarte\\
            \arrowsquare\ Tabellone&TVettoreStackCarte \\
            \arrowsquare\ Riserva&TListaCarte\\
            \end{tabular}\\
            \hline
            < Dati locali >\\
            \hline
            \fbox{PreparaMazzoDiCarte(Mazzo)\strut} \\
            \fbox{MescolareMazzo(Mazzo)\strut} \\
            Tabellone = \fbox{TabelloneOttoVia(Mazzo)\strut} \\
            Riserva = \fbox{ListaUltime4Carte(Mazzo)\strut} \\
            \fbox{InizializzazioneVettoreDiStack(Basi, 4)\strut} \\
            SceltaCartaEffettuata = Falso \\
            NumeroMosse = 0\\
            \hline
            \end{tabular}
            \end{center}
            `
            Per spaziare le righe usa [tt]\\[3pt][/tt] o qualcosa del genere.

            Ciao
            Enrico

          • #69948
            Up
            0
            Down
            ::


            Ciao Enrico, celere come sempre!
            In effetti il metodo che proproni è più semplice, però devo specificare incombe un problema: lo standard del proff vorrebbe che quadrato e freccetta si incontrassero sulla linea verticale della colonna, come nella immagini. Con il mio metodo riesco ad avvicinarle parecchio, ed invece con il tuo sono parecchio distanti. Scommetto che sei in grado di risolvere.
            Ancora grazie di tutto!

          • #69949
            Up
            0
            Down
            ::

            damiano” post=70842Ciao Enrico, celere come sempre!
            In effetti il metodo che proproni è più semplice, però devo specificare incombe un problema: lo standard del proff vorrebbe che quadrato e freccetta si incontrassero sulla linea verticale della colonna, come nella immagini. Con il mio metodo riesco ad avvicinarle parecchio, ed invece con il tuo sono parecchio distanti. Scommetto che sei in grado di risolvere.
            Ancora grazie di tutto!

            `
            \newcommand{\arrowsquare}{%
            \makebox[0pt][r]{$\Longleftarrow$\hspace{\tabcolsep}\hspace{-\arrayrulewidth}}$\square$}
            `

            Ciao
            Enrico

          • #69950
            Up
            0
            Down
            ::


            Ciao enrico, grazie per lo snipper di codice che mi hai suggerito e che m’appresto a studiare per comprendere.
            Questo però non si può dire sia il codice giusto, provo a modificarlo in modo a da far incontrare freccietta e quadratino, quanto più possibile, sulla riga della colonna.

          • #69951
            Up
            0
            Down
            ::

            damiano” post=70890Ciao enrico, grazie per lo snipper di codice che mi hai suggerito e che m’appresto a studiare per comprendere.
            Questo però non si può dire sia il codice giusto, provo a modificarlo in modo a da far incontrare freccietta e quadratino, quanto più possibile, sulla riga della colonna.

            Non ho idea di che cosa si voglia ottenere, e il risultato è bruttissimo:
            `\newcommand{\arrowsquare}{%
            \makebox[0pt][r]{$\Longleftarrow$\hspace{\tabcolsep}\hspace{-\arrayrulewidth}}%
            \hspace{-\arrayrulewidth}\hspace{-\tabcolsep}\kern-.02em$\square$}`
            L’ultimo \kern va valutato un po’ a occhio, perché dipende dalla forma di \square`.

            Ciao
            Enrico

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

        Go to top