MSC-GENERATOR(1)

MSC-GENERATOR(1) πŸ‘‘

okay bestie, so this is MSC-GENERATOR(1), and she lives in the User Commands section of the manual. Iconic placement honestly. It's a command-line girlie and she's about to make your terminal look ✨gorgeous✨.


πŸ’– NAME πŸ’–

msc-gen β€” draws signalling charts from textual descriptions πŸŽ€

like... you type words, and charts happen. the way that works?? chemistry fr fr πŸ’…


✨ SYNOPSIS ✨

msc-gen [OPTIONS] [infile]

that's it. that's the whole vibe check. πŸ¦‹ [OPTIONS] in square brackets means optional (as always, square brackets = optional, no cap), and [infile] is your input file β€” also optional, also bracketed, so don't panic if you're just trying stuff out. 🌸

more coming, bestie, don't go anywhere πŸ’œ

✨ DESCRIPTION ✨

Msc-generator draws signalling charts from textual descriptions. That's the whole vibe: you write text, it hands you a chart. Iconic behaviour honestly. πŸ’…


πŸ‘‘ Program information

  • -h, --help β€” shows you this help and then dips out. Bye bestie. πŸ‘‹
  • -l β€” displays the program license and exits. The legal girly pop moment.
  • --version β€” displays version information and exits. So you know exactly which era of msc-gen you're living in.

πŸŽ€ Operation mode selection

  • --gui β€” this mode pops up a GUI for interactive editing of a chart. Some options apply in GUI mode too, such as -S to start an empty chart of a given type; infile to open a file; --nodesigns, -D to control design libraries; and -F and -L to control the default font.
  • --tei-mode β€” puts msc-generator into text editor integration mode. In this mode msc-gen can produce colour syntax highlighting, quick error, text indent, and hinting/autocomplete information. Input file(s) are read from standard input, output is written to standard output, so no input or output filename can be specified and options -i and -o are invalid. Same deal with the -T option, but -S is mandatory. Option --tei-mode implies -Pno as well. See the documentation for the deets. 🧚
  • --list-embedded β€” lists the charts embedded in a PPT file. Little treasure hunt energy. πŸ”

πŸ¦‹ Input control

  • <infile> β€” the file from which to read input. If specified as -, input will be read from stdin (and -S must be used). The filename extension determines what type of chart the input file contains. You can also specify a PNG image, in which case Msc-generator searches for the chart text embedded in an iTXT chunk. You can also specify a PPT file optionally followed by a slide number, like: my.pptx:2. In this case the chart text is looked for in the PPT file on the given slide (2). You can omit the slide if the file contains only one embedded chart. If the slide contains multiple embedded charts, you can append a number (in increasing Z-order of the chart) to select one. You can embed charts with Msc-generator using, e.g., -T embed:1, or update embedded charts by using them both as input and output:
msc-gen my.pptx:2:1 -T embed:2:1 -o my.pptx
  • -i <infile> β€” to retain compatibility with mscgen, this is an alternate way to specify the input file. Legacy bestie support, we love her. 🫢
  • -S <lang> β€” forces Msc-generator to interpret the input file as a specific type of chart. This overrides the guess from the filename extension. Current chart types are signalling for Signalling Charts, graph for Graphviz graphs, and block for Block Diagrams.
  • --utf8 β€” forces the input file to be interpreted as UTF-8, even if it does not look like it. Gaslighting the parser, but make it ✨ intentional.
  • --utf16 β€” forces the input file to be interpreted as UTF-16, even if it looks like UTF-8 or ASCII.
  • --opt=<chart_option>=<value> β€” these options will be evaluated before the input file. Any value here will be overwritten by a conflicting option in the file. So the file always gets the final word, lowkey.
  • --design=<chart_design> β€” any chart design can be specified here, taking precedence over the design specified in the input file. Main character energy, the design here wins. πŸ‘‘

