Risposte nei forum create
-
AutoreRisposte
-
30 Agosto 2012 alle 12:21 in risposta a: Inserire pagine A3 orizzontali in un documento A4 verticale #77784::
franen” post=76944Bene, la cosa che mi fa piacere è che avevo scritto una soluzion quasi identica, ma non funzionava sempre e non capivo perché.
Ora, Claudio, scirivi che `Piuttosto, se \hugeoddpage viene dato in modo che \afterpage lavori dopo la fine di un capitolo o alla fine del documento,
viene emessa una pagina bianca prima del dovuto e non vengono più rispettati gli even/odd per cui la pagina A3
potrebbe capitare su una pagina pari.` ed è proprio quel che mi succedeva! Hai risolto anche un mio dubbio. Ma c’è un modo per rimediare a questo possibile inconveniente?Fran
Ahimè e ahitè; \afterpage, come ammette lo stesso suo creatore non è affidabilissimo e ha problema quando interagisce con la routine di uscita e ci sono dei float in coda e/o ci sono dei comandi di sezionamento da elaborare nella pagina dove dovrebbe andare il materiale di \afterpage. Non credo che basti nemmeno fare precedere \hugeoddpage con un diverso \afterpage{\clearpage} che, è vero svuota le code dei float, ma non può togliere i comandi di sezionamento. Ovviamente i problemi si presentano in documenti molto strutturati con molte figure, tabelle, algoritmi, eccetera, e con un sezionamento fillto; talvolta questo sezionamento fitto è davvero eccessivo e rivedendo la struttura del documento si scopre che molti paragrafi (\sectio} non hanno necessità di disporre di un loro titolo; lo stesso vale per i sottoparagrafi e dei sezionamenti al livelli più minuti.
Una tesi di ingegneria come quella di @Driven potrebbe presentare problemi, ma credo che ci si possa arrangiare un poco con lo spostare quei comand con i loro argomenti unpo\ più indietro o un po’ più avanti, dopo i sezionamenti problematici.
Nella GuidaGuIT ho definito dei coandi simili \supaginapari e \supaginadispari su suggerimento di David Carlisle, che non mi garantiva nessun successo, nemmeno parziale; invece il vecchio lupo di mare la sapeva lunga. Tuttavia mi pare che anche Wilson con memoir abbia avuto dei problemi, tanto che ha bisogno di controllare la parità della pagina, ma deve avvalersi di un \label nascosto per sapre dove quella pagina cadrà. Non credo che abbia dovuto ricorrere ad \afterpage, ma i suoi problemi li ha avuti.
David non ha voluto rimettere le mani su \afterpage, dicendo che erano passati tanti anni da quando aveva scritto quella macro, che non ricordava più la ratio legis che l’aveva portato a quella soluzione; io gli avevo chiesto di definire anche \afteroddpage e \afterevenpage, ma non l’ho convinto. Da un lato questo fatto mi ha confermato l’importanza del codice documentato che ai tempi della creazione di \afterpage forse ancora non esisteva (tranne il literate programming di Knuth, che serviva in sostanza (solo?) per documentare il sorgente Pascal della prima fino all’ultima versione del programma TeX. Non ha mai lasciato il suo compilatore preferito Pascal, anche se oggi sembra più defunto del Fortran, assai più vecchio e che non è defunto affatto); dall’altro mi sono convinto che mettere le mani sulla routine di output di LaTeX sia molto più complesso di quanto possiamo immaginare e aumenta la mia considerazione per l’abilità di Lamport che dall’uscita di TeX82 in due anni ha messo a punto non solo il sistema di macro che poi si è chiamato LaTeX, ma anche una routine di output, difettosa fin che si vuole, ma che fa miracoli rispetto alle nostre aspettative. Purtroppo rinviare delle parti a dopo è una delle cose che talvolta la routine di output non riesce a gestire bene.
30 Agosto 2012 alle 10:52 in risposta a: Inserire pagine A3 orizzontali in un documento A4 verticale #77781::
La tua domanda era: dove metto \checkoddpage? Bene, se chiedi quello, vuol dire che hai letto la documentazione di changepage con texdoc e hai visto che devi usare quel comando che serve per impostare il valore true oppure false alla macro \ifoddpage, e che ti accingi a usare \ifoddpage; ne deduco che hai qualche idea di come si scrivono le macro. Se ti dico che devi mettere \checkoddpage subito prima di \ifoddpage, non dico altro che quello che c’è scritto in glese nella documentazione del pacchetto changepage. ma se questo ti è oscuro allora non sai definire una macro e non sai usare il semplice comando condizionale \ifoddpage.Se ti ho detto di sostituire \checkoddpage\ifoddpage con \ifodd\value{page} ti ho detto una cosa che non può essere fraintesa; la spiegazione aggiunge che la mia serie di comandi è più semplice e diretta che non quella proposta dal pacchetto changepage, la quale va sempre bene, ma è esagerata per l’applicazione specifica (ammazzare una zanzara con un cannone, vuol dire quello…). Non credevo di non essere stato chiaro; ma evidentemente ignoravo che fino a “tre giorni fa” avessi usato solo Word; dai tuoi numerosi interventi di richiesta di aiuto, non emergeva uno stato di apprendistato così iniziale.
Ti suggerisco quindi, come al solito di leggere le solite guide; non scrivere macro finché non sei abbastanza padrone della materia, ma per diventare padrone della materia devi avere usato LaTeX abbastanza a lungo, qualche mese, non “tre giorni”, devi avere letto l’Arte al capitol/paragrafo 9 dal §9.1 in poi; devi avere letto la guida GuIT, capitolo 17, devi aver letto gli Appunti di programmazione in TeX e LaTeX di Enrico Gregorio (cerca sul web), poi scoprirai che la cosa non era così complessa.
Poi in un precedente messaggio dici:
Ciao, mi spiego meglio, la pagina A3 dovrebbe sempre essere sulle facce di destra ma a me si muove a seconda del testo.. come faccio a risolvere questo problema?
Evidentemente non hai letto la mia spiegazione nel messaggio in cui esponevo il codice: dicevo che il posizionamento non era automatico e che per avere il risultato sempre nella pagina dispari (di destra) bisognava trovare sperimentalmente dove inserire il comando \afterpage con il suo argomento.
Visto che evidentemente i “tre giorni” non sono sufficienti (e non lo sono stati nemmeno per me; ma devo dire che quando ho cominciato ad usare LaTeX il mio primo problema è stato quello di creare una classe con le testatine come nel libro di Lamport per una collega che le voleva in minuscolo, nero, diritto e sottolineate — cioè ho cominciato a scrivere delle macro; operazione che mi è costata lacrime e sangue, ma quando ho composto il mio primo documento sapevo quel che facevo; non dico che tutti debbano seguire la mia strada, per carità; io per altro non avevo la scadenza della tesi da rispettare, ma questo succedeva nel 1985, qualche anno fa… e non esisteva nessuna documentazione, tranne il libro di Lamport) ti allego la mia soluzione, ma non chiedere spiegazioni; cerca di capire che cosa vuol dire \newenvironment, \newcommand, e come si usano i comandi definiti con quei \new
. `\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage{afterpage}
\usepackage{changepage}
\usepackage{graphicx,color}\makeatletter
\newenvironment{hugepage}{\pdfpagewidth=2\pdfpagewidth
\dimen@=\dimexpr(\evensidemargin-\oddsidemargin)/2\relax
\changepage{}{210mm}{-\dimen@}{\dimen@}{}{}{}{}{}%
%\thispagestyle{plain} % togliere il commento se si vogliono togliere le testatine
\noindent}{\clearpage\if@twoside\thispagestyle{empty}\null\clearpage\fi}% Per le pagine A3 probabilmente non ha senso l'asimmetria dei margini destro e sinistro;
% varrebbe la pena di inserire metà della differenza fra i due margini (\evensidemargin –
%\oddsidemargin) col segno – nel terzo argomento e col segno + nel quarto e probabilmente
% bisogna anche usare \changepage* se si lavora in modo oneside.\newcommand{\hugeoddpage}[1]{%
\afterpage{\ifodd\value{page}#1\else\afterpage{#1}\fi}}% Per usare \\ifoddpage del pacchetto changepage bisogna dare dapprima il comando \checkpage
% ma visto che questo controllo viene eseguito dentro un \afterpage, si è sempre sicuri
% che il contatore delle pagine indichi il numero giusto.
%
% Piuttosto, se \hugeoddpage viene dato in modo che \afterpage lavori dopo la fine di un
% capitolo o alla fine del documento, viene emessa una pagina bianca prima del dovuto e non
% vengono più rispettati gli even/odd per cui la pagina A3 potrebbe capitare su una pagina
% pari.
%
% Bisogna ricordarsi che \afterpage non è affidabilissimo se in coda ci sono degli oggetti
% flottanti e/o se intervengono dei comandi di sezionamento. I suoi difetti vengono
% trasferiti pari pari anche al comando \hugeoddpage.\begin{document}
\chapter{Pagine A3 inerite in mezzo a pagine A4}
\section{Prima soluzione}
\lipsum[1-8]\textcolor{red}{Marco la pagina dove metto \texttt{afterpage}.}\afterpage{\begin{hugepage}\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{A3-A4-boa-capri}
\end{hugepage}}\lipsum[9-15]
\section{Seconda soluzione}
\lipsum[1-8]\textcolor{red}{Marco la pagina dove metto \texttt{hugeoddpage}.}\hugeoddpage{\begin{hugepage}\centering
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{A3-A4-boa-capri}
\end{hugepage}}\lipsum[9-20]
\end{document}`
La figura l’ho chiamata ora A3-A4-boa-capri, ma tu sostituisci con quel di cui disponi. quando componi vedi che ci sono del testo delle righe in rosso che marcano i punti in cui ho inserito i comandi usati; vedi quindi che cosa fa \afterpage e che cosa fa \hugeoddpage.
::
Quello che descrive @Marco87 è quello che faceva e probabilmente fa ancora Kile ai miei tempi; ora non uso più Kile, ma quando lo usavo questa funzionalità per me era piuttosto fastidiosa.Uso invece il completamanto con TeXworks e TeXshop quando voglio essere sicuro di non dimenticare la chiusura di un ambiente; scrivo[tt]\begin{ambiente}[/tt] e l’editor dopo aver premuto Tab, mi scrive subito sotto [tt]\end{ambiente}[/tt] qualunque sia l’ambiente che uso; lo trovo molto comodo, ma non lo userei mai per il completamento dei comandi; voglio averne il controllo preciso, visto che si sono molti comandi dall’inizio molto simile e il completamento potrebbe portare ad un comando errato.
Naturalmente dipende dalle abitudini. Se questa funzionalità ti manca molto con TeXworks, sei padronissimo di scegliere un altro editor che te la offre; ma ricordati che TeXworks ti tornerà sempre molto utile per cambiare le codifiche, cosa che Texmaker non è capace di fare e sbaglia nel classificare ogni codifica diversa da utf8 come latin1, perchè anche applemac per Texmaker è latin1, mentre se ci sono due cose diverse sono proprio applemac e latin1. Lo stesso vale anche per ansinew, la codifica di molte macchine Windows non recentissime (antecedenti a Vista e a Seven) ma ancora molto usate; non parliamo delle codifiche che si ritrovano su file “d’annata”.
30 Agosto 2012 alle 8:32 in risposta a: Inserire pagine A3 orizzontali in un documento A4 verticale #77779::
Subito prima di invocare \ifoddpagePerò, siccome la hugepage in un modo o nell’altro viene composta “afterpage”, dopo questa pagina, il numero della pagina è certamente esatto e non c’è bisogno di passare attraverso il complesso metodo di changepage (che ho provato, come stai provando anche tu, ma è come sparare a un zanzara come un cannone) basta usare un costrutto più semplice:`\ifodd\value{page}…\else…\fi` Come vedi si tratta di poche lettere in più; \value è un comando LaTeX (vedi l’ultima guida tematica sul LaTeX reference manual commentato, qui sopra nella sezione di Documentazione) che serve per rendere accessibile il contenuto di un contatore LaTeX; \ifodd è un test “primitivo” del linguaggio TeX che, appunto, come dice il nome, controlla se il numero che viene subito dopo (nel nostro caso il valore del contatore delle pagine) sia dispari. Naturalmente puoi seguire il main stream del pacchetto changepage, ma quello che ti ho suggerito sopra funziona alla grande ed è più diretto.
Nota che l’esercizio che ti ho proposto di creare una macro che scelga da sola la pagina dispari me lo sono risolto anche per conto mio; se e quando vuoi inserisco il codice per soddisfare la tua curiosità e per confrontare la tua soluzione con la mia, oltre a soddisfare quella di altri frequentatori del forum che ci stanno seguendo, ma vorrei farlo dopo che tu ci abbia almeno provato.
::
Non ho mai usato un secondo monitor, ma ne ho apprezzato la comodità quando il disegnatore del dipartimento mi correggeva le foto che facevamo in laboratorio le quali generalmente avevano dominanti di colore dovute alle lampade non professionali con cui illuminavamo gli oggetti da fotografare; per quel che ho potuto vedere quando lui lavorava, il suo software di gestione dei due schermi gli consentiva di trascinare col mouse le finestre da un monitor all’altro.Per quel che ricordo la finestra del visualizzatore interno di Texmaker è indipendente dalla finestra di editing, quindi, se il tuo software di gestione degli schermi te lo consente, dovresti anche tu poter trascinale la finestra di visualizzazione sul secondo monitor.
Questa cosa non dipende dal sistema TeX; forse dovrei spostare questo filone nella sezione “Altri programmi”. Per ora non lo faccio, ma forse sarà necessario.
29 Agosto 2012 alle 20:10 in risposta a: Inserire pagine A3 orizzontali in un documento A4 verticale #77774::
Il terzo metodo funziona dopo avere corretto ampiamente quanto viene proposto. Il codice che a me funziona è il seguente esempio minimo compilabile, salvo che la foto che io includo è una foto che certamente non hai, ma basta che tu sostituisca con gli stessi comandi che useresti per inserire una delle tue planimetrie, quindi al posto di ..\boa-capri mettici percorsoAllaTuaPlanimetria/planimetriaxx.
`\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage{afterpage}
\usepackage{changepage}
\usepackage{graphicx}\newenvironment{hugepage}{%
\changepage{}{210mm}{}{}{}{}{}{}{}%
\thispagestyle{plain}
}{\clearpage\thispagestyle{empty}\null\clearpage}\begin{document}\errorcontextlines=9
\lipsum[1-4]\afterpage{\pdfpagewidth=2\pdfpagewidth\begin{hugepage}
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{../boa-capri}
\end{hugepage}}\lipsum[5-10]
\end{document}`
Nota la specificazione del raddoppio della larghezza di pagina da passare al pdftex perché la trasmetta al file di uscita; nota la mancanza del suo primo \clearpage, nota che le dimensioni del testo e dei margini sono le stesse che in partenza, salvo che la \textwidth è stata aumentata di 210mm, quanto una pagina A4. (quei paramentri argomenti di \changepage sono degli aumenti relativi alle dimensioni già presenti).
Quello che io ho messo nel comando di chiusra serve per avere il verso della pagina A3 completamente bianco, ma è contato nella paginazione.
se vuoi racchiudere quell’\incldegraphics in un ambiente figure e metterci una didascalia, un \label, quel che ti pare, fallo pure, mentre non è necessario che tu mantenga larghezza e altezza e poi gli dica di mantenere il rapporto di forma, il che significa trascura una delle due dimensioni; però, anche se è eccessivo, non guasta.
Grazie a @franen che ha trovato i link; ma prendiamo atto che spesso quello che si trova nei forum (speriamo raramente nel nostro) sia stato buttato giù d’istinto, ma non sia stato provato; la discussione che segue il primo messaggio mostra che il proponente non aveva nemmeno letto la documentazione del pacchetto changepage, anche se l’idea di usarlo era buona, anzi, ottima.
Nell’uso pratico puoi anche usare il comando \checkoddpage dello stesso pacchetto changepage — di cui ricordati di leggere bene la documentazione con texdoc changepage — per essere sicuro che la pagina inserita da \afterpage appaia sulla pagina dispari; se non stampi fronte retro, puoi semplificare la chiusura dell’ambiente hugepage, lasciandoci solo \clearpage. In ogni caso, per essere sicuro di inserirlo nella pagina giusta, ma se stampi fronte retro, devi trovare sperimentalmente dove inserire \afterpage con il suo argomento. Ci si potrebbe arrampicare un po’ su per i vetri, per creare una macro che trova da sola il punto dove inserire la pagina A3 e il suo verso, ma te lo lascio per esercizio 😉
29 Agosto 2012 alle 16:13 in risposta a: Inserire pagine A3 orizzontali in un documento A4 verticale #7777229 Agosto 2012 alle 15:20 in risposta a: Inserire pagine A3 orizzontali in un documento A4 verticale #77770::
Grazie @franen per aver trovato e mostrato quei link; il primo in verittà serve solo per ridurre le immagini su “carta” A3 per mettere su un foglio A4;
Tutti e tre i metodi consentono può o meno agevolmente di usare pdfpages, per intercalare le pagine grandi fra le pagine piccole, con varianti tali da poter mantenerei gli hyperlink (hyperlink su un documento stampato con le pagine ripiegate?Finché restiamo con la lettura a schermo va tutto bene, puoi come si stampa un docunento con pagine di formati diversi, se non separando le pagine piccole dalla pagine grandi”; certo pdfpagess viene nuovamente in aiuto, ma all’atto pratico il centro stampa deve fare due stampate disitinte e poi intercalare a mano le pagine grandi fra quelle piccole.
Se vengono in mente altre soluzioni, potremmo dare fra tutti delle indicazioni utili a @Driven che ha posto sul tavolo un problema serio, ma che ha una soluzione “hard” complicata, mentre la soluzione “soft” può essere fatta tutta in modo automatico, almeno con quanto è emerso fino ad oggi.
29 Agosto 2012 alle 13:57 in risposta a: Inserire pagine A3 orizzontali in un documento A4 verticale #77767::
Io non consoco nessuna stampante che sia in grado di stamapre alternativamnete e in fronte retro fogli A4 e fogli A3.Però il modo chi sarebbe per fare quello che desideri.
Fra le pagine tra le quali vuoi inserire queste tavole A3, che necessariamente devono essere dopo una pagina pari e prima di una pagina dispari, inserisci un [tt]\cleardoblepage[/tt] (Se ne devi inserier diversi di seguito, mettici un mezzo un \null; tutto ciò se stampi fronte retro, come sarebbe semrpe desiderabile, per solo fronte esegui le modifiche necessarie a quanto sto dicendo); alternativamente usa il pacchetto afterppage e fra il testo che compare in ua pagina pari dopo la quale vuoi inserire una pagina fuori testo, inserisci [tt]\afterpage{\addtocounter{page}{2}}[/tt] che ti incrementa di 2 il numero della paigna, ma quando stampi non ti stampa pagine bianche che devi poi togliere.
Prendi nota dei numeri delle coppie di pagine bianche o mancanti, in partircolare conserva solo il numero dispari.
Poi stampa con una stampante che gestisce la carta di formato A3, e stampa un file pdf creato apposta con le immagini pdf delle tue planigrafie avendo cura di impostare per ogni tavola una cosa del genere:`\clearpage\setcounter{page}{numero dispari}
\includegraphics[width=\textwidth]{planigrafia che va in quella pagina}`
Ovviamente avrai specificato il formato a3paper e la disposizione landscape; probabilmente ti conviene usare lo stile di pagina plain, e ti conviene usare geomentry per avere uno specchio di stampa il più grande possibile con margini nulli; ma questo lo puoi regolare dopo qualche prova.Le pagine A3 ti verranno fuori numerate con i numeri dispari che hai messo nei vari comandi \stecountr{page}{…}
Fatto questo hai la tesi cone le pagine numerate con salti di due numeri quando devi inserire una tavola fuori testo; le pagine A3 stampate come ti ho detto hanno una e una sola posizione psosibile dentro al pacco dei fogli della tesi; il legatore non può sbagliarsi.
Ma come vedi tutta questa manfrina serve solo a lasciare la numerazione completa sia della tesi sia delle pagine, ma non potrai mai stampare uno po’ di pagine A4 fronte retro (o anche solo fronte) intercalate con pagine landscape A4; che per altro, anche se fosse possibile, dovresti estrarre dal pacco, piegare secondo le norme ISO, e poi reimmettere da dove le avevi estratte.
Va da se che tutta questa manfrina deve essere fatta solo quando sei sicuro di non dover cambiare nella tesi nemmeno una virgola.
Poi se io mi sbaglio ed esistono stampanti che inseriscono già piegate delle pagine A4 in landscape in mezzo a pagine A4 in portrait, allora fa come se non avessi detto niente.
Certo è che LaTeX, che io sappia, non è in grado di produrre un file pdf con pagine di dimensioni diverse, figuriamoci con orientazioni diverse.
::
Vuol dire che non hai il pacchetto appendix.sty a bordo; la tua distribuzione è incompleta; scommeto che usi MIKTeX che generalmente viene installata in forma basic, ciò ridutta al minimo, e manche della maggior parte dei pacchetti; li puoi istalalte con i package manger (o wizerd?) di MiKtEx o è possibile che te lo installi in automatico se scrivi nel tuo preambolo il comando [tt]\usepackage{appendix}[/tt].Questo però ti insegni che installare le versioni minime, basic, o comunque incomplete, è un risparmio di spazio su disco che non vale gli inconvenienti che provoca; infatti noi suggeriamo sempre con vigore di eseguire installazioni complete. Alla prima occasione disinstalla MiKTeX e installa la distribuzione TeX Live 2012 completa, seguendo quanto c’è scritto sull’Arte di scrivere con LaTeX
29 Agosto 2012 alle 12:53 in risposta a: Inserire pagine A3 orizzontali in un documento A4 verticale #77765 -
AutoreRisposte