latex-grid-system icon indicating copy to clipboard operation
latex-grid-system copied to clipboard

grid-system + \newenvironment + \lrbox => no way

Open deepfire opened this issue 8 years ago • 2 comments

I've struggled to make a pair of environments that would extend Row and Cell environments, but also employing \lrbox (aka LaTeX's \savebox) for the Cell contents.

I have tried multiple approaches, but failed, as illustrated:

%% -*- tex-compile-commands: (("latexmk -pdflatex='xelatex' -pdf %f && evince %r.pdf" "%f" "%r.pdf")) -*-
%% \documentclass{beamer}
\documentclass[12pt]{article}
\usepackage{grid-system}

\newsavebox{\xbox}

%%% Savebox: expected result
\newenvironment{context.sb}
{}
% ...               
{}

\newenvironment{entry.sb}
{\begin{lrbox}{\xbox}}
% ...
{\end{lrbox}%

 \usebox{\xbox}}

%%% Grid system, try 1: usage commented out, doesn't compile:
%%% LaTeX Error: \begin{Cell} on input line 97 ended by \end{entry.gs1}.
%%% l.99   \end   {entry.gs1}
\newenvironment{context.gs1}
{\begin{Row}}
% ...               
{\end{Row}}

\newenvironment{entry.gs1}
{\begin{Cell}{1}}
% ...
{\end{Cell}}

%%% Grid system, try 2: OK, expected result
\newenvironment{context.gs2}
{\Row}
% ...               
{\endRow}

\newenvironment{entry.gs2}
{\Cell{1}}
% ...
{\endCell}

%%% Savebox + Grid system, try 1: cell contents missing!
\newenvironment{context.sb.gs1}
{\begin{Row}}
% ...               
{\end{Row}}

\newenvironment{entry.sb.gs1}
{\begin{lrbox}{\xbox}}
% ...
{\end{lrbox}%

 \begin{Cell}{1}%
   \usebox{\xbox}%
 \end{Cell}}

%%% Savebox + Grid system, try 2: usage commented out, doesn't compile:
%%% LaTeX Error: \begin{entry.sb.gs2} on input line 135 ended by \end{context.sb.gs2}.
%%% l.141 \end   {context.sb.gs2}
\newenvironment{context.sb.gs2}
{\Row}
% ...               
{\endRow}

\newenvironment{entry.sb.gs2}
{\begin{lrbox}{\xbox}}
% ...
{\end{lrbox}%

 \Cell{1}%
   \usebox{\xbox}%
 \endCell}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\hrule
\begin {context.sb}
  context.sb
  \begin {entry.sb}
    entry.sb one
  \end   {entry.sb}%
  \begin {entry.sb}
    entry.sb two
  \end   {entry.sb}%
\end   {context.sb}%

%%% Usage commented out, doesn't compile:
%%% LaTeX Error: \begin{Cell} on input line 97 ended by \end{entry.gs1}.
%%% l.99   \end   {entry.gs1}
%% \hrule
%% \begin {context.gs1}
%%   context.gs1
%%   \begin {entry.gs1}
%%     entry.gs1 one
%%   \end   {entry.gs1}%
%%   \begin {entry.gs1}
%%     entry.gs1 two
%%   \end   {entry.gs1}%
%% \end   {context.gs1}%

\hrule
\begin {context.gs2}
  context.gs2
  \begin {entry.gs2}
    entry.gs2 one
  \end   {entry.gs2}%
  \begin {entry.gs2}
    entry.gs2 two
  \end   {entry.gs2}%
\end   {context.gs2}%

\hrule
\begin {context.sb.gs1}
  context.sb.gs
  \begin {entry.sb.gs1}
    entry.sb.gs one
  \end   {entry.sb.gs1}%
  \begin {entry.sb.gs1}
    entry.sb.gs two
  \end   {entry.sb.gs1}%
\end   {context.sb.gs1}%

%%% Usage commented out, doesn't compile:
%%% LaTeX Error: \begin{entry.sb.gs2} on input line 135 ended by \end{context.sb.gs2}.
%%% l.141 \end   {context.sb.gs2}
%% \hrule
%% \begin {context.sb.gs2}
%%   context.sb.gs
%%   \begin {entry.sb.gs2}
%%     entry.sb.gs one
%%   \end   {entry.sb.gs2}%
%%   \begin {entry.sb.gs2}
%%     entry.sb.gs two
%%   \end   {entry.sb.gs2}%
%% \end   {context.sb.gs2}%

\end{document}

The output: screenshot from 2016-06-25 03-27-50

deepfire avatar Jun 25 '16 00:06 deepfire