Re: [Tex-nl] automatisatie links-rechts plaatsen van een afbeelding in een book-documentclass
Een tijdje geleden dat deze topic aan bod kwam. Dus tijd om te melden wat het uiteindelijk geworden is. De code van Siep werkt perfect.
Een mogelijk probleem hiermee is dat wanneer TeX bezig is met deze code er nog een gerede kans is dat de alinea en de figuur naar een nieuwe pagina worden opgeschoven. Voor de zekerheid kun je dus een label bij elke figuur genereren en het pagina-nummer van de\pageref testen. Een fragment uit een oude maps.cls:
% Simply testing on c@page unsafe because % final pagebreaking not yet known \newcount\@evenodd\@evenodd=0 \newenvironment{fullwidth}{% \global\advance\@evenodd1 \par \bgroup \vspace{6pt} \ifthenelse{\isodd{\pageref{@eo\the\@evenodd}}}% {code for odd pages}% {code for even pages}% ... \label{@eo\the\@evenodd}}% {...\egroup}
\newcount\@evenodd\@evenodd=0 ...
En dit is het resultaat : \newcount\@evenodd\@evenodd=0 \newcommand \afbeelding [3] { \global\advance\@evenodd1 \ifthenelse{\isodd{\pageref{@eo\the\@evenodd}}}% {\begin{wrapfigure}[#1]{r}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} {\begin{wrapfigure}[#1]{l}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} \label{@eo\the\@evenodd}} } {...\egroup} Koen Wybo
Het is geruime tijd geleden dat deze vraag beantwoord werd. De laatste tijd krijg ik echter iedere keer foutmeldingen: ! Missing number, treated as zero. <to be read again> e l.19 \newcount\@evenodd\@e venodd=0 ? ! Too many }'s. l.28 } {\egroup} ? ! Too many }'s. l.28 } {\egroup} En op de eerste pagina staat de code : evenoddevenodd=0 Het bizarre is dat ik bij sommige documenten waar het is geïntegreerd geen enkele foutmelding krijg, bij andere documenten met dezelfde preambule wel. Bij nieuwe documenten zijn de foutmeldingen er ook. Ik heb het afgebroken tot een minimaal voorbeelddocument. Om te testen maak je een bijkomende map beelden aan met daarin een afbeelding genaamd test. Koen Wybo \documentclass[]{book} \usepackage{wrapfig} \usepackage{lipsum} \usepackage{everypage,graphicx} \usepackage{calc} \usepackage{ifthen} \begin{document} % afbeelding % 1 lijnen om extra witruimte te geven % 2 grootte van de afbeelding in mm % 3 afbeelding naam in map beelden/ \newcount\@evenodd\@evenodd=0 \newcommand \afbeelding [3] { \global\advance\@evenodd1 \ifthenelse{\isodd{\pageref{@eo\the\@evenodd}}}% {\begin{wrapfigure}[#1]{r}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} {\begin{wrapfigure}[#1]{l}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} \label{@eo\the\@evenodd} } {\egroup} \chapter{hoofdstuk 1} \section{twee} \lipsum \afbeelding{12}{60}{test} \lipsum \end{document} Op 02-04-12 10:11, Koen Wybo schreef:
Een tijdje geleden dat deze topic aan bod kwam. Dus tijd om te melden wat het uiteindelijk geworden is. De code van Siep werkt perfect.
Een mogelijk probleem hiermee is dat wanneer TeX bezig is met deze code er nog een gerede kans is dat de alinea en de figuur naar een nieuwe pagina worden opgeschoven. Voor de zekerheid kun je dus een label bij elke figuur genereren en het pagina-nummer van de\pageref testen. Een fragment uit een oude maps.cls:
% Simply testing on c@page unsafe because % final pagebreaking not yet known \newcount\@evenodd\@evenodd=0 \newenvironment{fullwidth}{% \global\advance\@evenodd1 \par \bgroup \vspace{6pt} \ifthenelse{\isodd{\pageref{@eo\the\@evenodd}}}% {code for odd pages}% {code for even pages}% ... \label{@eo\the\@evenodd}}% {...\egroup}
\newcount\@evenodd\@evenodd=0 ...
En dit is het resultaat :
\newcount\@evenodd\@evenodd=0 \newcommand \afbeelding [3] { \global\advance\@evenodd1 \ifthenelse{\isodd{\pageref{@eo\the\@evenodd}}}% {\begin{wrapfigure}[#1]{r}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} {\begin{wrapfigure}[#1]{l}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} \label{@eo\the\@evenodd}} } {...\egroup}
Koen Wybo
On 2012-06-23 21:09, Koen Wybo wrote:
\documentclass[]{book} \usepackage{wrapfig} \usepackage{lipsum} \usepackage{everypage,graphicx} \usepackage{calc} \usepackage{ifthen}
\begin{document}
% afbeelding % 1 lijnen om extra witruimte te geven % 2 grootte van de afbeelding in mm % 3 afbeelding naam in map beelden/
\makeatletter
\newcount\@evenodd\@evenodd=0 \newcommand \afbeelding [3] { \global\advance\@evenodd1 \ifthenelse{\isodd{\pageref{@eo\the\@evenodd}}}% {\begin{wrapfigure}[#1]{r}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} {\begin{wrapfigure}[#1]{l}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} \label{@eo\the\@evenodd} }
% deze moet weg
{\egroup}
\makeatother
\chapter{hoofdstuk 1} \section{twee} \lipsum
\afbeelding{12}{60}{test}
\lipsum
\end{document}
-- Wybo
Heel erg dank voor het antwoord. Werkt perfect. Koen Op 25-06-12 10:23, Wybo Dekker schreef:
On 2012-06-23 21:09, Koen Wybo wrote:
\documentclass[]{book} \usepackage{wrapfig} \usepackage{lipsum} \usepackage{everypage,graphicx} \usepackage{calc} \usepackage{ifthen}
\begin{document}
% afbeelding % 1 lijnen om extra witruimte te geven % 2 grootte van de afbeelding in mm % 3 afbeelding naam in map beelden/
\makeatletter
\newcount\@evenodd\@evenodd=0 \newcommand \afbeelding [3] { \global\advance\@evenodd1 \ifthenelse{\isodd{\pageref{@eo\the\@evenodd}}}% {\begin{wrapfigure}[#1]{r}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} {\begin{wrapfigure}[#1]{l}[105pt]{#2mm} \includegraphics[width=#2mm]{beelden/#3} \end{wrapfigure}} \label{@eo\the\@evenodd} }
% deze moet weg
{\egroup}
\makeatother
\chapter{hoofdstuk 1} \section{twee} \lipsum
\afbeelding{12}{60}{test}
\lipsum
\end{document}
participants (3)
-
Koen Wybo
-
Koen Wybo
-
Wybo Dekker