Wie erstelle ich eine LaTeX3-Umgebung in Paracol ohne Trennzeichenprobleme?

Wie erstelle ich eine LaTeX3-Umgebung in Paracol ohne Trennzeichenprobleme?

Ich möchte diesAntwortin eine Umgebung. Daher xparsedefiniere ich normalerweise eine LaTeX3-Umgebung, aber mir fehlt etwas, weil dies Fehler verursacht.

Anscheinend habe ich Probleme mit Trennzeichen und dem Ende von Umgebungen.

Hier ein MWE:

\documentclass{article}

  \usepackage{graphicx,float}
  \usepackage{amsmath}
  \usepackage{paracol}
     \setlength{\columnseprule}{0.4pt}
     \setlength{\columnsep}{2em}

  \usepackage{xparse}
     \ExplSyntaxOn
     \NewDocumentEnvironment{outParaCol}{+b}
     {
        \group_begin:
        \switchcolumn[0]*[#1]
     }
     {
        \group_end:
     }
     \ExplSyntaxOff


\begin{document} 

\begin{paracol}{2}
  \begin{leftcolumn}
     For several days in succession fragments of a defeated army had passed through the town. 
     
     They were mere disorganized bands, not disciplined forces. 
     The men wore long, dirty beards and tattered uniforms; they advanced in listless fashion, without a flag, without a leader.
     All seemed exhausted, worn out, incapable of thought or resolve, marching onward merely by force of habit, and dropping to the ground with fatigue the moment they halted.
  \end{leftcolumn}
  \begin{rightcolumn}
     Pendant plusieurs jours de suite des lambeaux d'armée en déroute avaient traversé la ville. 

     Ce n'était point de la troupe, mais des hordes débandées. 
     Les hommes avaient la barbe longue et sale, des uniformes en guenilles, et ils avançaient d'une allure molle, 
     sans drapeau, sans régiment. Tous semblaient accablés, éreintés, incapables d'une pensée ou d'une résolution,   marchant seulement par habitude, et tombant de fatigue sitôt qu'ils s'arrêtaient. 
  \end{rightcolumn}

  \begin{outParaCol} % not working %  Missing delimiter (. inserted). <to be read again> \tex_par:D 
  % \switchcolumn[0]*[{ % working
     \begin{equation}
           a+B \left[\frac{1}{2}\right]
     \end{equation}
  % }] % end of switchcolumn
  \end{outParaCol}

  \begin{outParaCol} % not working % Paragraph ended before \@float@HH was complete. <to be read again> \par 
  % \switchcolumn[0]*[{ % working
     \begin{figure}[H]
     \centering
     \includegraphics[width=\linewidth]{example-image}
     \setlength{\columnwidth}{\dimexpr 0.5\textwidth-0.5\columnsep}%
        \caption{A caption}
     \end{figure}
  %  }] % end of switchcolumn
  \end{outParaCol}

  \begin{leftcolumn}
     One saw, in particular, many enlisted men, pea\-ceful citizens, men who lived quietly on their income, bending beneath the weight of their rifles; and little active volunteers,   easily frightened but full of enthusiasm, as eager to attack as they were ready to take to flight; and amid these, a sprinkling of red-breeched soldiers,       the pitiful remnant of a division cut down in a great battle; somber artillerymen, side by side with nondescript foot-soldiers; and, here and there, the gleaming helmet of a heavy-footed dragoon who had difficulty in keeping up with the quicker pace of the soldiers of the line.
  \end{leftcolumn}
  \begin{rightcolumn}
     On voyait surtout des mobilisés, gens pacifiques, rentiers tranquilles, pliant sous le poids du fusil; des petits moblots alertes, faciles à l'épouvante et prom\-pts à l'enthousiasme, prêts à l'attaque comme à la fuite; puis, au milieu d'eux, quelques culottes rouges, débris d'une division moulue dans une gran\-de bataille; des artilleurs sombres alignés avec des fantassins divers; et, parfois, le casque brillant d'un dragon au pied pesant qui suivait avec peine la marche plus légère des lignards.
  \end{rightcolumn}

\end{paracol}
\end{document}
%EoF

Antwort1

Beachten Sie, dass Sie es nur xparsein alten Latex-Versionen benötigen.

\NewDocumentEnvironmentltcmd.dtxist (in ) als Teil des LaTeX-Formats definiert und ohne Paket verwendbar.

Das Problem besteht darin, dass Sie im referenzierten Code das {}„used in the argument “ weggelassen haben .[{...}]

Die {}hier dienen zur Begrenzung eines Arguments (wobei alle verschachtelten Argumente ausgeblendet werden, ]sodass das optionale Argument bei Bedarf endet). Sie können für eine solche Verwendung keine impliziten Gruppen wie \bgroupoder verwenden \group_begin:. Genau wie Sie {}in benötigen, \fbox{abc}können Sie nicht verwenden \fbox\bgroup abc\egroup.

verwandte Informationen