Doublespace-Umgebung verhält sich seltsam und ich habe keine Ahnung, wie

Doublespace-Umgebung verhält sich seltsam und ich habe keine Ahnung, wie

Ich bin Highschool-Lehrer und möchte die Formatierung einer gängigen Prüfung mit TeX nachbilden. Um mir das zu erleichtern, versuche ich, Befehle zu schreiben, mit denen ich gängige Fragen nachahmen kann. Ich habe derzeit einige Probleme mit der Doublespace-Umgebung – die Formatierung verwendet doppelten Zeilenabstand, um Fragezeilen zu erstellen. Hier ist ein funktionierendes Beispiel für meine Implementierung:

\newcounter{qnumber}
\newcounter{partnumber}[qnumber]
\newcommand{\writeq}[3][0]{ %simple written question command
    \stepcounter{qnumber}
    \textbf{Question \arabic{qnumber}\hfill (#2 marks)}\\
    #3\\
    \begin{doublespace}
        \foreach \n in {1,...,#1}{\rule{\linewidth}{0.5pt}\\}
    \end{doublespace}    
}

\writeq[3]{4}{My question is this one.}

Bildbeschreibung hier eingeben

Ich möchte nun also "mehrteilige Fragen" erstellen und habe dazu folgenden Befehl konstruiert:

%Multi-part question commands
\newcommand{\mpqstem}[2]{
    \stepcounter{qnumber}
    \setcounter{partnumber}{0}  % Reset part number
    \noindent \textbf{Question \arabic{qnumber}\hfill (#1 marks)}\\ \\ 
    #2 \vspace{0.2cm}
}

\newcommand{\mpq}[3][0]{ %simple written question command
    \stepcounter{partnumber}
    \alph{partnumber}) \hangindent=1.27cm \hangafter=0 #3\\
    \rule{0pt}{1pt}\hfill(#2 marks)\vspace{0.5cm}
    \begin{doublespace}
        \foreach \n in {1,...,#1}{\rule{\linewidth-1.27cm}{0.5pt}\\}
    \end{doublespace} 
}

Der Stamm wird verwendet, um den Kontext festzulegen, und der mpq-Befehl ist dann die eigentliche Frage zu diesem Teil. Mit dieser Kombination bekomme ich jedoch einen doppelten Zeilenabstand im Text, aber nicht in den Zeilen – und ich kann nicht herausfinden, warum. Unten sehen Sie, wie ich versuche, den Befehl zu verwenden, und was dabei herauskommt:

\mpqstem{4}{This is the scary question, and thankfully this bit is showing up okay without any double-spacing. But that also makes sense, since this command doesn't touch the spacing.}

\mpq[2]{2}{This is part 1, and it's going to be very long to show what is happening with the spacing and make it clear that this is double-spaced.}

\mpq[2]{2}{This is part 2, and it's also going to be very long to show what is happening with the spacing and make it clear that this is double-spaced.}

Bildbeschreibung hier eingeben

Antwort1

Ihr Codeausschnitt ist nicht kompilierbar, da viele wichtige Informationen fehlen. Beherzigen Sie jedoch unbedingt den Vorschlag von @UlrikeFischer und verwenden Sie nicht mehr \\anstelle von \par. Beispielsweise kann der folgende Code für die drei Befehle hilfreich sein, um Ihre endgültigen Formatierungsziele zu erreichen.

\newcounter{qnumber}
\newcounter{partnumber}[qnumber] tie 'partnumber' counter to 'qnumber' counter

\newcommand{\writeq}[3][0]{ %simple written question command
    \refstepcounter{qnumber} % use \refstepcounter, not \stepcounter
    \par\noindent
    \textbf{Question \arabic{qnumber}\hfill(#2 marks)}
    \par
    #3
    \par
    \begin{doublespace}
        \foreach \n in {1,\dots,#1}{\rule{\linewidth}{0.5pt}}
        \par
    \end{doublespace}
}

\newcommand{\mpqstem}[2]{
    \refstepcounter{qnumber}
    %%\setcounter{partnumber}{0}  % not needed
    \par\noindent 
    \textbf{Question \arabic{qnumber}\hfill(#1 marks)}
    \par
    \vspace{1\baselineskip}
    #2 
    \par
    \vspace{2mm}
}

\newcommand{\mpq}[3][0]{ %simple written question command
    \refstepcounter{partnumber}
    \par\noindent \hangindent=1.27cm \hangafter=0
    \alph{partnumber}) #3
    \par\noindent
    \rule{0pt}{1pt}\hfill(#2 marks)
    \par
    \vspace{5mm}
    \begin{doublespace}
        \foreach \n in {1,\dots,#1}{\rule{\linewidth-1.27cm}{0.5pt}}
        \par
    \end{doublespace} 
}

verwandte Informationen