newenvironment und xltabular

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: newenvironment und xltabular

von Gast » Mi 20. Mär 2019, 12:58

Ich empfehle übrigens, dir beim Schreiben von LaTeX-Code von vornherein einen Stil anzugewöhnen, bei dem unerwünschte Leerzeichen beispielsweise durch nicht auskommentierten Zeilenenden nach { oder } ausgeschlossen sind und bei der durch Einrückung die einzelnen Argumente oder Gruppen leichter erkennbar sind.

von godi » Mi 20. Mär 2019, 12:46

Hallo,
Herzlichen Dank!

Hat mir sehr weitergeholfen => funktioniert jetzt.

Dadurch habe ich in der Anleitung auch noch was gefunden wie bei jedem Seitenumbruch ein Header + "Fortsetzung" eingefügt werden kann:
\documentclass{scrartcl}
\usepackage{xltabular}
\usepackage{forloop}

\newenvironment{MyXLTabular}{%
\xltabular{\linewidth}{|X|}
\hline
Kopfzeile\\
\hline
\endfirsthead
\multicolumn{1}{@{}l}{\ldots\ \small Fortsetzung}\\
\hline
Kopfzeile2\\
\hline
\endhead
\hline
\multicolumn{1}{r@{}}{\small Fortsetzung\ldots}\\
\endfoot
\hline
\endlastfoot
}
{
\endxltabular
}
  
\begin{document}

\newcounter{ct}
\begin{MyXLTabular}
\forloop{ct}{1}{\value{ct} < 100}{Zeile \thect\\}%
Row \thect
\end{MyXLTabular}

\end{document}

von Gast » Mi 20. Mär 2019, 09:10

Diese Problematik wird bereits in der Anleitung zu tabularx behandelt (derzeit auf Seite 4). Bei xltabular ist die Problematik noch verstärkt. Im konkreten Beispiel ist natürlich xltabular gar nicht notwendig. Hier würde longtable vollkommen ausreichen:
\documentclass{scrartcl}
\usepackage{longtable}

\newenvironment{MyXLTabular}{%
\longtable{|p{\dimexpr \textwidth-2\tabcolsep\relax}|}
\hline
}
{
Sonstiges\\  % Sonstiges und hline werden nicht dargestellt
\hline
\endlongtable
}

\begin{document}
\begin{MyXLTabular}
MyXLTabular\\
\end{MyXLTabular}

\end{document}
Wobei man bei einer longtable Anfang und Ende eigentlich per \endfirsthead und \endlastfoot bereits am Anfang der Tabelle definiert:
\documentclass{scrartcl}
\usepackage{longtable}

\newenvironment{MyXLTabular}{%
  \longtable{|p{\dimexpr \textwidth-2\tabcolsep\relax}|}
  \hline
  \endfirsthead
  Sonstiges\\
  \hline
  \endlastfoot
}{%
  \endlongtable
}

\begin{document}
\begin{MyXLTabular}
MyXLTabular\\
\end{MyXLTabular}

\end{document}
Und das bringt und dann darauf, wie man das auch bei xltabular[/x] korrekt löst: [code]\documentclass{scrartcl}
\usepackage{xltabular}

\newenvironment{MyXLTabular}{%
\xltabular{\linewidth}{|X|}
\hline
\endfirsthead
Sonstiges\\
\hline
\endlastfoot
}{%
\endxltabular
}

\begin{document}
\begin{MyXLTabular}
MyXLTabular\\
\end{MyXLTabular}

\end{document}[/code]
Es kommt also eigentlich nur darauf an, die Umgebung auch wirklich als mehrseitige Tabelle, bestehend aus: Tabellenkopf, Tabelleninhalt und Tabellenfuß, zu betrachten und dann korrekt entsprechend zu verwenden.

newenvironment und xltabular

von godi » Di 19. Mär 2019, 21:51

Hallo,
ich möchte xltabular in newenvironment einsetzen.

Leider wird dann der End-Teil von newenvironment ignoriert.
Beispiel:
\documentclass{scrartcl}
\usepackage{xltabular}

% Funktioniert leider nicht => Error
\newenvironment{MyXLTabular}{%
\begin{xltabular}{\linewidth}{|X|}
\hline
}
{
Sonstiges\\ 
\hline
\end{xltabular}
}

% Endbereich wird ignoriert.
\newenvironment{MyXLTabular2}{%
\xltabular{\linewidth}{|X|}
\hline
}
{
Sonstiges\\  % Sonstiges und hline werden nicht dargestellt
\hline
\endxltabular
}
  
\begin{document}
\begin{MyXLTabular2}
MyXLTabular\\
\end{MyXLTabular2}

\end{document}
Weiß jemand wie dies funktionieren könnte, bzw hat Tipps für mich?

godi

Nach oben