.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SCURVY 1" .TH SCURVY 1 "2009-05-06" "scurvy v1.02" "" scurvy \- Format scripts / screenplays .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBscurvy\fR [options] <\fIfile\fR> [\fI\-o\ <\fIfile\fI>\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" scurvy converts text files in a simple format into proper screenplay format. It's something I wrote because I hate using snifty \s-1GUI\s0 editors when I believe a text editor is all you need. .PP .Vb 1 \& "If you can't vi it, it sucks" .Ve .PP It takes a text file as input and outputs a screenplay. More formats may occur someday.. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-out\fR \fIfile\fR" 4 .IX Item "-out file" Set the output file (otherwise write to standard out) .IP "\fB\-c\fR" 4 .IX Item "-c" Number the scene headings (\s-1INT\s0, \s-1EXT\s0, I/E) .IP "\fB\-C\fR" 4 .IX Item "-C" Show the \*(L"\s-1CONTINUED\s0\*(R" page breaks .IP "\fB\-i\fR" 4 .IX Item "-i" Add the left margin indentation. (Good for final print) .IP "\fB\-indent\fR \fItabs\fR" 4 .IX Item "-indent tabs" Add the left margin indentation with a specific number of tabs. .IP "\fB\-in_indent\fR \fItabs\fR" 4 .IX Item "-in_indent tabs" Specify the extra number of indent tabs in the input file. (Defaults to three for 'final' input format) .IP "\fB\-n\fR" 4 .IX Item "-n" Show page/line numbers .IP "\fB\-I\fR \fIfmt\fR" 4 .IX Item "-I fmt" Specify the input format: .Sp \&\fBscurvy\fR Our simple input format (described below) .Sp \&\fBtext\fR The default text script output (can be an input format also) .Sp \&\fBfinal\fR Final Draft format (text\-with\-layout) .Sp \&\fBrtf\fR \s-1RTF\s0 (input only) format Using the Final Draft style sheet with styles: \s-1GENERAL\s0 \s-1SCENE\s0 \s-1HEADING\s0 \s-1ACTION\s0 \s-1CHARACTER\s0 \s-1NAME\s0 \s-1PARENTHETICAL\s0 \s-1DIALOG\s0 \s-1TRANSITION\s0 \s-1SHOT\s0 .Sp If you want to convert a Final Draft document so you can edit it in scurvy, then first save it as text-with-layout \- we'll call this file 'mymovie.fdr' .Sp Then you can use scurvy to convert this to scurvy format: .Sp % scurvy \-I final mymovie.fdr \-O scurvy \-o mymovie.scr .Sp It's possible you'll get an error if your margins are different \- the default margins should be read correctly, but if not try adjusting \-in_indent. .Sp You can also try saving as \s-1RTF\s0 and then reading in the \s-1RTF\s0, though this isn't guaranteed to work with all versions of Final Draft. If you have a different script writer that does \s-1RTF\s0 output, I'd love to see a sample copy. To convert rtf we would save as rtf and: .Sp % scurvy \-I rtf mymovie.rtf \-O scurvy \-o mymovie.scr .Sp Then you can edit mymovie.scr and get the final output with scurvy: .Sp % scurvy mymovie.scr \-o mymovie.txt .Sp You will, of course, lose any aliases you may have had. Try a simple search and replace. For example, to convert the name \*(L"Dave\*(R" to be an alias \*(L"D\*(R" you can add the alias line to the top: .Sp .Vb 1 \& Dv:=Dave Madison .Ve .Sp And then do the search and replace (example using vi/vim): .Sp .Vb 2 \& :%s/^Dave Madison/Dv:/ \& :%s/^Dave Madison (/Dv (/ .Ve .Sp (The second line is for quotes with parenthesis) .IP "\fB\-O\fR \fIfmt\fR" 4 .IX Item "-O fmt" Specify the output format. (Same formats as input) .SH "REQUIREMENTS" .IX Header "REQUIREMENTS" Since scurvy uses tabs to determine formatting, you need to make sure your text editor isn't converting this into spaces. In vi and vim you need to make sure you haven't set 'expandtab' \- if you have, you can turn it off with .PP .Vb 1 \& :noexpandtab .Ve .SH "SCURVY FORMAT" .IX Header "SCURVY FORMAT" There are five types of line formats: heading, action, dialogue, transition, general. Each type \fBmust\fR be on it's own line. (Use \fI:set wrap\fR in vi/vim to make it easier to edit) .IP "\fBscene heading\fR" 4 .IX Item "scene heading" Scene headings are automatically recognized since they start with \s-1INT\s0, \s-1EXT\s0 or I/E. .IP "\fBaction\fR" 4 .IX Item "action" Action lines start after one tab. .IP "\fBtransition\fR" 4 .IX Item "transition" Transition lines start after two tabs .IP "\fBdialogue\fR" 4 .IX Item "dialogue" Dialogue follows the characters name, a colon and a tab. Some examples: .Sp .Vb 3 \& Dave: I think we should go shopping! \& God (V.O.): That's a bad idea, Dave \& Dave: (pondering) You're probably right. .Ve .Sp Parentheticals go after the colon, but V.O., O.S. go before. .IP "\fBgeneral\fR" 4 .IX Item "general" Generals are just regular text not prefaced by tabs. .IP "\fBcomments\fR" 4 .IX Item "comments" Any line that starts with a '#' character is ignored. .SH "ALIASES" .IX Header "ALIASES" Aliases for characters can be defined on any line: .PP .Vb 1 \& D:=Dave .Ve .PP And then they can be used as the character speaking dialogue: .PP .Vb 1 \& D: I think we should go shopping! .Ve .PP Or in any line of text if inside {curly braces} .PP .Vb 1 \& God (V.O.): That's a bad idea, {D} .Ve .SH "EXAMPLE" .IX Header "EXAMPLE" Here's an example input file: .PP .Vb 8 \& D:=Dave (aliases for characters look like this) \& INT. SCENE HEADING \- DAY \& Actions have one tab \& Transitions have two tabs \& General text is just plain text. \& Dave: dialogue follows the ":" \& John (V.O.): voice overs go before the : \& D: (using an alias!) And parentheticals go after! .Ve .SH "BUGS" .IX Header "BUGS" Garbage in, garbage out. .PP When reading 'final' or 'text' formats, it's impossible to differentiate between a new '\s-1GENERAL\s0' line or a continuation of an '\s-1ACTION\s0' line since they look the same. Sad but true. Hence I assume them to all be ACTIONs. .PP The different format parsing/output is somewhat beta \- if you find any bugs please send me an example script and the problem. .SH "AUTHOR" .IX Header "AUTHOR" David Ljung Madison