Un subrayado con textos en ambos extremos de una línea.

Un subrayado con textos en ambos extremos de una línea.

Quiero dejar un espacio en blanco entre los textos en ambos extremos de una línea. Por ejemplo,un espacio en blanco entre textos en ambos extremos de una línea

\begin{enumerate}
\item There \hrulefill\ in the room.
\end{enumerate}

Pero lo anterior aparece solo en la versión para estudiantes y quiero hacer una versión para maestros donde la respuesta también esté impresa en el espacio en blanco. No tengo idea pero

\begin{enumerate}
\item There \underline{\makebox[100pt][l]{is a chair}} in the room.
\end{enumerate}

El método no es satisfactorio porque se desconoce de antemano la longitud de la pieza en bruto.

Mis problemas:

  1. ¿Cómo poner texto en un \hrulefill?

  2. (Una pregunta adicional) Descubrí que la posición vertical de la regla horizontal generada por \hrulefilly \underlinees diferente. ¿Cómo puedo controlar la posición vertical de estas reglas horizontales?

Respuesta1

Si bien el método de cslstr es más robusto, una forma de hacerlo es reemplazarlo \hrulefillpor uno que use subrayado usando \xleaders.

\documentclass[letter,10pt]{article}
\newcommand{\ulfrule}{\xleaders\hbox{\underline{ }}\hfill\kern0pt}
\begin{document}
\begin{enumerate}
\item There \hrulefill{} in the room.
\item There \ulfrule{} in the room.
\item There \ulfrule{}\underline{is a chair}\ulfrule{} in the room.
\end{enumerate}
\end{document}

Que produce: salida de ejemplo

Si desea que la respuesta quede alineada, puede eliminar el comienzo \ulfrule{}antes de la respuesta:

\documentclass[letter,10pt]{article}
\newcommand{\ulfrule}{\xleaders\hbox{\underline{ }}\hfill\kern0pt}
\begin{document}
\begin{enumerate}
\item There \hrulefill{} in the room.
\item There \ulfrule{} in the room.
\item There \underline{is a chair}\ulfrule{} in the room.
\end{enumerate}
\end{document}

Más sobre qué\xleadersSe puede encontraren esta respuesta

Respuesta2

Aquí hay una implementación simple:

\documentclass{article}

\newif\ifteacher % starts out false

\newcommand{\fillanswer}[2][\fill]{%
  \unskip\ \lhrulefill{#1}%
  \ifteacher\makebox[0pt]{#2}\fi
  \lhrulefill{#1}\ \ignorespaces}
\newcommand{\lhrulefill}[1]{%
  \leavevmode
  \leaders\hrule height -.3ex depth \dimexpr .3ex+.4pt\relax % define the leader
  \hskip\glueexpr#1/2\relax\relax % how much it should extend
  \kern0pt
}


\begin{document}

\begin{enumerate}
\item There \fillanswer{is a chair} in the room.

\item There \fillanswer[5cm]{is a chair} in the room.

\teachertrue
\item There \fillanswer{is a chair} in the room.

\item There \fillanswer[5cm]{is a chair} in the room.
\end{enumerate}

\end{document}

ingrese la descripción de la imagen aquí

El valor predeterminado para el argumento opcional es \fill, lo que significa que esencialmente\hrulefill se ejecuta (pero la regla se reduce). En realidad nos fijamosdosreglas y el cuadro de ancho cero entre ellos cuando \ifteacherse establece en verdadero.

Respuesta3

Este método utiliza algunas redefiniciones de la \ulinemacro deulem imprimir solo el subrayado de algún texto (con el texto en sí invisible). (Veresta respuestapara una solución similar.)

Agregué un poco de espacio a cada lado del texto para que el espacio en blanco sea un poco más grande de lo necesario (para permitir la escritura a mano). Como se ilustra, esto también manejará con gracia "espacios en blanco" muy largos que terminan extendiéndose a lo largo de varias líneas.

La Versión para Estudiantes se realiza manteniendo el primer \let\filltheblanks...comando y comentando el segundo. La versión para profesores comenta el primer comando y mantiene el segundo.

\documentclass[]{report}

\usepackage{enumerate}
\usepackage[normalem]{ulem}

\begin{document}
\LARGE % Size seemed appropriate for this type of assignment

% Fill-in-the-blank command
\newcommand{\fillintheblank}[1]{\uline{\qquad#1\qquad}}

% For Student Version
\let\filltheblanks\phantom

% For Teacher Version
\let\filltheblanks\null

% Redefined \uline
\makeatletter
\def\UL@putbox{\ifx\UL@start\@empty \else % not inner
  \vrule\@width\z@ \LA@penalty\@M
  {\UL@skip\wd\UL@box \UL@leaders \kern-\UL@skip}%
    \filltheblanks{\box\UL@box}%
  \fi}
\makeatother
%%%%%%%%%%%%%%%%


\begin{enumerate}[1.]

\item There \fillintheblank{was a dog} in the room.

\item There \fillintheblank{was a very, large, wet and disgusting looking dog} outside my door.

\end{enumerate}

\end{document}

Versión para estudiantes:

versión para estudiantes

Versión para profesores:

versión profesora

Respuesta4

Una variación de la respuesta enCree una versión para completar los espacios en blanco de un documento con la capacidad de activar y desactivar los espacios en blanco.

Proporciona \answersubrayado continuo (con saltos de línea) y \answerwordssubrayado palabra por palabra. Descomente \TeacherCopyel preámbulo y obtenga la versión para profesores.

EDITAR, según la solicitud de Manuel, dejo espacio adicional para la respuesta del estudiante, lo cual lo logro estableciendo el tamaño de fuente \Hugeantes de comenzar a ocultar el subrayado y luego restableciéndolo (tenga en cuenta que esto no afecta la altura vertical asignada para la respuesta). ya que el texto enorme se convierte en una regla desafiada verticalmente del mismo ancho).

REEDITADO para que la versión para profesores proporcione el mismo espacio entre palabras que la versión para estudiantes.

Los \censorruleheighty \censorruledepthse pueden modificar para cambiar la elevación, el grosor y la ubicación de la regla, respectivamente.

\documentclass{article}
\usepackage{censor}
\usepackage{xcolor}
\usepackage{readarray}
\usepackage{ifthen}
\censorruledepth=-.2ex
\censorruleheight=.1ex
\newcounter{index}
\def\mysize{\Huge}
\def\answer#1{\mysize\xblackout{#1}\normalsize}
\def\answerwords#1{\mysize\blackout{#1}\normalsize}
\def\TeacherCopy{%
  \def\answer##1{%
    \color{red}%
    \getargsC{##1}%
    \setcounter{index}{0}%
    \whiledo{\theindex<\narg}{%
      \stepcounter{index}%
      \setbox0=\hbox{\mysize\csname arg\romannumeral\theindex\endcsname}%
      \underline{$\vphantom{g}$%
                 \makebox[\wd0]{\csname arg\romannumeral\theindex\endcsname}}%
      \mysize\ \normalsize%
    }%
    \unskip%
    \color{black}%
  }%
  \let\answerwords\answer%
}
%\TeacherCopy
\parindent0pt
\begin{document}
\begin{enumerate}
\item And the answer to life, the universe, and everything, is \answer{forty two}.

\item The beginning six words of the Gettysburg Address are 
\answerwords{Four score and seven years ago}.

\end{enumerate}
\end{document}

Copia del estudiante:

ingrese la descripción de la imagen aquí

Copia del maestro:

ingrese la descripción de la imagen aquí

información relacionada