Scacchi: compilare codice con vecchi pacchetti

  • Creatore
    Topic
  • #84793
    Up
    0
    Down
    ::


    Un mio amico mi ha recentemente chiesto se gli davo una mano a risolvere questa griglia
    `
    \documentclass[10pt,twocolumn]{article}
    % This is a LaTeX file generated by Scid.
    % You must have the “chess12” package installed to typeset this file.

    \usepackage{times}
    \usepackage{a4wide}
    \usepackage{chess}
    \usepackage[T1]{fontenc}
    \usepackage{latexsym}

    \setlength{\columnsep}{7mm}
    \setlength{\parindent}{0pt}

    % Macros for variations and diagrams:
    \newenvironment{variation}{\begin{quote}}{\end{quote}}
    \newenvironment{diagram}{\begin{nochess}}{$$\showboard$$\end{nochess}}

    \begin{document}
    {\bf
    $\circ$ WhitePlayer (elow)\\
    $\bullet$ BlackPlayer (elob)\\
    Online Chess (1) \\
    Chess.com\\
    2010.01.24 \hfill 1-0\\
    }
    \begin{chess}{\bf
    1.~e3 e5
    \begin{nochess}{\rm +0.36}\end{nochess}
    2.~Bc4 \$201
    \begin{diagram}
    \board{rnbqkbnr}
    {pppp*ppp}
    { * * * *}
    {* * p * }
    { *B* * *}
    {* * P * }
    {PPPP PPP}
    {RNBQK NR}
    \end{diagram}
    \begin{nochess}{\rm [\%draw arrow,c4,f7,red]Attacca la casa f7 }\end{nochess}
    2. …~Be7
    \begin{nochess}{\rm -0.20}\end{nochess}
    \begin{variation}
    2. …~Nf6 \begin{nochess}{\rm Para l'eventuale matto del barbiere}\end{nochess} 3.~Qf3 e4 4.~Qxe4+ Be7 \end{variation}
    3.~Qh5 \$201
    \begin{diagram}
    \board{rnbqk*nr}
    {ppppbppp}
    { * * * *}
    {* * p *Q}
    { *B* * *}
    {* * P * }
    {PPPP PPP}
    {RNB K NR}
    \end{diagram}
    \begin{nochess}{\rm [\%draw full,f7,red][\%draw arrow,h5,f7,red]}\end{nochess}
    3. …~Nf6 4.~Qxf7\#
    \begin{nochess}{\rm Si subisce il matto del barbiere}\end{nochess}

    }\end{chess}
    {\bf 1-0}
    \begin{center} \hrule \end{center}

    \end{document}
    `
    Come si legge nella nota commentata, il codice ha bisogno dell’arcaico pacchetto “chess12” (1991), non presente su Texlive 2012 e che comunque sono riuscito a scaricare da qui

    Va da sé, però, che, il makefile scarica altrove (=fuori da Texlive) gli stili (.sty) per cui ottengo sempre questo errore:
    `
    Type H for immediate help.

    l.73 \bblstyerror
    `
    Qualcuno può compilare tale codice e dirmi come ha fatto?
    Grazie anticipate

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #84794
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Basta spostare quanto i makefile hanno scaricato, l’intera struttura di cartelle, nel propio albero personale. Vedi l’Arte per sapere cos’è e come si crea, eventualmente, l’albero personale.

        Disponendo già dell’albero personale, suppongo che Make ti consenta di specificare un prefisso in modo che lo scaricamento avvenga nell’albero personale.

        Queste cose, di solito preferisco scaricarmele e installarmele a mano; i makefile sono comodi quando funzionano, ma è difficile metterci el mani dentro. Inoltre non funzionano su certe piattaforme.

      • #84795
        Up
        0
        Down
        ::

        OldClaudio” post=84197… suppongo che Make ti consenta di specificare un prefisso in modo che lo scaricamento avvenga nell’albero personale.

        Eccolo … il makefile e la sua interpretazione mi sembra alquanto criptica. Sarebbe gradito che qualche utente del forum provasse a compilare il codice del precedente post per poter dire al mio amico “si può fare” oppure rinunciaci definitivamente. Parliamo di pacchetti del 1992! Grazie
        `
        # File: Makefile
        # Purpose: automatic generation of documentation and installation
        # of the fonts (at least on UNIX)
        # Author: Piet Tutelaers (internet: rcpt@urc.tue.nl)
        # Version: Febr. 1992
        #

        SHELL = /bin/sh

        #
        # Next definitions should point to the place where the .sty files are
        # stored (INPUTS) and where the .tfm files are (FONTS)
        #
        INPUTS = /usr/local/lib/tex30/inputs
        FONTS = /usr/local/lib/tex30/fonts:/usr/local/lib/tex30/PSfonts:

        #
        # Next definitions should point to the place where the .sty files are
        # installed (DESTINPUTS), the .tfm files (DESTFONTS) and the 300pk
        # files (DESTPK)
        DESTTEX=/usr/local/lib/tex30
        DESTINPUTS= $(DESTTEX)/inputs
        DESTFONTS = $(DESTTEX)/fonts
        DESTPK = $(DESTTEX)/pkfonts

        MFCHESSBASE= mf/chesspieces.mf mf/chessbase.mf
        CHESSMACROS= chess20.300pk chessf10.300pk inputs/chess.sty

        .SUFFIXES: .dvi .ps .300gf .300pk

        all: fonts doc

        doc: TUGboat.ps Symbols.ps tal.ps Kasparov.ps
        @echo “You can send the PostScript files to the printer”

        fonts: chess10.300pk chess20.300pk chess30.300pk chessf10.300pk

        TUGboat.dvi: doc/TUGboat.ltx doc/TUGgame.ltx $(CHESSMACROS)
        (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
        TEXFONTS=fonts:$(FONTS); export TEXFONTS; \
        latex “\batchmode\input TUGboat.ltx” \
        latex “\batchmode\input TUGboat.ltx”)

        Symbols.dvi: doc/Symbols.ltx $(CHESSMACROS)
        (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
        TEXFONTS=fonts:$(FONTS); export TEXFONTS; \
        latex “\batchmode\input Symbols.ltx”)

        tal.dvi: doc/tal.ltx $(CHESSMACROS)
        (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
        TEXFONTS=fonts:$(FONTS); export TEXFONTS; \
        latex “\batchmode\input tal.ltx”)

        Kasparov.dvi: doc/Kasparov.ltx $(CHESSMACROS)
        (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
        TEXFONTS=fonts:$(FONTS); export TEXFONTS; \
        latex “\batchmode\input Kasparov.ltx”)

        .dvi.ps:
        (TEXINPUTS=.:doc:inputs:$(INPUTS); export TEXINPUTS; \
        dvips -o $*.ps $<) .300gf.300pk: gftopk $< chess10.tfm chess10.300gf: mf/chess10.mf $(MFCHESSBASE) (MFINPUTS=mf; export MFINPUTS; \ mf "\mode:=localfont; input chess10") chess20.tfm chess20.300gf: mf/chess20.mf $(MFCHESSBASE) (MFINPUTS=mf; export MFINPUTS; \ mf "\mode:=localfont; input chess20") chess30.tfm chess30.300gf: mf/chess30.mf $(MFCHESSBASE) (MFINPUTS=mf; export MFINPUTS; \ mf "\mode:=localfont; input chess30") chessf10.tfm chessf10.300gf: mf/chessf10.mf $(MFCHESSBASE) (MFINPUTS=mf; export MFINPUTS; \ mf "\mode:=localfont; input chessf10") install: fonts inputs/chess.sty install -m 644 chess20.300pk $(DESTPK) install -m 644 chessf10.300pk $(DESTPK) install -m 644 chess20.tfm $(DESTFONTS) install -m 644 chessf10.tfm $(DESTFONTS) (cd inputs; install -c -m 644 chess.sty $(DESTINPUTS)) clean: rm -f *gf *pk *.ps *.dvi *.aux *.log *.tfm SOURCES = README \ CHANGES12 \ CopyRight \ INSTALLATION \ Makefile \ doc/TUGboat.ltx \ doc/TUGgame.ltx \ doc/boards.ltx \ doc/tal.ltx \ doc/tal.tex \ doc/Kasparov.ltx \ doc/Symbols.ltx \ doc/Symbols.tex \ doc/dutch-tt.tex \ doc/dutch-tt.ltx \ doc/SchaakMaatje.ltx \ inputs/chess.sty \ mf/README \ mf/chessf10.mf \ mf/chessdiag.mf \ mf/chess20.mf \ mf/chessbase.mf \ mf/chesspieces.mf \ mf/chess30.mf \ mf/chessdiag.Xmf \ mf/chess10.mf printsources: enscript -pchess12.ps $(SOURCES) @echo "You can send the chess12.ps to the printer" # DO NOT DELETE THIS LINE -- make depend depends on it. TUGboat.dvi: chess10.300pk chess20.300pk chessf10.300pk `

      • #84796
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Ci ho provato.

          Nel mio albero personale ho creato una cartella chess12/ sotto a

          doc/latex/

          fonts/source/
          fonts/tfm/
          fonts/pk/ljfour/

          tex/latex/

          Ho aperto ed estratto il contnuto del file chess12.tar.gz.

          Ho copiato a mano i file della cartella doc/ nella cartella doc/latex/chess12
          Ho copiato a mano i file della cartella fonts nella cartella fonts/tfm/chess12/
          Ho copiato a amo i file della cartella /inputs nella cartella tex/latex/chess12/
          Ho copiato a mao i file della cartella mf/ nella cartella fonts/source/chess12/
          Ho copiato a mano i file della cartella pkfonts/ nella cartella fonts/ljfour/chess12/

          Ho poi lanciato pdlatex su TestVhess12.tex che è il file che hai allegato al tuo primo messaggio.

          Fallimento! Fallisce, ma non perché il pacchetto chess12 non sia installato, ma perché, pur trovando i vari file necessari dalle cartelle che ho indicato sopra, fa “casino” (perdonami l’espressione triviale) lui stesso, nel senso che non è nemmeno conforme ai suoi stessi file.

          La risposta da dare al tuo amico è quindi che la cosa si potrebbe forse fare, ma non vale la pena di riscrivere tutto il codice, per adattarlo ai tempi moderni.

          Oggi si disponne del pacchetto skak il cui ultimo aggiornamento risale al 2006; usa font vettoriali con pdlatex e, forse, è anche compatibile con xelatex, visto che i font OpenType per gli scacchi sono distribuiti inseme agli altri OpenType del sistema TeX.

          Comunque leggi, se vuoi, la documentazione di skak dando da terminale il comando texdoc skak; ricorda che in una distribuzione TeXLive completa il pacchetto skak è già installato e usabile immediatamente senza nessuna installazione aggiuntiva.

        • #84797
          Up
          0
          Down
          ::


          Ti ringrazio, OldClaudio.
          Appena sento il mio amico, gli passo direttamente il link della tua esaurientissima risposta. Io, comunque, un’idea me la son fatta. Quel portale, e ce ne sono tanti altri simili in giro, non fa altro che creare in automatico un codice .tex che utilizza degli standard obsoleti, per cui di fatto il listato è incompilabile.
          Qualcosa del genere viene sviluppato dal notissimo pacchetto opensource Geogebra; di recente hanno pure creato un codice .tex per figure in grafica vettoriale Asymptote, ma il risultato, in termini di rendering, è veramente penoso! Addirittura un diagramma cartesiano con 4 frecce, due per le ascisse e due per le ordinate.

          Tornando a Chess , i codici “moderni” funzionano, eccome! Ecco un esempio:
          `
          \documentclass{article}
          \usepackage{skak}

          \begin{document}
          \section*{Chess}

          \newgame
          \mainline{1.e4 e5 2. Nf3 Nc6 3.Bb5}
          \[ \showboard \]
          \mainline{3…a6} Rarely used these days,
          \variation{3…Nf6} is more in fashion since blah blah… \\
          \mainline{4.Ba4}
          \[ \showboard \]

          \end{document}

          `Mille grazie e … alla prossima!

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

      Go to top