.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .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. \*(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- .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" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" 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 "TYPOG-GREP 1" .TH TYPOG-GREP 1 "2024-05-07" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .\" Turn off justification. .na .SH "NAME" typog\-grep \- grep for typog\-inspect elements in LaTeX log files .SH "SYNOPSIS" .IX Header "SYNOPSIS" .IP "\fBtypog-grep\fR \-a|\-\-all|\-\-any [\fI\s-1OPTION\s0\fR...] \fILOG-FILE\fR..." 4 .IX Item "typog-grep -a|--all|--any [OPTION...] LOG-FILE..." .PD 0 .IP "\fBtypog-grep\fR [\fI\s-1OPTION\s0\fR...] \fI\s-1REGEXP\s0\fR \fILOG-FILE\fR..." 4 .IX Item "typog-grep [OPTION...] REGEXP LOG-FILE..." .PD .PP The first form shows all \f(CW\*(C`\*(C'\fR elements in \fILOG-FILE\fR. .PP The second form shows the contents of \f(CW\*(C`\*(C'\fR elements whose \fI\s-1ID\s0\fRs match \fI\s-1REGEXP\s0\fR in \fILOG-FILE\fR. .PP If no \fILOG-FILE\fR is given read from \fIstdin\fR. The filename\ \f(CW\*(C`\-\*(C'\fR is synonymous to \fIstdin\fR. .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBtypog-grep\fR is a tailored post-processor for LaTeX log files and the \f(CW\*(C`typoginspect\*(C'\fR environment as provided by package\ typog. It shares more with the venerable \&\fBsgrep\fR than with \s-1POSIX\s0\ \fBgrep\fR . .PP The LaTeX user brackets her text in .PP .Vb 3 \& \ebegin{typoginspect}{ID} \& Text and code to investigate \& \eend{typoginspect} .Ve .PP where \fI\s-1ID\s0\fR is used to identify one or more bracketed snippets. \&\fI\s-1ID\s0\fR does not have to be unique. The \fI\s-1REGEXP\s0\fR mechanism makes it easy to select groups of related \fI\s-1ID\s0\fRs if they are named accordingly. .PP In \fILOG-FILE\fR the environment shows up, packed with tracing information, as .PP .Vb 3 \& \& Trace Data \& .Ve .PP where all the capital-letter sequences are meta-variables and in particular \&\fIJOB-NAME\fR is the expansion of \f(CW\*(C`\ejobname\*(C'\fR, \&\fILINE-NUMBER\fR is the LaTeX source file line number of the beginning of the \f(CW\*(C`typoginspect\*(C'\fR environment, and \fIPAGE-NUMBER\fR is the page where the output of \f(CW\*(C`Text\ and\ code\ to\ investigate\*(C'\fR occurs. .PP \&\fBtypog-grep\fR reveals the contents of \fILOG-FILE\fR between \f(CW\*(C`\*(C'\fR and \f(CW\*(C`\*(C'\fR excluding the XML-tags. Access the \fIJOB-NAME\fR, \fILINE-NUMBER\fR, and \fIPAGE-NUMBER\fR with the commandline options \&\fB\-\-job\-name\fR, \fB\-\-line\-number\fR, and \fB\-\-page\-number\fR, respectively. Use \fB\-\-id\fR to show the name of the IDs that matched \fI\s-1REGEXP\s0\fR. .PP \&\f(CW\*(C`typoginspect\*(C'\fR environments can be nested. \&\fBtypog-grep\fR respects the nesting, i.e., if the \fI\s-1ID\s0\fR of the nested environment does not match \fI\s-1REGEXP\s0\fR it will not be included in the program's output. .SH "OPTIONS" .IX Header "OPTIONS" The list of options is sorted by the names of the long options. .IP "\fB\-a\fR, \fB\-\-all\fR, \fB\-\-any\fR" 4 .IX Item "-a, --all, --any" ID-discovery mode: Show all \f(CW\*(C`typog\-inspect\*(C'\fR elements independent of any matching patterns. .IP "\fB\-\-color\fR, \fBcolour\fR \fI\s-1WHEN\s0\fR" 4 .IX Item "--color, colour WHEN" Colorize specific log contents for the matching ids. The argument\ \fI\s-1WHEN\s0\fR determines when to apply color: \&\f(CW\*(C`always\*(C'\fR, \f(CW\*(C`never\*(C'\fR, or\ \f(CW\*(C`auto\*(C'\fR. The setting \f(CW\*(C`auto\*(C'\fR checks whether standard output has been redirected. This is the default. .IP "\fB\-C\fR, \fB\-\-config\fR \fI\s-1KEY\s0\fR=\fI\s-1VALUE\s0\fR[:\fI\s-1KEY\s0\fR=\fI\s-1VALUE\s0\fR[:...]]" 4 .IX Item "-C, --config KEY=VALUE[:KEY=VALUE[:...]]" Set one or more configuration \fI\s-1KEY\s0\fR to \fI\s-1VALUE\s0\fR pairs. See Sec.\ \s-1CONFIGURATION\s0 below for a description of all available configuration items. Use option \fB\-\-show\-config\fR to display the default configuration. .IP "\fB\-\-debug\fR" 4 .IX Item "--debug" Turn on debug output on \fIstderr\fR. .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" Display brief help then exit. .IP "\fB\-i\fR, \fB\-\-[no\-]id\fR" 4 .IX Item "-i, --[no-]id" Print the actual id name that matched \fI\s-1REGEXP\s0\fR. Control the appearance of the matching id with configuration item\ \f(CW\*(C`id\-heading\*(C'\fR. .IP "\fB\-y\fR, \fB\-\-[no\-]ignore\-case\fR" 4 .IX Item "-y, --[no-]ignore-case" Match ids while ignoring case distinctions in patterns and data. .IP "\fB\-j\fR, \fB\-\-[no\-]job\-name\fR" 4 .IX Item "-j, --[no-]job-name" Print the \f(CW\*(C`\ejobname\*(C'\fR that \fBtex\fR associated with the input file. .IP "\fB\-n\fR, \fB\-\-[no\-]line\-number\fR" 4 .IX Item "-n, --[no-]line-number" Print the line number where the \f(CW\*(C`typoginspect\*(C'\fR\ environment was encountered in the LaTeX source file. .IP "\fB\-N\fR, \fB\-\-[no\-]log\-line\-number\fR" 4 .IX Item "-N, --[no-]log-line-number" Print the line number of the \fIlog\fR\-file where the current line was encountered. .IP "\fB\-p\fR, \fB\-\-[no\-]page\-number\fR" 4 .IX Item "-p, --[no-]page-number" Print page number where the contents of the \f(CW\*(C`typoginspect\*(C'\fR\ environment starts in the typeset document. .IP "\fB\-P\fR, \fB\-\-[no\-]pager\fR" 4 .IX Item "-P, --[no-]pager" Redirect output from \fIstdout\fR to the configured pager. .IP "\fB\-\-show\-config\fR" 4 .IX Item "--show-config" Show the default configuration and exit. .IP "\fB\-V\fR, \fB\-\-version\fR" 4 .IX Item "-V, --version" Show version information and exit. .IP "\fB\-w\fR, \fB\-\-[no\-]word\-regexp\fR" 4 .IX Item "-w, --[no-]word-regexp" Match only whole words. .SH "CONFIGURATION" .IX Header "CONFIGURATION" .ie n .IP """id\-format""=\fI\s-1FORMAT\s0\fR" 4 .el .IP "\f(CWid\-format\fR=\fI\s-1FORMAT\s0\fR" 4 .IX Item "id-format=FORMAT" Control the \fI\s-1FORMAT\s0\fR for printing matching ids in inline-mode, where \fI\s-1FORMAT\s0\fR is passed to Perl's \f(CW\*(C`printf\*(C'\fR. Default:\ \f(CW%s:\fR. .ie n .IP """id\-heading""=0|1" 4 .el .IP "\f(CWid\-heading\fR=\f(CW0\fR|\f(CW1\fR" 4 .IX Item "id-heading=0|1" Choose between printing the matching ids with option\ \fB\-\-id\fR: Inline\ (\f(CW0\fR) or heading before the matching data (\f(CW1\fR). Default:\ \f(CW0\fR. .ie n .IP """id\-heading\-format""=\fI\s-1FORMAT\s0\fR" 4 .el .IP "\f(CWid\-heading\-format\fR=\fI\s-1FORMAT\s0\fR" 4 .IX Item "id-heading-format=FORMAT" Control the \fI\s-1FORMAT\s0\fR for printing matching ids in heading-mode, where \fI\s-1FORMAT\s0\fR is passed to Perl's \f(CW\*(C`printf\*(C'\fR. Default:\ \f(CW\*(C`\-\->\ %s\ <\-\-\*(C'\fR. .ie n .IP """id\-indent""=\fI\s-1INDENT\s0\fR" 4 .el .IP "\f(CWid\-indent\fR=\fI\s-1INDENT\s0\fR" 4 .IX Item "id-indent=INDENT" Indentation of nested typog-inspect tags. Only used in ``discovery'' mode (first form), i.e., if \fB\-\-all\fR is active. Default:\ 8. .ie n .IP """id\-max\-length""=\fIMAXIMUM-LENGTH\fR" 4 .el .IP "\f(CWid\-max\-length\fR=\fIMAXIMUM-LENGTH\fR" 4 .IX Item "id-max-length=MAXIMUM-LENGTH" Set the maximum length of a matching id for printing. It a matching id exceeds this length it will be truncated and the last three characters (short of \fIMAXIMUM-LENGTH\fR) will be replaced by dots. Default:\ 40. .ie n .IP """line\-number\-format""=\fI\s-1FORMAT\s0\fR" 4 .el .IP "\f(CWline\-number\-format\fR=\fI\s-1FORMAT\s0\fR" 4 .IX Item "line-number-format=FORMAT" Control the \fI\s-1FORMAT\s0\fR for printing TeX source line numbers, where \fI\s-1FORMAT\s0\fR is passed to Perl's \f(CW\*(C`printf\*(C'\fR. Default:\ \f(CW%5d\fR. .ie n .IP """log\-line\-number\-format""=\fI\s-1FORMAT\s0\fR" 4 .el .IP "\f(CWlog\-line\-number\-format\fR=\fI\s-1FORMAT\s0\fR" 4 .IX Item "log-line-number-format=FORMAT" Control the \fI\s-1FORMAT\s0\fR for printing log line numbers, where \fI\s-1FORMAT\s0\fR is passed to Perl's \f(CW\*(C`printf\*(C'\fR. Default:\ \f(CW%6d\fR. .ie n .IP """page\-number\-format""=\fI\s-1FORMAT\s0\fR" 4 .el .IP "\f(CWpage\-number\-format\fR=\fI\s-1FORMAT\s0\fR" 4 .IX Item "page-number-format=FORMAT" Control the \fI\s-1FORMAT\s0\fR for printing page numbers, where \fI\s-1FORMAT\s0\fR is passed to Perl's \f(CW\*(C`printf\*(C'\fR. Default:\ \f(CW\*(C`[%3d]\*(C'\fR. .ie n .IP """pager""=\fI\s-1PAGER\s0\fR" 4 .el .IP "\f(CWpager\fR=\fI\s-1PAGER\s0\fR" 4 .IX Item "pager=PAGER" Name of pager application to pipe output into if run with option\ \fB\-\-pager\fR. Default:\ \f(CW\*(C`less\*(C'\fR. .ie n .IP """pager\-flags""=\fI\s-1FLAGS\s0\fR" 4 .el .IP "\f(CWpager\-flags\fR=\fI\s-1FLAGS\s0\fR" 4 .IX Item "pager-flags=FLAGS" Pass \fI\s-1FLAGS\s0\fR to \fI\s-1PAGER\s0\fR. Default:\ \f(CW\*(C`\-\-quit\-if\-one\-screen\*(C'\fR. .IP "Color Configuration" 4 .IX Item "Color Configuration" For the syntax of the color specifications consult the manual page of Term::ANSIColor(pm). .RS 4 .ie n .IP """file\-header\-color""" 4 .el .IP "\f(CWfile\-header\-color\fR" 4 .IX Item "file-header-color" Color of the filename header. .ie n .IP """fill\-state\-color""" 4 .el .IP "\f(CWfill\-state\-color\fR" 4 .IX Item "fill-state-color" Color of the messages that report ``Underfull hbox'' or ``Overfull hbox''. .ie n .IP """first\-vbox\-color""" 4 .el .IP "\f(CWfirst\-vbox\-color\fR" 4 .IX Item "first-vbox-color" Color of the first vbox on a page. .ie n .IP """font\-spec\-color""" 4 .el .IP "\f(CWfont\-spec\-color\fR" 4 .IX Item "font-spec-color" Color of font specifications. .ie n .IP """horizontal\-break\-candidate\-color""" 4 .el .IP "\f(CWhorizontal\-break\-candidate\-color\fR" 4 .IX Item "horizontal-break-candidate-color" Color of lines with horizontal-breakpoint candidates\ \f(CW\*(C`@\*(C'\fR. .ie n .IP """horizontal\-breakpoint\-color""" 4 .el .IP "\f(CWhorizontal\-breakpoint\-color\fR" 4 .IX Item "horizontal-breakpoint-color" Color of lines with horizontal breakpoints\ \f(CW\*(C`@@\*(C'\fR. .ie n .IP """id\-color""" 4 .el .IP "\f(CWid\-color\fR" 4 .IX Item "id-color" Color of matching ids when printed inline. .ie n .IP """id\-heading\-color""" 4 .el .IP "\f(CWid\-heading\-color\fR" 4 .IX Item "id-heading-color" Color of matching ids when printed in heading form. .ie n .IP """line\-break\-pass\-color""" 4 .el .IP "\f(CWline\-break\-pass\-color\fR" 4 .IX Item "line-break-pass-color" Color of the lines showing which pass (e.g., \f(CW@firstpass\fR) of the line-breaking algorithm is active. .ie n .IP """line\-number\-color""" 4 .el .IP "\f(CWline\-number\-color\fR" 4 .IX Item "line-number-color" Color of TeX-source-file line numbers. .ie n .IP """log\-line\-number\-color""" 4 .el .IP "\f(CWlog\-line\-number\-color\fR" 4 .IX Item "log-line-number-color" Color of log-file line numbers. .ie n .IP """math\-color""" 4 .el .IP "\f(CWmath\-color\fR" 4 .IX Item "math-color" Color used for math expressions including their font specs. .ie n .IP """page\-number\-color""" 4 .el .IP "\f(CWpage\-number\-color\fR" 4 .IX Item "page-number-color" Color of page numbers of the final output. .ie n .IP """tightness\-color""" 4 .el .IP "\f(CWtightness\-color\fR" 4 .IX Item "tightness-color" Color of lines with Tight/Loose hbox reports. .ie n .IP """vertical\-breakpoint\-color""" 4 .el .IP "\f(CWvertical\-breakpoint\-color\fR" 4 .IX Item "vertical-breakpoint-color" Color of possible vertical breakpoints. .RE .RS 4 .RE .SS "Brief summary of colors and attributes" .IX Subsection "Brief summary of colors and attributes" .IP "Foreground Color" 4 .IX Item "Foreground Color" \&\f(CW\*(C`black\*(C'\fR, \f(CW\*(C`red\*(C'\fR, \f(CW\*(C`green\*(C'\fR, \f(CW\*(C`yellow\*(C'\fR, \&\f(CW\*(C`blue\*(C'\fR, \f(CW\*(C`magenta\*(C'\fR, \f(CW\*(C`cyan\*(C'\fR, \f(CW\*(C`white\*(C'\fR, .Sp Prefix with \f(CW\*(C`bright_\*(C'\fR for high-intensity or bold foreground. .IP "Foreground Grey" 4 .IX Item "Foreground Grey" \&\f(CW\*(C`grey0\*(C'\fR, ..., \f(CW\*(C`grey23\*(C'\fR .IP "Background Color" 4 .IX Item "Background Color" \&\f(CW\*(C`on_black\*(C'\fR, \f(CW\*(C`on_red\*(C'\fR, \f(CW\*(C`on_green\*(C'\fR, \f(CW\*(C`on_yellow\*(C'\fR, \&\f(CW\*(C`on_blue\*(C'\fR, \f(CW\*(C`on_magenta\*(C'\fR, \f(CW\*(C`on_cyan\*(C'\fR, \f(CW\*(C`on_white\*(C'\fR .Sp Replace \f(CW\*(C`on_\*(C'\fR with \f(CW\*(C`on_bright_\*(C'\fR for high-intensity or bold background. .IP "Background Grey" 4 .IX Item "Background Grey" \&\f(CW\*(C`on_grey0\*(C'\fR, ..., \f(CW\*(C`on_grey23\*(C'\fR .IP "Text Attribute" 4 .IX Item "Text Attribute" \&\f(CW\*(C`bold\*(C'\fR, \f(CW\*(C`dark\*(C'\fR, \f(CW\*(C`italic\*(C'\fR, \f(CW\*(C`underline\*(C'\fR, \f(CW\*(C`reverse\*(C'\fR .SH "EXIT STATUS" .IX Header "EXIT STATUS" The exit status is 0 if at least one \fI\s-1ID\s0\fR matched \fI\s-1REGEXP\s0\fR, 1 if no \fI\s-1ID\s0\fR matched \fI\s-1REGEXP\s0\fR, and 2 if an error occurred. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBgrep\fR(1), \fBprintf\fR(3), \fBTerm::ANSIColor\fR(pm)