Risposte nei forum create
-
AutoreRisposte
-
::
Ciao.Ho provato, per curiosità, a compilare un file con il tuo preambolo e ho ottenuto il seguente avvertimento:
`
…
(ucs) You seem to have loaded inputencoding utf8
(ucs) (LaTeX kernel UTF-8) instead of utf8x (ucs.sty UTF-8).
(ucs) Probably you are compiling a document written for a
(ucs) pre-august-2004 ucs.sty.
…
`Sostituendo \usepackage[utf8]{inputenc} con \usepackage[utf8x]{inputenc} non dovrebbero più esserci problemi.
Claudio
::
Grazie Antonio.Ora la numerazione è corretta. Segnalo solo che, numerando le righe di codice (passando numbers=left come opzione a \lstset), per gli algoritmi la numerazione delle righe è del tipo a1, a2, …
Ho commentato la riga\renewcommand*\thelstnumber{a\@arabic\c@lstnumber}
e la cosa va a posto. Ottengo degli avvisi (come indicato da te nel commento che precede la riga incriminata), ma sapendone la causa la cosa non mi disturba.
Mille grazie e buona giornata.
Claudio
::
Ciao Antonio.Inserendo il tuo codice in un mio documento ho notato che qualcosa non funziona con il contatore per gli algoritmi. Ho modificato il tuo codice d’esempio come segue per evidenziare il problema (in pratica: l’algoritmo 1.1. viene etichettato con 1.2).
`\documentclass[10pt,a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}\usepackage{listings,hyperref}
\usepackage{etoolbox} % ci serve per \patchcmd, vedi sotto\lstset{basicstyle=\small\ttfamily,columns=fullflexible}
\renewcommand*{\lstlistingname}{Listato}
\renewcommand*{\lstlistlistingname}{Elenco dei listati}
\newcommand*{\lstalgorithmname}{Algoritmo}
\newcommand*{\lstlistalgorithmname}{Elenco degli algoritmi}\makeatletter
% Definiamo il contatore da usare per gli algoritmi, in maniera
% equivalente a quello che fa listings.
% Quello predefinito di listings (cioè lstlisting) viene lasciato per
% i listati.
\AtBeginDocument{
\lst@ifnumberbychapter
\newcounter{lstalgorithm}[chapter]
\gdef\thelstalgorithm
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@lstalgorithm}
\else
\newcounter{lstalgorithm}
\gdef\thelstalgorithm{\@arabic\c@lstalgorithm}
\fi}
% Quando viene scritto un algoritmo, specifichiamo di salvarlo nel
% file loa (anziché lol, dove lasciamo i listati) e di usare il
% contatore lstalgorithm (invece di lstlisting).
\let\lst@MakeCaptionForAlg\lst@MakeCaption
\patchcmd\lst@MakeCaptionForAlg
{\addcontentsline{lol}{lstlisting}}
{\addcontentsline{loa}{lstalgorithm}}
{}{\errmessage{patch failed}}
% Il blocco che segue è duplicato di quello precedente: è giusto così! 🙂
\patchcmd\lst@MakeCaptionForAlg
{\addcontentsline{lol}{lstlisting}}
{\addcontentsline{loa}{lstalgorithm}}
{}{\errmessage{patch failed}}
\patchcmd\lst@MakeCaptionForAlg
{lstlisting}
{lstalgorithm}
{}{\errmessage{patch failed}}
% Se è stato caricato tocloft possiamo usare il comando che offre…
\@ifpackageloaded{tocloft}{
\newlistof{algorithms}{loa}{\lstlistalgorithmname}
}{
% …altrimenti facciamo a mano.
\newcommand*\listofalgorithms{\bgroup
\let\contentsname\lstlistalgorithmname
\let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{loa}}%
\tableofcontents \egroup}
}% Per comodità (e analogia con figure e tabelle) chiamiamo i comandi
% \listoflistings e \listofalgorithms.
\let\listoflistings\lstlistoflistings
% Impostiamo per li algoritmi la stessa formattazione dei listati:
\let\l@lstalgorithm\l@lstlisting\lstnewenvironment{algoritmo}[1][]{
\let\lst@MakeCaption\lst@MakeCaptionForAlg
% Giusto per evitare l'avviso sulle etichette duplicate:
\renewcommand*\thelstnumber{a\@arabic\c@lstnumber}
\let\lstlistingname\lstalgorithmname
\lstset{#1}
}{}\lstnewenvironment{listato}[1][]{\lstset{#1}}{}
\makeatother% Correzione per fare in modo che nella lista dei listati, i listati di capitoli
% diversi vengano separati da uno spazio supplementare
\makeatletter
\let\my@chapter\@chapter
\renewcommand*{\@chapter}{%
\addtocontents{lol}{\protect\addvspace{10pt}}%
\addtocontents{loa}{\protect\addvspace{10pt}}%
\my@chapter}
\makeatother\begin{document}
\begingroup
\let\clearpage\relax
\listoflistings
\bigskip
\listofalgorithms
\endgroup\vfill
\chapter{UN0}
\begin{listato}
\renewcommand*{\lstlistingname}{Listato}
\end{listato}\begin{listato}
\renewcommand*{\lstlistingname}{Listato}
\end{listato}\begin{algoritmo}
\newcommand*{\lstalgorithmname}{Algoritmo}
\end{algoritmo}\begin{listato}
\renewcommand*{\lstlistlistingname}{Elenco dei listati}
\end{listato}\begin{algoritmo}
\newcommand*{\lstlistalgorithmname}{Elenco degli algoritmi}
\end{algoritmo}\chapter{DUE}
\begin{listato}
\renewcommand*{\lstlistingname}{Listato}
\end{listato}\begin{algoritmo}
\newcommand*{\lstalgorithmname}{Algoritmo}
\end{algoritmo}\begin{listato}
\renewcommand*{\lstlistlistingname}{Elenco dei listati}
\end{listato}\begin{algoritmo}
\newcommand*{\lstlistalgorithmname}{Elenco degli algoritmi}
\end{algoritmo}\end{document}`
Malgrado i tuoi apprezzati commenti al codice, non ho sufficienti conoscenze per capire tutto. Se hai ancora del tempo da dedicare al mio problema…
Grazie e ciao.
Claudio
::
Ciao.Ho installato Tex Live 2011 su due PC diversi con Windows 7 (64 bit), utilizzando la stessa ISO che ho utilizzato per l’installazione su Ubuntu: nessun problema. La cartella di installazione è: “C:\texlive”; ho il sospetto che la cartella “C:\Programmi\texlive” possa non andare bene poiché in realtà il nome della cartella sarebbe “C:\Program Files (x86)\texlive”, con i soliti malefici spazi che spesso creano problemi.
Claudio
::
L’opzione “-x707” passata a –extradvipsopts nell’istruzione originale riduce la pagina di un fattore 1/sqrt(2).
Il preambolo mi è stato imposto (sto lavorando alla traduzione di un libro, che deve apparire nella stessa forma della versione originale), come l’istruzione per la compilazione che, per quanto strana, funziona benissimo.
Per quel che riguarda \epsfbox penso che non dovrebbero esserci troppi problemi a sistemarlo.
Il lavoro è terminato; la mia non era un’esigenza ma più che altro una curiosità atta ad imparare qualcosa di nuovo e magari utile in future occasioni (esiste un modo per passare quei parametri strani a pdflatex oppure bisogna lavorare direttamente con la “geometria della pagina” nel preambolo, modificando quella esistente?)
Ciao.Claudio
::
Ecco il prembolo:`
\documentclass[a4paper,12pt,fleqn]{book}\usepackage{graphicx}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage{makeidx}
\usepackage{latexsym}
\usepackage{amsmath,amssymb}
\usepackage{amstext}
\usepackage{amsopn}
\usepackage{amsthm}
\usepackage{enumerate}
\usepackage{fancyhdr}
\usepackage{calc}
\usepackage{colortbl}
\usepackage{tabularx}
\usepackage{hhline}
\usepackage{epsfig}
\usepackage[cam,axes]{crop}
\usepackage{multicol}
\usepackage{amscd}
\usepackage{longtable}
\usepackage{dcolumn}
\usepackage{multirow}\setlength{\topmargin}{-17.3mm}
\setlength{\textheight}{265.9mm}
\setlength{\footskip}{30pt}
\setlength{\textwidth}{174.7mm}
\setlength{\oddsidemargin}{-4.2mm}
\setlength{\evensidemargin}{-11.3mm}% per dvips
\special{papersize=182mm,238mm}`
Per l’uso di \epsfbox:
`
\begin{picture}(0,50)(-85,-50)
\put(0,0){\makebox(0,0){\epsfysize=10cm\epsfbox{immagine1.eps}}}
\end{picture}\epsfysize=8cm \epsfbox{immagine2.eps}
`Le opzioni di –extradvipsopts indicano:
– la risoluzione orizzontale e verticale (2400 dpi)
– le dimensioni della pagina (182mm larghezza, 235mm altezza)
– l’origine in alto a sinistra spostata di 7mm verso il basso e di 7mm verso destra rispetto alla posizione di default (1″ nelle due direzioni)
– la “magnification ratio” (707/1000)
– il modo (Supre, da modes.mf)Ciao
Claudio
::
Il pacchetto epsfig è necessario poiché è stato usato \epsfbox (non sono l’autore dei file).
Il pacchetto crop è caricato con la riga seguente:\usepackage[cam,axes]{crop}
Mi resterebbero comunque da ridefinire le opzioni di –extradvipsopts (risoluzione orizzontale e verticale, dimensione del foglio di carta, traslazione dell’origine, …) e non ho trovato come farlo con pdflatex.
Siccome il progetto corrente non è mio, posso compilare senza problemi con l’istruzione che mi è stata data. Tuttavia, per eventuali progetti futuri, potrebbe essere interessante sapere se esistono opzioni analoghe a quelle di –extradvipsopts, ma per pdflatex.
Grazie e ciao.Claudio
::
Durante la prima compilazione sono segnalati diversi errori relativi ad immagini in ambiente tabularx che non possono essere convertite, poi proseguendo e compilando nuovamente il pdf viene creato. Purtroppo non tutte le immagini sono sistemate al posto giusto (ci sono anche dei warning relativi a “bb” sostituito con “viewport”). Forse l’uso del pacchetto “epsfig” crea qualche problema con pdflatex.
Le opzioni passate con il comando originale permettevano di stampare il testo nella dimensione giusta, con le “crocette” (non conosco il termine esatto) agli angoli per il taglio della pagina, mentre con “pdflatex main.tex” ottengo il documento su pagina A4 (anche passando le opzioni).
Grazie comunque.
Ciao.Claudio
-
AutoreRisposte