I was inspired and defined “fillIn” for my purposes with an underline. The problem was that there was no line break. Then I defined a command “showTextOrLines” that uses the working command “drawLins”. This switches between lines and text. If the text is to be underlined, there is no line break.
\newcommand{\showTextOrLines}[3][2]{% Switches between Text 1 and Text 2
\iftoggle{showAnswers}{\begin{spacing}{#1}#3\end{spacing}}{\drawLins[#1]{#2}} }
works,
\newcommand{\showTextOrLines}[3][2]{% Switches between Text 1 and Text 2
\iftoggle{showAnswers}{\begin{spacing}{#1}\underline{#3}\end{spacing}}{\drawLins[#1]{#2}}
}
does not work.
I tried to make a minipage to adjust the size of the empty box in #2 instead of drawLins, worked very well until i tried to underline. No linebreake anymore. What is wrong?
\documentclass[]{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{mdframed} % für Boxen
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{autobreak}
\setmainfont{Futura Book BT}[ItalicFont = Futura Book Italic BT,BoldFont = Futura Heavy BT,BoldItalicFont = Futura Heavy Italic BT ]
\usepackage{pgffor}
\usepackage{etoolbox}
\pgfplotsset{compat=1.18}
\usepackage{setspace}
\usepackage{fp}%für Rechungen mit Variablen
\usepackage{ulem} %für alle möglichen Unterstreichungen usw
\usepackage{seqsplit} %für Zeilenumbrüche in Umgebungen, hat nicht funktioniert
\usepackage{soul} %für Zeilenumbrüche bei Unterstrichen
\usepackage{forloop}%Für Schleifen
\newtoggle{showComments} %Schalter zum Anzeigen von Kommentaren \mycomment
\newcommand{\mycomment}[1]{
\iftoggle{showComments}
{#1}
{}
}
\newtoggle{showAnswers}
\newlength{\mylen}
\newcommand{\fillin}[1]{
\settowidth{\mylen}{#1}
\iftoggle{showAnswers}
{#1}
{\rule{1.5\mylen}{0pt}}
}
\newcommand{\fillinU}[1]{
\settowidth{\mylen}{#1}
\iftoggle{showAnswers}
{\underline{#1}}
{\underline{\rule{1.5\mylen}{0pt}}}
}
\newcommand{\drawLins}[2][2]{%zeichnet Linien
\foreach \n in {1,...,#2} {%
\noindent\rule{\linewidth}{0.4pt}\[#1\baselineskip]%
}%
\typeout{%
\string\drawLins\space Optionen:%
1. Argument (optional): Zeilenabstand (Standardwert: 2)
2. Argument (obligatorisch): Anzahl der zu zeichnenden Linien
}%
}
\newcommand{\showText}[2]{%Wechselt zwischen Text 1 und TExt 2
\iftoggle{showAnswers}{#2}{#1}
}%
\newcommand{\showTextOrLines}[3][2]{% Wechselt zwischen Linen (#2) und Text (#3)
\iftoggle{showAnswers}{\begin{spacing}{#1}\underline{#3}\end{spacing}}{\drawLins[#1]{#2}}
\typeout{%
\string\drawLins\space Optionen:%
1. Argument (optional): Zeilenabstand
2. Argument (obligatorisch): Text, auf den umgeschaltet werden kann
3. Argument (obligatorisch):Anzahl der Zeilen
}
}
%\toggletrue{showComments} % Zum Anzeigen von Kommentaren auf 'true' setzen, zum Ausblenden auf 'false' setzen
\togglefalse{showComments}%zum Verbergen von \mycomment
\toggletrue{showAnswers} % Antworten einblenden
%\togglefalse{showAnswers} % Antworten ausblenden
\begin{document}
\section{Magnetismus}
Den wichtigsten Satz als erstes: \
\begin{large} Es gibt \fillinU{keine magnetischen Monopole!}\end{large}\\
Das bedeutet:\\
\showTextOrLines[2]{2}{Es gibt keine einzelnen Nord- oder Südpole. Diese können immer nur gemeinsam in einem Magneten auftreten. Entzweit man diesen Magneten, so haben beide neuen wieder einen Nord- und einen Südpol.}
\vspace*{0.5cm}
Testtest
\end{document}
I thought there could be something wrong with the font? But that did not change anything. Thank for your help
\underlinemakes a box like\mboxso will never linebreak – David Carlisle Nov 28 '23 at 19:25