0

I'd like to share my page in 4 areas: A, B, C, D page is half share horizontally and each of this areas are shared in half vertically .

A in the top left where text rotate of 180° and is aligns on the right margin B in the top right where text rotate of 180°and is aligns on the right margin C in the bottom left where text are normaly and is aligns on the left margin C in the bottom right where text are normaly and is aligns on the left margin

I'd like to make a template that make my text "flow" in area A, B, C then D.

I'd prefer to avoid the use of a table but if it's the easier way, I'm not against.

here is the code I have made, it rotate text but text a left aligned and fail to make 2 columns

\documentclass{article}

% preambule
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage[french]{babel}


\usepackage{graphicx}

\begin{document}


\begin{multicols}{2}
\rotatebox{180}{coffe}
\newline
\rotatebox{180}{beer}
\newline
\rotatebox{180}{water} 
\newline
\rotatebox{180}{soda}
\newline
\rotatebox{180}{tea}
\newline
\rotatebox{180}{gin}
\end{multicols}
\end{document}

here a pic to show what i want. Sharing lines may optionally be display or hidden. and part A and B can be tab instead of 2 columns, and if part A can't contain all the tab, it will continue in B part (Part A still reversed and part B normal. enter image description here

enter image description here

2

1 Answer 1

0

Like this?

With expl3, 2 keys:

  1. nbrows (4 by default)
  2. angle (0° by defaut)

with tabularray

  1. comment hlines,vlines, if if not delineated

  2. colspec={*{2}{Q[l,m,wd=0.45\linewidth]}}, for the width of the column

  3. rows = {0.1\textheight} for the height of the rows

    \documentclass{article}
    \usepackage{showframe}
    \usepackage{tikz}
    \usepackage{tabularray}
    \parindent=0pt
    \ExplSyntaxOn
    \seq_new:N \l__nameyourmodule_elem_seq
    \tl_new:N \l__nameyourmodule_table_tl
    \tl_new:N \l__nameyourmodule_nbrows_tl
    \tl_new:N \l__nameyourmodule_angle_tl
    \tl_new:N \l__nameyourmodule_rowHeight_tl
    \keys_define:nn { yourtable }
        { 
            nbrows .tl_set:N = \l__nameyourmodule_nbrows_tl,
            angle .tl_set:N = \l__nameyourmodule_angle_tl,
            %%% default values 
            nbrows .initial:n = { 4 },
            angle .initial:n = { 0 },
        }
    \NewDocumentCommand{\mytable}{O{} m }
    {
        \keys_set:nn { yourtable } { #1 }
        \seq_set_from_clist:Nn \l__nameyourmodule_elem_seq {#2}
        \tl_clear:N \l__nameyourmodule_table_tl
        \int_step_inline:nn {\l__nameyourmodule_nbrows_tl}
        % \seq_map_inline:Nn \l__nameyourmodule_elem_seq  
        {  
        \tl_put_right:Nn \l__nameyourmodule_table_tl 
            {
            \seq_item:Nn \l__nameyourmodule_elem_seq {##1} & 
            \seq_item:Nn \l__nameyourmodule_elem_seq {\l__nameyourmodule_nbrows_tl+##1}\\
            }
        }
    
        \begin{tikzpicture}
        \node[rotate=\l__nameyourmodule_angle_tl]
            {
            \use:x% code of frougon  https://tex.stackexchange.com/questions/648904/misplaced-alignment-tab-character-with-tabularray-and-expl3
                {
                \exp_not:n {\begin{tblr}
                                {
                                hlines,vlines,
                                colspec={*{2}{Q[l,m,wd=0.45\linewidth]}},
                                rows = {0.1\textheight}
                                }}
                \exp_not:V {\l__nameyourmodule_table_tl}
                \exp_not:n {\end{tblr}}
                }
            };
        \end{tikzpicture}
    }
    \ExplSyntaxOff
    \begin{document}
    \mytable{Neqe,porro,quisquam,est,lg5}
    
    \mytable[angle=180]{Neqe,porro,quisquam,est,lg5}
    
    \mytable[nbrows=3]{lg1,lg2,lg3,lg4,lg5}
    
    \mytable[nbrows=3,angle=90]{lg1,lg2,lg3,lg4,lg5}
    \end{document}
    

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.