Graphics, Figures & Tablesflowfram - 3 columns

Information and discussion about graphics, figures & tables in LaTeX documents.
Post Reply
ZacharyRann
Posts: 5
Joined: Thu Feb 27, 2025 12:51 am

flowfram - 3 columns

Post by ZacharyRann »

Hello All! I hope I'm not being too tedious or too vague >_<

How should I prevent the text from running out of the frame using while using an 'ExPeX' Gloss (https://ctan.org/pkg/expex) in 3 'flowfram' columns (https://ctan.org/pkg/flowfram)?

I keep finding definitions of the Flow, Static, and Dynamic Frames, and I misunderstood I'd need a Static frame frome someone's wording.

Would I just need to set the frames on this page to a certain type to let the text flow from one frame to the next or is this just going to have issues? I see the documentation outlining that \framebreak will need to be used often for Flow Frames with different widths, the \Ncolumn option seems to be populating a frame for a column and a Margin (which I do want), and they are different widths.. is that just the only option here, or would storing the contents of the Gloss in a macro let that macro be used with a Dynamic frame?

Screenshot 2025-03-09 161954.png
Screenshot 2025-03-09 161954.png (106.21 KiB) Viewed 922 times

Code: Select all

\documentclass[12pt,a4paper]{article}
\usepackage[landscape]{geometry}
\usepackage[draft]{flowfram}
\usepackage{expex}

\geometry{
	top=25mm,
	bottom=38mm,
}

\headsep = 0pt
\marginparsep = 0pt
\marginparwidth = 25pt

\ffvadjustfalse
\setlength{\marginparsep}{-7.2cm}
\setlength{\columnsep}{1cm}
\Ncolumn{3}

\defineglwlevels{lit}


\newcommand{\verseone}{
	\begingl[glhangstyle=none, extraglskip=6pt, aboveglbskip=-2pt, aboveglcskip=-3pt, abovegllitskip=1pt, everygla=\large, everyglb=\itshape \footnotesize, everyglc=\itshape \scriptsize, everygllit=\normalsize, glwordalign=center, glspace=!.15em] 
		\gla ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO ONE TWO//
		\glb one two one two one two one two one two one two one two one two one two one two one two one two one two one two one two one two one two//
		\glc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34//
		\gllit One Two Three Four Five Six Seven Eight Nine Ten Eleven Twelve Thirteen Fourteen Fifteen Sixteen Seventeen Eighteen Nineteen Twenty Twenty-One Twenty-Two Twenty-Three Twenty-Four Twenty-Five Twenty-Six Twenty-Seven Twenty-Eight Twenty-Nine Thirty Thirty-One Thirty-Two Thirty-Three Thirty-Four//
	\endgl}

\begin{document}\emergencystretch 3em
%	\input{resources/verses}
	\marginpar{\centering\vspace{-.75em} 1:1}\verseone
\end{document}
I am attempting to create an A4 Landscape document with an ExPex Gloss spanning 3 columns acroll multiple pages. I'm coming from the Multicols package because I was not able to use marginpar, and 'marginnote' was a bit tedious to get the placement correct.

'flowfram' seems to have been a good solution, but I am having a difficult time getting text output from the gloss to behave as expected.

With minimal knowledge, my investigation keeps turning up answers directing me to set up a Static Frame to sort of define the constraints of the frames, if that's accurate, so that text doesn't run out of the frame or other text run into it from outside the frame. I'm just not having a great time finding how that is done, and I'm thinking that's becuase the documentation I'm looking at is for setting up individual frames, and I've used \Ncolumn{3}... not found how to specify static columns from \Ncolumn{num}, and I've not had much luck trying to find the ID of the Frame to use the \setstaticframe {hidn list} {key-val list} (I'd seen M:1, M:2, and M:3 that looked like the ID, but I kept getting the 'Missing number, treated as Zero' when trying to just go with '1' as the frame ID) [EDIT: I see now that's Margin:1, 2, and 3. The placement of the margin frames I forced created some confusion there. I see F:1;1, F:2;2, and F:3;3, but I'm not certain that the correct path forward to fix text flowing out of the frame is to set the frames to static]


Current behavior:
The Gloss is populating in the '2nd column', and is runs out of the bottom of the frame, but stays within the left and right of the frame.
I've been able to force the 'margin note' frame to the left of my column like I wanted (not sure if hacking it to the left may be adding problems at all).

How might I get the gloss to populate in the '1st column' and flow to the next 'column' without having to separate the gloss? (I'm using the gloss to enter a verse at a time similar to the \verse command for poems, I'm separating the verses by gloss mainly to know where to place the \marginnote command with multicols, don't know if this is a silly solution now, I.E. if I can just create a single very large gloss in ExPeX, and call it into the frames and have the frames flow the text appropriately, and just add the Margin Notes using \marginpar and control the vertical offset, mayyybe that'd be better? Or even more silly, I'm not seeing it)

EDIT: 3/10/2025: Sorry, noticed I'd left in the input command, the PDF compiles in the same way I'm seeing after removing that

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org
LaTeX Beginner's Guide LaTeX Cookbook LaTeX TikZ graphics TikZによるLaTeXグラフィックス
ZacharyRann
Posts: 5
Joined: Thu Feb 27, 2025 12:51 am

Re: flowfram - 3 columns

Post by ZacharyRann »

Update: I never found much about what I was looking for directly here, but I accomplished my goal by filling out a column, and forcing the text that would run out of the column into the next column.

I think this is what the documentation was talking about when there are multiple flow frames with different widths. I didn't have to use the \framebreak option though, since just adding a new ExPeX gloss just seems to force the output of the new gloss to start in a new 'column' flow frame.
Post Reply