PS_SHOW_BOXED(3)

okay bestie, welcome to PS_SHOW_BOXED(3) from the Library Functions Manual (section 3, library functions, we love her) πŸŽ€ She's a little pslib girlie and she's about to put your text in a box. Let's get into it.


πŸŽ€ NAME πŸŽ€

PS_show_boxed β€” output text in a box πŸ’Œ


✨ SYNOPSIS ✨

#include <pslib.h>

int PS_show_boxed(PSDoc *psdoc, char *text, float left, float bottom,
float width, float height, const char *hmode, const char *feature)

πŸ¦‹ DESCRIPTION πŸ¦‹

So basically, this function outputs a text in a given box, periodt. The lower left corner of that box sits at (left, bottom) πŸ“.

If you set the height to 0.0, the box will become as tall as it needs to be to hold all the text (it grows itself, main character behavior honestly). And if feature is set to blind, no text will be output but the rest is set as usual β€” which is lowkey iconic because you can use it to calculate the box height you'd need to fit all the text, or to figure out how much text actually fits into a box πŸ”₯.

Line breaks will be inserted where needed. Multiple spaces are treated as one. Tabulators are treated as spaces 🫢. The parameter hmode can be "justify", "fulljustify", "right", "left", or "center" ✨. The difference between "justify" and "fulljustify" only affects the last line of the box:

  • In fulljustify mode, the last line will be left and right justified β€” unless this is also the last line of a paragraph.
  • In justify mode, it will always be left justified.

The text will be hyphenated if the parameter "hyphenation" is set to "true" and the parameter "hyphendict" contains a valid filename for a hyphenation file πŸ’…. The line spacing is taken from the value "leading". Paragraphs can be separated by an empty line, just like in TeX πŸ“š. If the value "parindent" is set to a value > 0.0, then the first n lines will be indented. The number of indented lines is set by the parameter "numindentlines". And in order to prevent indenting of the first m paragraphs, set the value "parindentskip" to a positive number πŸ™ˆ.


πŸ’… USED PARAMETERS πŸ’…

The output of PS_show_boxed can be configured with several parameters and values, which you gotta set with either PS_set_parameter(3) or PS_set_value(3). Beside the parameters and values which affect text output, the following parameters and values are evaluated:

  • leading (value) β€” the distance between baselines of two consecutive lines πŸ“
  • linebreak (parameter) β€” set it to "true" if you want a carriage return to start a new line instead of treating it as a space. Defaults to "false" ✨
  • parbreak (parameter) β€” set it to "true" if you want a carriage return on a single line to start a new paragraph instead of treating it as a space. Defaults to "true" πŸŽ€
  • hyphenation (parameter) β€” set it to "true" to turn hyphenation on. This requires a dictionary to be set with the parameter "hyphendict". Defaults to "false" πŸ’–
  • hyphendict (parameter) β€” filename of the dictionary used for hyphenation patterns (peep below πŸ‘€)
  • hyphenminchar (value) β€” the number of chars which must at least be left over before or after the hyphen. This implies that only words of at least two times this value will be hyphenated. The default value is three. Setting a value of zero will result in the default value 🌸
  • parindent (value) β€” set the amount of space in pixel for indenting the first m lines of a paragraph. That m can be set with the value "numindentlines" πŸ’…
  • parskip (value) β€” set the amount of extra space in pixel between paragraphs. Defaults to 0, which will result in a normal line distance πŸ¦‹
  • numindentlines (value) β€” number of lines from the start of the paragraph which will be indented. Defaults to 1 ⭐
  • parindentskip (value) β€” number of paragraphs in the box whose first lines will not be indented. This defaults to 0. This is useful for paragraphs right after a section heading, or text being continued in a second box β€” in both cases you'd set this to 1 πŸ‘‘
  • linenumbermode (parameter) β€” set how lines are to be numbered. Possible values are "box" for numbering lines in the whole box, or "paragraph" to number lines within each paragraph πŸ”’
  • linenumberspace (value) β€” the space for the column left of the numbered line containing the line number. The line number will be right justified into this column. Defaults to 20 πŸŽ€
  • linenumbersep (value) β€” the space between the column with line numbers and the line itself. Defaults to 5 ✨

🌈 HYPHENATION 🌈

Text is hyphenated if the parameter "hyphenation" is set to true and a valid hyphenation dictionary is set. Now listen, pslib does not ship its own hyphenation dictionary β€” she borrows one from openoffice, scribus or koffice πŸ’€. You can find their dictionaries for different languages in one of the following directories, if the software is installed:

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/

Currently scribus appears to have the most complete hyphenation dictionaries πŸ‘‘πŸ’–.


πŸ’– RETURN VALUE πŸ’–

Number of characters that could not be written. This function will also set the value "boxheight" to the actual height of the box. This enables you to put several boxes beneath each other and keep the proper line spacing 🫢 β€” no cap, it's giving organized.


🫢 SEE ALSO 🫢


πŸ‘‘ AUTHOR πŸ‘‘

This manual page was written by Uwe Steinmann <uwe@steinmann.cx> ✨.


and that's the whole page, bestie!! πŸ¦‹πŸŒΈ This was PS_SHOW_BOXED(3) from the Library Functions Manual, section 3, mwah πŸ’‹ β€” go box up some text, you got this, iykyk πŸŽ€πŸ’…

πŸ“¦ where this page comes from