domingo, 26 de junio de 2011

Instrucciones condicionales

Un aspecto importante del tex es la posibilidad de ejecutar instrucciones tex, o simplemente insertar texto, dependiendo del valor de variables lógicas que pueden tomar el valor verdadero o falso. Inserto a continuación un corto fichero latex que permite obtener dos salidas distintas en función del valor de una variable lógica "sol" . Si el valor de la variable lógica "sol" es "false" se obtienen dos preguntas de un examen tipo test de cuatro alternativas. Si el valor de "sol" es "true" se obtienen los mismas preguntas con un asterisco en rojo, *, señalando la alternativa correcta.

\documentclass[a4paper,11pt]{exam}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
\usepackage[dvips]{graphics}
\usepackage{amsmath}
\usepackage{times}
\usepackage{txfonts}
\usepackage{pstricks}
%
%   La instrucción:
%

\newif\ifsol

%
%   sirve para definir una instrucción condicional, denominada en el presente
%   caso \ifsol,  que permite la ejecución de texto e instrucciones tex en
%   función del valor de una variable lógica implícitamente definida,  en el
%   presente caso llamada "sol", cuyo valor por defecto es "false", valor que
%   podemos alterar  con las  instrucciones \soltrue  y \solfalse
%
%   La instrucción \ifsol se utliza de la siguiente forma:
%      \ifsol{texto e instrucciones si la variable lógica "sol" tiene el valor "true"}
%       \else{texto e instrucciones si la variable lógica "sol" tiene el valor "false"}
%      \fi
%   puede usarse también en forma reducida:
%      \ifsol{texto e instrucciones si la variable lógica "sol" tiene el valor "true"}
%      \fi
%      
%   equivalente a:
%      \ifsol{texto e instrucciones si la variable lógica "sol" tiene el valor "true"}
%       \else{}
%      \fi
%
%
%   la siguiente macro sirve para marcar la solución verdadera con
%   un asterisco en rojo en las preguntas   tipo test sólo cuando la
%   variable lógica "sol" tiene el valor "true".
%

\def\marca{\ifsol{\hspace{3mm}$\mathbf{\color{red}{\ast}}$}\fi}

              %
\soltrue  % con esta instrucción se marcará la respuesta verdadera con
              % un asterisco rojo; si la desactivamos o quitamos no se marcará
              % nada: por defecto "sol" tiene el valor "false" 
              %
\begin{document}
\begin{questions}
\question La función $f(x)=\dfrac{|x-1|}{x}$,\; definida para $x>0$
\begin{choices}
\choice Es continua y derivable para todo $x > 0$.
\choice Es continua, excepto en el punto $x=1$.
\choice Es continua para todo $x > 0$, pero no es derivable en todo su dominio. \marca
\choice Es discontinua en $x=2$.
\end{choices}
\pagebreak[3]
\question
La integral $\displaystyle \int_0^2 \dfrac{1}{t^2-2t+1}\;dt$ es igual a:
\begin{choices}
\choice $-1$.
\choice $1$.
\choice La integral es divergente.\marca
\choice Ninguna de las anteriores.
\end{choices}
\end{questions}

\end{document}

jueves, 2 de junio de 2011

Viudas y huérfanas

GG siento el despiste y grácias por proponer un tema! Para quien quiera aclarar el conceptos de viuda o huérfana, en maquetación, puede consultar  http://es.wikipedia.org/wiki/Viuda_y_hu%C3%A9rfana

Podemos incidir en la cantidad de viudas y huérfanas en LaTeX  de varias formas posibles. Con carácter general:
  • Podemos aumentar la penalización correspondiente  ("widowpenalty" y "clubpenalty")
  • hasta un máximo de 10000, por ejemplo: \widowpenalty=5000  \clubpenaly=10000
  • Podemos ensanchar o reducir ligeramente una página con las instruciones
\newcommand*{\alarga}{\enlargethispage{\baselineskip}}
\newcommand*{\acorta}{\enlargethispage{-\baselineskip}}
  • Podemos usar el package letterspace con la instrucción \letterspace que permite separar más las palabras:  
 \usepackage{letterspace}
             .....
 \letterspace{Esto es una prueba para ver como queda}
 \letterspace to \hsize {Esto es una prueba para ver como queda}
 \letterspace spread 0.3 \hsize {Esto es una prueba para ver como queda}
 \letterspace to 1.5 \naturalwidth {Esto es una prueba para ver como queda}
 \letterspace spread 0.5 \naturalwidth {Esto es una prueba para ver como queda}

  • Podemos usar el entorno "sloppypar" para flexibilizar el espaciado de las palabras en un párrafo: 
\begin{sloppypar}
texto párrafo
.................
\end{sloppypar}
  • el package setspace permite variar interlineado:      
\usepackage{setspace}
%\singlespacing
\onehalfspacing
%\doublespacing
%\setstretch{1.1}
%activar la instrucción correspondiente
  •  Las instrucciones siguientes tambien ayudan a controlar el aspecto de la página, modificando diversos espaciados:
\frenchspacing % no insertar espacio extra al final de las frases.

\setlength{\parindent}{3pt} % (indentación 3pt... etc poner la longitud necesaria 

\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} % flexibiliza la separación de párrafos expande hasta 0.5ex y contrae hasta 0.2ex (recordar que 1ex es  la unidad de longitud correspondiente a la altura de la letra x en la fuente que se está utilizando)

\raggedbotom % No añade espacio vertical extra

\flushbottom % Añade algo de espacio vertical si es necesario

\renewcommand{\baselinestretch}{1.5} % interlineado multiplicado por 1.5 etc.
  • Controlar la partición de las palabras en sílabas al final de las frases
  • Uso de  \pagebreak[i]  %i=1, 2, 3 ó 4 etc..  
  • Uso de   \nopagebreak[i]  %i=1, 2, 3 ó 4 etc..  
  • Uso del entorno "samepage"...
y por hoy lo dejo aquí....

miércoles, 1 de junio de 2011

Propuestas de problemas de maquetación LaTeX

Los últimos meses he estado muy atareada. Me encantaría que propusierais temas o problemas de maquetación LaTeX. Trataré de contribuir en lo que buenamente pueda... Adelante pues, Red Logos y animate a proponer algo...