🌈 Output control

  • -a[h] β€” automatic pagination. Only used with full-page output. If specified, scale cannot be auto. Specifying -ah will insert a heading after automatically inserted page breaks.
  • -D <design_file> β€” loads a file containing additional chart design definitions. You can have multiple of this option to load several design files, after the default ones. These files are loaded even if --nodesigns is specified. Sneaky but valid.
  • -e β€” if the output type is PNG, specifying this will embed the chart text into the PNG file as an iTXt chunk. In case of multiple pages (and multiple output files) all will have it embedded. Results in a warning if the output type is not PNG. ⚠️
  • -F <font> β€” use the specified font. This must be a font name available in the local system, and it overrides the MSCGEN_FONT environment variable if that is also set. (On Linux\Unix try fontconfig.)
  • -L <lang> β€” use the specified language to select fonts. It must be an RFC 3066 style language specifier, and will override any value in the MSCGEN_FONT_LANG environment variable. Use either 2 letter lang codes, such as ja for Japanese, zh for Chinese, etc. Ignored on Windows, as font names are language specific there.
  • -m{lrud}=<margin> β€” useful only for full-page output, specifies the margin. A separate option is needed to specify the left, right, upwards and downwards margins, denoted by the second letter of the option. Margins are to be specified in inches (number only) or in centimeters, if appended with cm (no spaces). The default margin is half inches everywhere.
  • --nodesigns β€” if you specify this, no design files will be loaded (except the ones you specify with -D). This is useful to increase performance when you do not use them anyway. Speed demon era. πŸ”₯
  • --nopaths β€” only the filename will be printed in error messages, without its path.
  • -o <file> β€” writes output to the named file. If omitted, the input filename will be appended by an extension suitable for the output format. If neither input nor output file is given, msc-gen_out.* will be used. Specifying - will result in the output being written to standard output.
  • -p[=<page size> β€” full-page output. (PDF or PPT only, automatically implied for PPT.) In this case the chart is drawn on fixed-size pages (following pagination) with one pixel equaling to 1/72 inches for PDF and 1/96 inches for PPT. If a chart page is larger than a physical page it is simply cropped with a warning. Setting the scale with the -s option enables zooming. Page size can be set to ISO sizes from A0 to A6, and to US sizes, such as letter, legal, ledger and tabloid. Append a p or an l for portrait and landscape, respectively (except for tabloid and ledger, which are by definition portrait and landscape, resp.). E.g., use A4p, A2l or letter_l. Default is A4p for PDF and widescreen_l for PPT, but you can also use on_screen_4_3_l or on_screen_16_9 as well.
  • --no-pedantic
  • --pedantic β€” set or unset the pedantic chart option (defaults to what is set in the design lib or false if not defined).
  • -Pno β€” no progress indicator displayed.
  • -q β€” no progress indicator displayed, plus any final Success. is also suppressed. On success with no warnings msc-gen prints nothing. Silent treatment, but make it ✨correct✨.
  • -s=<scale> β€” can be used to scale chart size up or down. Default is 1.0. Cannot be used together with any of the -x or -y options. Only for bitmap or full-page output (-p). For full-page output, you can set <scale> to width which results in the chart width being set to the page width, or to auto, which scales such that all pages fit. For full-page output, you can specify multiple -s options, which makes msc-gen try them in the order specified until one is found for which no pages need to be cropped. If none is such, the last one will be used and a warning will be given.
  • -T <type> β€” specifies the output file type, which may be png, eps, pdf, svg, ppt or emf (if supported on your system). Default is png. The token ismap produces an NCSA formatted ismap file. The token lmap is accepted and results in a text file listing (the first line of) all labels and their page number and coordinates. src will simply save the chart text; useful if you want to extract the source of charts embedded in PNG and PPT input files. You can also use embed with a PPT output file to append a page with a PNG of the chart that includes the chart text (and can be later edited by Msc-generator). embed:<page> will add the PNG to an existing page, while embed:<page>:<chart> will update an existing chart (<chart> is the number of the chart on that page in Z-order starting from 1).
  • --TI β€” additional Technical Info is printed about compilation. Nerd mode activated, respectfully. πŸ€“
  • -va=<center|up|down>
  • -ha=<center|left|right> β€” set the vertical and horizontal alignment within a page for fullpage output.
  • -Wno β€” no warnings displayed.
  • -x=<width> β€” specifies chart width (in pixels). Only for bitmap output.
  • -y=<height> β€” specifies chart height (in pixels). If only one of -x or -y is specified, the aspect ratio is kept. Only for bitmap output.
  • --fps=<fps> β€” can be used to select the maximum frames per second for the GUI. Silently ignored when not using the GUI. Ignored on Windows, as there frame presentation is synchronized to the refresh of the screen, maxing the FPS to the screen FPS.

πŸ’œ Signalling chart specific options

  • --force-mscgen β€” forces the chart to be interpreted in mscgen mode. Note that many Msc-generator attributes, commands and keywords are still recognized. This setting makes conflicting syntax be interpreted as mscgen would do. Without this switch, Msc-generator uses the mscgen mode only if the chart starts with the text msc {.
  • --prevent-mscgen β€” prevents the chart from being interpreted in mscgen mode. Note that some mscgen attributes and symbols are still recognized. This setting makes conflicting syntax be interpreted as Msc-generator would do. Without this switch, Msc-generator uses the mscgen mode if the chart starts with the text msc {.
  • -Wno-mscgen β€” disables warnings for deprecated constructs kept only for backwards compatibility with mscgen. Has no effect with --force-mscgen, in that case no such warnings are emitted anyway.

πŸ“ Environment variables

  • MSCGEN_FONT β€” can be used to define the default font similar to the -F option.
  • MSCGEN_FONT_LANG β€” can be used to define the default language for fontconfig based systems, similar to the -L option.
  • MSCGEN_NOFONT β€” when set (to any value), Msc-generator draws no text to any output (but considers the place of the text at layout as normally). Useful for testing.
  • MSCGEN_FPS β€” when set to a number, the GUI will use it as maximum frames per second. Can be overridden by the --fps option. Ignored on Windows, as there frame presentation is synchronized to the refresh of the screen, maxing the FPS to the screen FPS.

Copyright Β© 2008-2024 Zoltan Turanyi β€” and bestie, listen, Msc-generator comes with ABSOLUTELY NO WARRANTY. None. Zero. Nada. πŸ’€ Like, if it breaks it's not on them, fr fr.

But also!! It's free software πŸŽ€, and you're totally welcome to redistribute it under certain conditions β€” no gatekeeping here. Wanna see the receipts? Just type:

msc-gen -l

and the details are all yours. slay. ✨


🌈 SEE ALSO 🌈

Okay so the full documentation for Msc-generator lives as a Texinfo manual πŸ“– (yes, really, Texinfo is iconic in its own vintage way, iykyk). If the info and Msc-generator programs are properly installed at your site, then running:

info msc-gen

gives you access to the complete manual. 🫢 Go off, read the whole thing.


And that's the whole page, bestie!! πŸ’– This was Msc-generator v8.6.4 (using Dea…) β€” dated July 2026 β€” and the manual page is MSC-GENERATOR(1). Mwah. πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from