- Questo topic ha 9 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 5 mesi fa da
Daniele Avitabile.
-
CreatoreTopic
-
4 Aprile 2008 alle 11:07 #23406::
Ciao a tutti,sto scrivendo una classe per i poster della mia università. I poster dovranno essere di due colonne, perciò ho scritto
`\RequirePackage{textpos}`
e ho definito un comando
`\newcommand{\leftcolumn}[1]{ \begin{textblock*}{26.7cm}(0cm,12cm) #1 \end{textblock*} }`
Quando inserisco un ambiente figure annidato dentro \leftcolumn, LaTeX sembra ignorare il comando \centering. Infatti
`\begin{figure}
\centering
\includegraphics[width=.5\columnwidth]{foldsurfs}
\caption{An invariant manifold in the upper flow hits the switching surface}
\end{figure}`
non centra la figura, mentre usando un ambiente center invece di \centering tutto fila per il verso giusto. Sulla guida di textpos, a pagina 4, l’autore ammette di aver modificato l’ambiente figure e table.Mi rassegno ad usare l’ambiente center?
Ciao
Daniele
-
CreatoreTopic
-
AutoreRisposte
-
-
4 Aprile 2008 alle 13:45 #23407::
Ciao a tutti,
sto scrivendo una classe per i poster della mia università. I poster dovranno essere di due colonne, perciò ho scritto
`\RequirePackage{textpos}`
e ho definito un comando
`\newcommand{\leftcolumn}[1]{ \begin{textblock*}{26.7cm}(0cm,12cm) #1 \end{textblock*} }`
Quando inserisco un ambiente figure annidato dentro \leftcolumn, LaTeX sembra ignorare il comando \centering. Infatti
`\begin{figure}
\centering
\includegraphics[width=.5\columnwidth]{foldsurfs}
\caption{An invariant manifold in the upper flow hits the switching surface}
\end{figure}`
non centra la figura, mentre usando un ambiente center invece di \centering tutto fila per il verso giusto. Sulla guida di textpos, a pagina 4, l’autore ammette di aver modificato l’ambiente figure e table.Mi rassegno ad usare l’ambiente center?
La modifica rilevante agli ambienti è di aver annullato tutto ciò che LaTeX esegue alla fine. È possibile che con un semplice
`\let\endfigure\par`
nel preambolo la faccenda ti ritorni a posto. Analogo per \endtable, se usi l’ambiente table. Ma se gli oggetti non devono essere mobili e hai solo bisogno della didascalia, perché non consideri il pacchetto caption e il suo comando \captionof? (Cerca nel forum al riguardo.)Ciao
Enrico
-
4 Aprile 2008 alle 14:23 #23408::
Ciao a tutti,
sto scrivendo una classe per i poster della mia università. I poster dovranno essere di due colonne, perciò ho scritto
`\RequirePackage{textpos}`
e ho definito un comando
`\newcommand{\leftcolumn}[1]{ \begin{textblock*}{26.7cm}(0cm,12cm) #1 \end{textblock*} }`
Quando inserisco un ambiente figure annidato dentro \leftcolumn, LaTeX sembra ignorare il comando \centering. Infatti
`\begin{figure}
\centering
\includegraphics[width=.5\columnwidth]{foldsurfs}
\caption{An invariant manifold in the upper flow hits the switching surface}
\end{figure}`
non centra la figura, mentre usando un ambiente center invece di \centering tutto fila per il verso giusto. Sulla guida di textpos, a pagina 4, l’autore ammette di aver modificato l’ambiente figure e table.Mi rassegno ad usare l’ambiente center?
La modifica rilevante agli ambienti è di aver annullato tutto ciò che LaTeX esegue alla fine. È possibile che con un semplice
`\let\endfigure\par`
nel preambolo la faccenda ti ritorni a posto. Analogo per \endtable, se usi l’ambiente table. Ma se gli oggetti non devono essere mobili e hai solo bisogno della didascalia, perché non consideri il pacchetto caption e il suo comando \captionof? (Cerca nel forum al riguardo.)Ciao
EnricoPurtroppo \let\endfigure\par non sembra funzionare. Gli utenti di questa classe per i poster dovranno essere in grado di inserire una figura, centrarla e modificarne le dimensioni a piacimento, scrivere una didascalia e di riferisi alla figura nel testo. In generale vorrei fare in modo che gli studenti usino il più possibile i comandi di LaTeX standard. A quello che capisco, mi chiedi di fargli rinunciare all’ambiente figure e di usare un includegraphics seguito da captionof. Secondo te sarebbe ortodosso racchiudere tutto questo all’interno di un ambiente ad hoc?
Grazie
Daniele
-
4 Aprile 2008 alle 15:14 #23409::
[quote]Ciao a tutti,
sto scrivendo una classe per i poster della mia università. I poster dovranno essere di due colonne, perciò ho scritto
`\RequirePackage{textpos}`
e ho definito un comando
`\newcommand{\leftcolumn}[1]{ \begin{textblock*}{26.7cm}(0cm,12cm) #1 \end{textblock*} }`
Quando inserisco un ambiente figure annidato dentro \leftcolumn, LaTeX sembra ignorare il comando \centering. Infatti
`\begin{figure}
\centering
\includegraphics[width=.5\columnwidth]{foldsurfs}
\caption{An invariant manifold in the upper flow hits the switching surface}
\end{figure}`
non centra la figura, mentre usando un ambiente center invece di \centering tutto fila per il verso giusto. Sulla guida di textpos, a pagina 4, l’autore ammette di aver modificato l’ambiente figure e table.Mi rassegno ad usare l’ambiente center?
La modifica rilevante agli ambienti è di aver annullato tutto ciò che LaTeX esegue alla fine. È possibile che con un semplice
`\let\endfigure\par`
nel preambolo la faccenda ti ritorni a posto. Analogo per \endtable, se usi l’ambiente table. Ma se gli oggetti non devono essere mobili e hai solo bisogno della didascalia, perché non consideri il pacchetto caption e il suo comando \captionof? (Cerca nel forum al riguardo.)Ciao
EnricoPurtroppo \let\endfigure\par non sembra funzionare. Gli utenti di questa classe per i poster dovranno essere in grado di inserire una figura, centrarla e modificarne le dimensioni a piacimento, scrivere una didascalia e di riferisi alla figura nel testo. In generale vorrei fare in modo che gli studenti usino il più possibile i comandi di LaTeX standard. A quello che capisco, mi chiedi di fargli rinunciare all’ambiente figure e di usare un includegraphics seguito da captionof. Secondo te sarebbe ortodosso racchiudere tutto questo all’interno di un ambiente ad hoc?[/quote]
E noi sbattiamo via l’ambiente figure bacato di \textpos e ce lo ricreiamo in modo che faccia ciò che ci interessa (ci si può mettere \centering o no, è indifferente).
`\usepackage{textpos}
\usepackage{caption}
\renewenvironment[1][]{figure}
{\def\caption{\captionof{figure}}\center}
{\endcenter}`
Naturalmente così la figura non “galleggia”, ma in un poster non è importante, le cose vanno disposte a mano.Ciao
Enrico
-
4 Aprile 2008 alle 16:56 #23410::
Enrico, grazie mille, funziona. A beneficio dei posteri, metto i miei due nuovi ambienti: il tuo mi dava un errore, credo tu abbia invertito (per fretta) la posizione di figure`\renewenvironment{figure}[1][]
{\def\caption{\captionof{figure}}\center}
{\endcenter}\renewenvironment{table}[1][]
{\def\caption{\captionof{table}}\center}
{\endcenter}`Grazie mille
Daniele
-
4 Aprile 2008 alle 17:16 #23411::
Sto usando gli ambienti definiti sopra (diciamo figure, per esempio). Ho notato che se li uso con`\begin{figure}
\centering
\includegraphics[width=.7\columnwidth]{nomeFigura}
\caption{Una didascalia}
\label{Una label}
\end{figure}`
tutto funziona bene. Se però voglio mettere una didascalia prima della figura (come si farebbe in una tabella, per esempio), uso
`\begin{figure}
\centering
\caption{Una didascalia}
\includegraphics[width=.7\columnwidth]{nomeFigura}
\label{Una label}
\end{figure}
`
e la figura non viene più centrata. Sbaglio qualcosa di fondamentale o sono i comandi che non funzionano?
-
4 Aprile 2008 alle 20:04 #23412::
Sto usando gli ambienti definiti sopra (diciamo figure, per esempio). Ho notato che se li uso con
`\begin{figure}
\centering
\includegraphics[width=.7\columnwidth]{nomeFigura}
\caption{Una didascalia}
\label{Una label}
\end{figure}`
tutto funziona bene. Se però voglio mettere una didascalia prima della figura (come si farebbe in una tabella, per esempio), uso
`\begin{figure}
\centering
\caption{Una didascalia}
\includegraphics[width=.7\columnwidth]{nomeFigura}
\label{Una label}
\end{figure}
`
e la figura non viene più centrata. Sbaglio qualcosa di fondamentale o sono i comandi che non funzionano?È strano che funzioni, perché a me non funziona affatto. 👿
`\usepackage{caption}
\makeatletter
\let\@@@caption\caption
\caption@AtBeginDocument{%
\def\captionof{\caption@teststar\caption@of{\@@@caption*}\@@@caption}}
\makeatother\renewenvironment{figure}[1][]
{\def\caption{\captionof{figure}}\center}
{\endcenter}`
Altrimenti si definisce \caption in termini di sé stessa. Aggiorna il pacchetto caption, ci sono state parecchie modifiche.Ciao
Enrico
-
5 Aprile 2008 alle 17:10 #23413::
Enrico, questa è la mia classe (sono pronto ad essere fustigato…). Quando inserisco il tuo codice, di cui ovviamente non capisco un accidente, la compilazione non va a buon fine: Undefined control sequence. \caption@AtBeginDocument`\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesClass{bcanmposter}
[2008/03/14 A Poster Class for BACNM, University of Bristol]% DECLARING OPTIONS —————————————————————-
\DeclareOption{nobanners}{}
\ProcessOptions\relax% LOADING A0POSTER CLASS ———————————————————–
\LoadClass[a1,portrait]{a0poster}% LOAD PACKAGES —————————————————————-
\RequirePackage{graphicx}
\RequirePackage{ifthen}
\RequirePackage{textpos}
\RequirePackage{color}
\RequirePackage{caption}% COLORS —————————————————————————
\definecolor{bcanmDarkGrey}{rgb}{0.1568,0.1568,0.1568}
\definecolor{bcanmPervinca}{rgb}{0.1290,0.3533,0.3333}% PAGE LAYOUT ———————————————————————-
\pagestyle{empty}
\color{bcanmDarkGrey}
\setlength{\parindent}{0pt}
\setlength{\tabcolsep}{0pt}
\setlength{\oddsidemargin}{0pt}
\setlength{\evensidemargin}{0pt}\newcommand{\leftcolumn}[1]{%
\begin{textblock*}{26.7cm}(0cm,12cm) #1 \end{textblock*}}\newcommand{\rightcolumn}[1]{%
\begin{textblock*}{26.7cm}(27.9cm,12cm) #1 \end{textblock*}}% TITLE, AUTHORS ETC.—————————————————————
\newcommand{\defaulttitle} {}
%\newcommand{\defaultauthor} {}
%\newcommand{\defaultaddress}{}
%\newcommand{\defaultemail} {}\providecommand{\title} [1]{#1}
%\providecommand{\author} [1]{#1}
%\providecommand{\address}[1]{#1}
%\providecommand{\email} [1]{#1}\renewcommand{\title} [1]{\renewcommand{\defaulttitle} {#1}}
%\renewcommand{\author} [1]{\renewcommand{\defaultauthor} {#1}}
%\renewcommand{\address}[1]{\renewcommand{\defaultaddress}{#1}}
%\renewcommand{\email} [1]{\renewcommand{\defaultemail} {#1}}% MAKE TITLE, HEADER AND FOOTER —————————————————-
\newcommand\makeheader{%
\begin{textblock*}{\paperwidth}(-2.55cm,-3.0cm)
\includegraphics[width=\paperwidth]{poster-skel-top}
\end{textblock*}}\newcommand\makefooter{%
\begin{textblock*}{\paperwidth}(-2.55cm,77.25cm)
\includegraphics[width=\paperwidth]{poster-skel-bottom}
\end{textblock*}}\renewcommand{\maketitle}{%
\begin{textblock*}{\paperwidth}(-2.55cm,-2.88cm)
\includegraphics[width=\paperwidth]{title-image}
\end{textblock*}
\begin{textblock*}{\textwidth}(2cm,4.5cm)
\ifthenelse{\equal{\defaulttitle} {}} {} {{\Large \color{bcanmPervinca} \textbf{\defaulttitle}}}
\end{textblock*}
}% SECTIONING ———————————————————————–
\makeatletter
\renewcommand\section{\@startsection{section}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raisebox{-.3cm}{\includegraphics[scale=0.8]{enm-logo}\hspace{.5em}}\normalfont\large\bfseries}}
\makeatother% FIGURES AND TABLES—————————————————————
\makeatletter
\let\@@@caption\caption
\caption@AtBeginDocument{%
\def\captionof{\caption@teststar\caption@of{\@@@caption*}\@@@caption}}
\makeatother\renewenvironment{figure}[1][]
{\def\caption{\captionof{figure}}\center}
{\endcenter}\renewenvironment{table}[1][]
{\def\caption{\captionof{table}}\center}
{\endcenter}`I punti in cui riconosco persino da solo di aver fatto porcate sono nel ridefinire il comando di sezione (per aggiungere il logo del dipartimento) e gli ifthenelse. Avevo già provato a sollecitare commenti sul forum a riguardo della classe ma non avevo ricevuto risposta.
Seconda osservazione: uso MacTeX e i pacchetti caption e capition3 sembrano abbastanza recenti, come puoi vedere dal mio .log. Gli altri utenti della classe saranno vincolati ad usare la stessa versione di caption? Nel mio dipartimento utilizzano ancora tetex.
`(/usr/local/texlive/2007/texmf-dist/tex/latex/caption/caption.sty
Package: caption 2007/01/07 v3.0k Customising captions (AR)(/usr/local/texlive/2007/texmf-dist/tex/latex/caption/caption3.sty
Package: caption3 2007/01/07 v3.0k caption3 kernel (AR)`Grazie ancora.
-
5 Aprile 2008 alle 19:24 #23414::
Enrico, questa è la mia classe (sono pronto ad essere fustigato…). Quando inserisco il tuo codice, di cui ovviamente non capisco un accidente, la compilazione non va a buon fine: Undefined control sequence. \caption@AtBeginDocument
Aggiungi, subito prima
`\@ifundefined{caption@AtBeginDocument}
{\let\caption@AtBeginDocument\AtBeginDocument}{}`
Ciao
Enrico
-
6 Aprile 2008 alle 11:20 #23415
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.