Update upstream source from tag 'upstream/2021.2-debian1'
Update to upstream version '2021.2-debian1'
with Debian dir 031c43de680cf6cd20075fd07ad067594b62d5e1
Carsten Leonhardt
2 years ago
111 | 111 | # A more detailed log history can be found within the particular files, near |
112 | 112 | # the top. |
113 | 113 | # |
114 | #--------- v2021.2 | |
115 | # | |
116 | # - latex2html -long_titles fix duplicate file names | |
117 | # - latex2html -long_titles 5 -title "Title" | |
118 | # correct link from index.html | |
119 | # - pnmquant -norandom for reproducible builds | |
120 | # - treat cygwin as unix | |
121 | # - $WORDS_IN_INDEX configurable | |
122 | # - fix image size for multline, subequations | |
123 | # - remove extra <SPAN> after subequations | |
124 | # - equation numbering for multline | |
125 | # - close bold, etc, at end of environment | |
126 | # - implement memoir document class | |
127 | # - fix scanning of latex comments | |
128 | # - fix subequation numbering | |
129 | # - babel should not set character encoding of input file | |
130 | # - package nomencl.sty | |
131 | # - package nameref.sty | |
132 | # - options -cut_ref_num -add_ref_name | |
114 | 133 | # |
115 | 134 | #--------- v2021 |
116 | 135 | # |
91 | 91 | } elsif ($OS eq 'MSWin32') { |
92 | 92 | require L2hos::Win32; |
93 | 93 | 'L2hos::Win32' |
94 | } elsif ($OS =~ /(win|dos)/i) { | |
94 | } elsif ($OS eq 'dos') { | |
95 | 95 | require L2hos::Dos; |
96 | 96 | 'L2hos::Dos' |
97 | 97 | } else { |
440 | 440 | use vars qw(%prefs %cfg %newcfg); |
441 | 441 | |
442 | 442 | # This is the central place to modify the release name and date!!! |
443 | my $RELEASE = '2021'; | |
444 | my $VERSION = 'Released January 1, 2021'; | |
443 | my $RELEASE = '2021.2'; | |
444 | my $VERSION = 'Released July 1, 2021'; | |
445 | 445 | |
446 | 446 | # -------------------------------------------------------------------------- |
447 | 447 | # Open log |
1443 | 1443 | } |
1444 | 1444 | |
1445 | 1445 | # -------------------------------------------------------------------------- |
1446 | # PPMQUANT | |
1447 | # -------------------------------------------------------------------------- | |
1448 | ||
1449 | $newcfg{'PPMQUANT'} = ''; | |
1446 | # PNMQUANT | |
1447 | # -------------------------------------------------------------------------- | |
1448 | ||
1449 | $newcfg{'PNMQUANT'} = ''; | |
1450 | 1450 | |
1451 | 1451 | if(1) { |
1452 | my $ppmquant = &find_prog(&get_name('PPMQUANT',1)); | |
1453 | if($ppmquant) { | |
1454 | $newcfg{'PPMQUANT'} = $ppmquant; | |
1452 | my $pnmquant = &find_prog(&get_name('PNMQUANT',1)); | |
1453 | if($pnmquant) { | |
1454 | $newcfg{'PNMQUANT'} = $pnmquant; | |
1455 | 1455 | } |
1456 | 1456 | } |
1457 | 1457 |
372 | 372 | #----------------------------------------------------------------------------- |
373 | 373 | |
374 | 374 | if($cfg{TEXPATH}) { |
375 | print "\nNote: trying to install LaTeX2HTML style files in TeX directory tree\n ($cfg{TEXPATH})\n"; | |
376 | unless(mkpath($cfg{TEXPATH})) { | |
377 | #my $testpath = $cfg{TEXPATH}; # to strip (latex2)html | |
378 | #$testpath =~ s/[$dd$dd][^$dd$dd]*$//; | |
379 | #if((-d $cfg{TEXPATH} && !-w _) || (-d $testpath && !-w _)) { | |
380 | print STDERR "\nError: Cannot install LaTeX2HTML style files in $cfg{TEXPATH}\n"; | |
381 | } else { | |
375 | print "\nNote: trying to install LaTeX2HTML style files in TeX directory tree\n ($cfg{TEXPATH})\n"; | |
382 | 376 | my $dir = 'texinputs'; |
383 | 377 | my $dest = $cfg{TEXPATH}; |
384 | 378 | unless(opendir(DIR,$dir)) { |
400 | 394 | system($cfg{MKTEXLSR}); |
401 | 395 | } |
402 | 396 | } |
403 | } | |
404 | 397 | } |
405 | 398 | print "Done. Have a lot of fun with LaTeX2HTML!\n"; |
406 | 399 | exit 0; |
95 | 95 | ac_help="$ac_help |
96 | 96 | --with-pnmflip=PATH path/name of the pnmflip executable" |
97 | 97 | ac_help="$ac_help |
98 | --with-ppmquant=PATH path/name of the ppmquant executable" | |
98 | --with-pnmquant=PATH path/name of the pnmquant executable" | |
99 | 99 | ac_help="$ac_help |
100 | 100 | --with-pnmfile=PATH path/name of the pnmfile executable" |
101 | 101 | ac_help="$ac_help |
973 | 973 | with_pnmflip=${PNMFLIP:-} |
974 | 974 | fi |
975 | 975 | |
976 | # Check whether --with-ppmquant or --without-ppmquant was given. | |
977 | if test "${with_ppmquant+set}" = set; then | |
978 | withval="$with_ppmquant" | |
979 | : | |
980 | else | |
981 | with_ppmquant=${PPMQUANT:-} | |
976 | # Check whether --with-pnmquant or --without-pnmquant was given. | |
977 | if test "${with_pnmquant+set}" = set; then | |
978 | withval="$with_pnmquant" | |
979 | : | |
980 | else | |
981 | with_pnmquant=${PNMQUANT:-} | |
982 | 982 | fi |
983 | 983 | |
984 | 984 | # Check whether --with-pnmfile or --without-pnmfile was given. |
1273 | 1273 | MKTEXLSR=$with_mktexlsr \ |
1274 | 1274 | HTML_VALIDATOR=$with_validator \ |
1275 | 1275 | PNMFLIP=$with_pnmflip \ |
1276 | PPMQUANT=$with_ppmquant \ | |
1276 | PNMQUANT=$with_pnmquant \ | |
1277 | 1277 | PNMFILE=$with_pnmfile \ |
1278 | 1278 | PNMCAT=$with_pnmcat \ |
1279 | 1279 | PNMCUT=$with_pnmcut \ |
23 | 23 | BIBTEX = bibtex |
24 | 24 | |
25 | 25 | # L2H = latex2html -no_math -html_version 3.2,math -scalable_fonts |
26 | L2H = latex2html -nouse_pdftex -image_type png -nouse_dvipng -nomath -html_version 4.0,math | |
26 | L2H = latex2html -nouse_pdftex | |
27 | 27 | |
28 | 28 | |
29 | 29 | # |
829 | 829 | save a bit of typing!) |
830 | 830 | \item Added a \fn{-debug} command line switch. |
831 | 831 | \item Support unbreakable spaces (\~{}) and itallic correction. |
832 | \item Fixed a bug in \fn{pstogif} which caused \fn{ppmquant} never | |
832 | \item Fixed a bug in \fn{pstogif} which caused \fn{pnmquant} never | |
833 | 833 | to be called. |
834 | 834 | \item The \verb|\special| \index{special command} |
835 | 835 | command can now be used outside |
328 | 328 | \begin{tabular}{|c|c|p{6cm}|} |
329 | 329 | \hline |
330 | 330 | \textbf{`math'} & \textbf{switch} &\textbf{\hfill strategy adopted\hfill~}\\ \hline |
331 | not loaded & --- & textual representation where possible,\newline | |
331 | not loaded & \Cs{math} & textual representation where possible,\newline | |
332 | 332 | else image of whole expressions\\ \hline |
333 | not loaded & \Cs{no\_math} & always generates an image of the whole\newline | |
333 | not loaded & --- & always generates an image of the whole\newline | |
334 | 334 | expression/environment\\ \hline |
335 | 335 | loaded & --- & |
336 | 336 | uses entities and \HTMLtag{MATH} tags; e.g. for \texttt{HTML-Math} |
346 | 346 | \end{center} |
347 | 347 | \end{table} |
348 | 348 | |
349 | ||
350 | Using the \Cs{no\_math} switch is best for having a consistent | |
351 | style used for all mathematical expressions, whether inline or in displays. | |
352 | The images are of especially good quality when ``anti-aliasing'' | |
353 | is being used (see \hyperref[page]{here}{page~}{}{cs_aaliastext}), | |
354 | provided the browser is set to have a light background colour. | |
355 | (When set against a gray or dark background, these images can become | |
356 | rather faint and hard to read.) | |
357 | ||
358 | The final strategy \hyperref{above}{in Table~}{}{mathconv3}, | |
359 | using \Cs{no\_math} is the preferred method for good quality | |
360 | mathematics with \texttt{HTML} version 3.2~. It combines the browser's | |
361 | built-in fonts with the best quality images, when needed. | |
362 | To obtain it use the command-line option switches: | |
363 | \begin{quote} | |
364 | \texttt{ -no\_math -html\_version 3.2,math } | |
365 | \end{quote} | |
349 | The default behavior, with no command line options, | |
350 | is to generate images for all math expressions, which makes | |
351 | the appearance of all mathematical expressions consistent. | |
366 | 352 | This is what was used when creating\latex{ the \texttt{HTML} version of} |
367 | 353 | this manual. |
368 | Examples \htmlref{below}{ex-aalias} show how to generate an image | |
369 | of a whole environment, even with these options in force. | |
370 | 354 | |
371 | 355 | \bigskip |
372 | 356 | \noindent |
420 | 404 | and the \Lc{nonumber} command to suppress |
421 | 405 | the equation number on the upper line. |
422 | 406 | |
423 | \medskip\noindent | |
424 | % | |
425 | \latexhtml{In the on-screen version of these equations}{Notice how} | |
426 | simple alphabetic characters that are not part of fractions appear | |
427 | in the (italiced) text-font selected using the browser's controls. | |
428 | This may appear slightly different from the same symbol being used | |
429 | within a fraction, or other mathematical construction requiring an image | |
430 | to be generated. This is most apparent with the letter `h' in the | |
431 | first equation and the subscripts at the end of the second equation. | |
407 | The default image format is Scalable Vector Graphics (SVG), | |
408 | which looks crisp at all resolutions. If bitmap image | |
409 | formats are used (PNG or GIF), various options are | |
410 | available to control antialiasing and the resolution | |
411 | of the images. These options are discussed in the | |
412 | following sections. | |
432 | 413 | |
433 | 414 | \index{image generation!using htmlimage@using \Lc{htmlimage}} |
434 | 415 | |
416 | For combinations of options that do not generate images for all | |
417 | math expressions, it is possible to control image generation | |
418 | at the level of individual expression. | |
435 | 419 | By inserting an \verb|\htmlimage{}| command into a \env{math}, |
436 | 420 | \env{equation} or \env{displaymath} environment, a single image |
437 | 421 | will be created for the whole environment. For an \env{eqnarray} |
447 | 431 | \index{scale-factors!for math images}% |
448 | 432 | \paragraph*{Scale-factors for Mathematics.\label{mathscales}} |
449 | 433 | % |
450 | When an image is to be made of a mathematical formula or expression, | |
434 | For bitmap image formats (PNG or GIF, as opposed to SVG), | |
435 | the scale factor controls the image resolution. | |
436 | When a bitmap image | |
437 | is made of a mathematical formula or expression, | |
451 | 438 | it is generally made at a larger size |
452 | 439 | than is normally required on a printed page. |
453 | 440 | This is to compensate for the reduced resolution of a computer screen |
480 | 467 | whereas the first image does not; a 600\,dpi printing is probably necessary |
481 | 468 | to appreciate the difference in quality. Compare these images with those in |
482 | 469 | \hyperref{a later section}{Section~}{}{printqual}. |
483 | ||
484 | \smallskip\noindent\index{anti-aliasing!requires@requires \appl{Ghostscript} 4.03} | |
485 | \textbf{Note: }To generate anti-aliased images using \appl{Ghostscript} | |
486 | requires version 4.03 or later. | |
487 | 470 | |
488 | 471 | \begin{figure}[hb] |
489 | 472 | \begin{makeimage} |
980 | 963 | \subsubsection{Quality of Printed Images\label{printqual}} |
981 | 964 | %\subsection{Quality of Printed Images\label{printqual}} |
982 | 965 | % |
983 | \begin{htmlonly} | |
966 | %% \begin{htmlonly} | |
984 | 967 | Since it is often desirable to get a good quality print on paper |
985 | 968 | directly from the browser, \hyperref{here are}{Figure~}{ shows}{eq:pics15} |
986 | 969 | the same equations as \hyperref[page]{earlier}{on page~}{}{eq:pics}. |
989 | 972 | for a cost of approximately 1.7 times the disk-space\footnote{This figure |
990 | 973 | varies with the graphics format used, and the complexity of the actual image.}. |
991 | 974 | |
992 | \end{htmlonly} | |
975 | %% \end{htmlonly} | |
993 | 976 | |
994 | 977 | \begin{figure}[hb] |
995 | \begin{htmlonly} | |
996 | \begin{makeimage} | |
997 | \end{makeimage} | |
978 | %% \begin{htmlonly} | |
979 | %% \begin{makeimage} | |
980 | %% \end{makeimage} | |
981 | %% \begin{equation} | |
982 | %% \htmlimage{no_antialias,extrascale=1.5} | |
983 | %% \Phi_{l+1,m,n} = \Bigl(\Phi+h\frac{\partial\Phi}{\partial x} + | |
984 | %% \frac{1}{2}h^2\frac{\partial^2\Phi}{\partial x^2} + | |
985 | %% \frac{1}{6}h^3\frac{\partial^3\Phi}{\partial x^3} + \,\ldots\,\Bigr)_{l,m,n} | |
986 | %% \end{equation} | |
987 | %% \begin{eqnarray} | |
988 | %% \htmlimage{extrascale=1.5} | |
989 | %% \frac{\Phi_{l+1,m,n}-2\Phi_{l,m,n}+\Phi_{l-1,m,n}}{h^{2}} + | |
990 | %% \frac{\Phi_{l,m+1,n}-2\Phi_{l,m,n}+\Phi_{l,m-1,n}}{h^{2}} \nonumber \\ | |
991 | %% + \frac{\Phi_{l,m,n+1}-2\Phi_{l,m,n}+\Phi_{l,m,n-1}}{h^{2}} = -I_{l,m,n}(v) | |
992 | %% \end{eqnarray} | |
993 | %% \end{htmlonly} | |
994 | %% % | |
995 | %% \begin{latexonly} | |
998 | 996 | \begin{equation} |
999 | \htmlimage{no_antialias,extrascale=1.5} | |
1000 | \Phi_{l+1,m,n} = \Bigl(\Phi+h\frac{\partial\Phi}{\partial x} + | |
1001 | \frac{1}{2}h^2\frac{\partial^2\Phi}{\partial x^2} + | |
1002 | \frac{1}{6}h^3\frac{\partial^3\Phi}{\partial x^3} + \,\ldots\,\Bigr)_{l,m,n} | |
1003 | \end{equation} | |
1004 | \begin{eqnarray} | |
1005 | \htmlimage{extrascale=1.5} | |
1006 | \frac{\Phi_{l+1,m,n}-2\Phi_{l,m,n}+\Phi_{l-1,m,n}}{h^{2}} + | |
1007 | \frac{\Phi_{l,m+1,n}-2\Phi_{l,m,n}+\Phi_{l,m-1,n}}{h^{2}} \nonumber \\ | |
1008 | + \frac{\Phi_{l,m,n+1}-2\Phi_{l,m,n}+\Phi_{l,m,n-1}}{h^{2}} = -I_{l,m,n}(v) | |
1009 | \end{eqnarray} | |
1010 | \end{htmlonly} | |
1011 | % | |
1012 | \begin{latexonly} | |
1013 | \begin{equation} | |
1014 | \setbox1=\hbox{\scalebox{.4}{\includegraphics{psfiles/eqn15}}} | |
1015 | \lower.5\ht1\box1 | |
997 | \hbox{\scalebox{.4}{\includegraphics{psfiles/eqn15}}} | |
1016 | 998 | \end{equation}% |
1017 | 999 | \begin{eqnarray} |
1018 | 1000 | \nonumber |
1019 | \setbox1=\hbox{\scalebox{.4}{\includegraphics{psfiles/eqarrA15}}} | |
1020 | \lower.5\ht1 \box1&&\\ | |
1021 | \setbox1=\hbox{\scalebox{.4}{\includegraphics{psfiles/eqarrB15}}} | |
1022 | \lower.5\ht1 \box1&& | |
1001 | \hbox{\scalebox{.4}{\includegraphics{psfiles/eqarrA15}}} | |
1002 | &&\\ | |
1003 | \hbox{\scalebox{.4}{\includegraphics{psfiles/eqarrB15}}} | |
1004 | && | |
1023 | 1005 | \end{eqnarray} |
1024 | \end{latexonly} | |
1006 | %% \end{latexonly} | |
1025 | 1007 | \caption{Displayed math environments with \emph{extra-scale} of 1.5} |
1026 | 1008 | \label{eq:pics15}% |
1027 | 1009 | \end{figure} |
1028 | 1010 | |
1029 | \begin{latexonly} | |
1011 | %% \begin{latexonly} | |
1030 | 1012 | \noindent |
1031 | 1013 | Since it is often desirable to get a good quality print on paper |
1032 | 1014 | directly from the browser, \hyperref{here are}{Figure~}{ shows}{eq:pics15} |
1035 | 1017 | means that more than twice the number of pixels are available, |
1036 | 1018 | for a cost of approximately 1.7 times the disk-space\footnote{This figure |
1037 | 1019 | varies with the graphics format used, and the complexity of the actual image.}. |
1038 | \end{latexonly} | |
1020 | %% \end{latexonly} | |
1039 | 1021 | \noindent |
1040 | 1022 | On-screen these images appear slightly blurred or indistinct. |
1041 | 1023 | However there can be marked improvement in the print quality, |
1054 | 1036 | scaled to be comparable with normal 10\,pt type\latex{, as here}. |
1055 | 1037 | |
1056 | 1038 | \begin{figure}[ht] |
1057 | \begin{htmlonly} | |
1058 | \begin{makeimage} | |
1059 | \end{makeimage} | |
1060 | \begin{equation} | |
1061 | \htmlimage{no_antialias,extrascale=2} | |
1062 | \Phi_{l+1,m,n} = \Bigl(\Phi+h\frac{\partial\Phi}{\partial x} + | |
1063 | \frac{1}{2}h^2\frac{\partial^2\Phi}{\partial x^2} + | |
1064 | \frac{1}{6}h^3\frac{\partial^3\Phi}{\partial x^3} + \,\ldots\,\Bigr)_{l,m,n} | |
1065 | \end{equation} | |
1066 | \begin{eqnarray} | |
1067 | \htmlimage{extrascale=2} | |
1068 | \frac{\Phi_{l+1,m,n}-2\Phi_{l,m,n}+\Phi_{l-1,m,n}}{h^{2}} + | |
1069 | \frac{\Phi_{l,m+1,n}-2\Phi_{l,m,n}+\Phi_{l,m-1,n}}{h^{2}} \nonumber \\ | |
1070 | + \frac{\Phi_{l,m,n+1}-2\Phi_{l,m,n}+\Phi_{l,m,n-1}}{h^{2}} = -I_{l,m,n}(v)\;. | |
1071 | \end{eqnarray} | |
1072 | \end{htmlonly} | |
1073 | % | |
1074 | \begin{latexonly} | |
1039 | %% \begin{htmlonly} | |
1040 | %% \begin{makeimage} | |
1041 | %% \end{makeimage} | |
1042 | %% \begin{equation} | |
1043 | %% \htmlimage{no_antialias,extrascale=2} | |
1044 | %% \Phi_{l+1,m,n} = \Bigl(\Phi+h\frac{\partial\Phi}{\partial x} + | |
1045 | %% \frac{1}{2}h^2\frac{\partial^2\Phi}{\partial x^2} + | |
1046 | %% \frac{1}{6}h^3\frac{\partial^3\Phi}{\partial x^3} + \,\ldots\,\Bigr)_{l,m,n} | |
1047 | %% \end{equation} | |
1048 | %% \begin{eqnarray} | |
1049 | %% \htmlimage{extrascale=2} | |
1050 | %% \frac{\Phi_{l+1,m,n}-2\Phi_{l,m,n}+\Phi_{l-1,m,n}}{h^{2}} + | |
1051 | %% \frac{\Phi_{l,m+1,n}-2\Phi_{l,m,n}+\Phi_{l,m-1,n}}{h^{2}} \nonumber \\ | |
1052 | %% + \frac{\Phi_{l,m,n+1}-2\Phi_{l,m,n}+\Phi_{l,m,n-1}}{h^{2}} = -I_{l,m,n}(v)\;. | |
1053 | %% \end{eqnarray} | |
1054 | %% \end{htmlonly} | |
1055 | %% % | |
1056 | %% \begin{latexonly} | |
1075 | 1057 | \begin{equation} |
1076 | 1058 | \setbox1=\hbox{\scalebox{.3}{\includegraphics{psfiles/eqn2}}} |
1077 | 1059 | \lower.5\ht1 \box1 |
1083 | 1065 | \setbox1=\hbox{\scalebox{.3}{\includegraphics{psfiles/eqarrB2}}} |
1084 | 1066 | \lower.5\ht1 \box1&& |
1085 | 1067 | \end{eqnarray} |
1086 | \end{latexonly} | |
1068 | %% \end{latexonly} | |
1087 | 1069 | \caption{Displayed math environments with \emph{extra-scale} of 2.0} |
1088 | 1070 | \label{eq:pics2} |
1089 | 1071 | \end{figure} |
1 | 1 | \item[\gn{.latex2html-init}] initialisation file for \latextohtml{} |
2 | 2 | \item[\gn{\$ACCENT\_IMAGES}] holds the \LaTeX\ style to be used when making images of accented characters which are not present in the character encoding being used |
3 | 3 | \item[\gn{\$ADDRESS}] contains information to be included as a signature at the bottom of each \texttt{HTML} page |
4 | \item[\gn{\$ADD\_REF\_NAME}] when set, caption name is shown additionally to caption number in cross references if available | |
4 | 5 | \item[\gn{\$ALTERNATIVE\_ICONS}] contains the location of special icons, other than the standard ones |
5 | 6 | \item[\gn{\$ANTI\_ALIAS}] when set, specifies that anti-aliasing be used with generated images of figures and included images |
6 | 7 | \item[\gn{\$ANTI\_ALIAS\_TEXT}] when set (the default), specifies that anti-aliasing be used with generated images of maths and typeset text |
23 | 24 | \item[\gn{\$CUSTOM\_BUTTONS}] variable available to link to customised buttons in navigation panels |
24 | 25 | \item[\gn{\$CUSTOM\_ICONS}] when set, a copy of each icon actually used is included in the directory along with the \texttt{.html} files and images |
25 | 26 | \item[\gn{\$CUSTOM\_TITLES}] when set, a customised subroutine is used to determine the filename for each \texttt{HTML} page |
27 | \item[\gn{\$CUT\_REF\_NUM}] when set, caption number is cut out in cross references | |
26 | 28 | \item[\gn{\$DEBUG}] when non-zero, \latextohtml\ shows messages that would otherwise be ignored |
27 | 29 | \item[\gn{\$DESTDIR}] specifies the directory into which all the generated files will be placed |
28 | 30 | \item[\gn{\$DISCARD\_PS}] when set, specifies that the temporary \PS\ files created by \fn{dvips} be discarded immediately after use |
144 | 146 | \item[\gn{\$PNMCROP}] contains the command to call the \fn{pnmcrop} utility, used by \fn{pstoimg} |
145 | 147 | \item[\gn{\$PNMFILE}] contains the command to call the \fn{pnmfile} utility, used by \fn{pstoimg} |
146 | 148 | \item[\gn{\$PNMFLIP}] contains the command to call the \fn{pnmflip} utility, used by \fn{pstoimg} |
147 | \item[\gn{\$PPMQUANT}] contains the command to call the \fn{ppmquant} utility, used by \fn{pstoimg} | |
149 | \item[\gn{\$PNMQUANT}] contains the command to call the \fn{pnmquant} utility, used by \fn{pstoimg} | |
148 | 150 | \item[\gn{\$PPMTOGIF}] contains the command to call the \fn{ppmtogif} utility, used by \fn{pstoimg} |
149 | 151 | \item[\gn{\$PREFIX}] contains the filename-prefix to prepend to all \texttt{HTML}, image and data files created for the current document |
150 | 152 | \item[\gn{\$PREVIOUS}] when navigation panels are created, this holds a hyperlink to the previous \texttt{HTML} page |
358 | 360 | \item[\gn{pnmflip}] Unix graphics utility which rotates and reflects through multiples of $90^\circ$. |
359 | 361 | \item[\gn{pnmtopng}] Unix graphics utility which converts to \fn{PNG} format. |
360 | 362 | \item[\gn{PostScript}] graphics programming language used in printers; interpreted by \appl{Ghostscript} |
361 | \item[\gn{ppmquant}] Unix graphics utility used to limit the number of distinct colours in a single image | |
363 | \item[\gn{pnmquant}] Unix graphics utility used to limit the number of distinct colours in a single image | |
362 | 364 | \item[\gn{ppmtogif}] Unix graphics utility used to convert a bitmapped graphic in \texttt{ppm} format into GIF format |
363 | 365 | \item[\gn{problems.tex}] input file for the \latextohtml{} manual; contains a description of known problems with \latextohtml{}, and how best to avoid or deal with them |
364 | 366 | \item[\gn{psfiles/}] sub-directory of \fn{docs/} containing \PS\ graphics used in the printed version of the \latextohtml{} manual |
3 | 3 | |
4 | 4 | |
5 | 5 | \begin{htmlonly} |
6 | \usepackage[dvips]{graphicx} | |
7 | \usepackage[dvips]{color} | |
6 | \usepackage{xcolor} | |
8 | 7 | % \usepackage{frames} |
9 | \usepackage[dvips,leftbars]{changebar} | |
10 | 8 | \newcommand{\FoilTeX}{\env{FoilTeX}} |
11 | 9 | % |
12 | 10 | % \newcommand{\htmlurl}[1]{\htmladdnormallink{#1}{#1}} |
0 | 0 | %\scrollmode |
1 | 1 | %\documentclass[dvips,a4paper,twoside]{article} |
2 | \documentclass[dvips,a4paper]{article} | |
2 | \documentclass[a4paper]{article} | |
3 | 3 | \usepackage{graphicx} |
4 | 4 | %\usepackage{xcolor} |
5 | 5 | |
12 | 12 | % to typeset email-addresses, URLs and directory paths in LaTeX ... |
13 | 13 | % |
14 | 14 | %begin{latexonly} |
15 | \usepackage[dvips,rightbars]{changebar} | |
15 | \usepackage[rightbars]{changebar} | |
16 | 16 | \usepackage{l2hman} |
17 | 17 | \usepackage{url} |
18 | 18 | \def\email{\begingroup \urlstyle{tt}\Url} |
170 | 170 | % |
171 | 171 | \begin{latexonly} |
172 | 172 | |
173 | This document accompanies \latextohtml{} version 2021. | |
173 | This document accompanies \latextohtml{} version 2021.2. | |
174 | 174 | |
175 | 175 | |
176 | 176 | \paragraph{History} |
166 | 166 | |
167 | 167 | \subsection{Installation on Windows} |
168 | 168 | \label{windowsinst}\index{installation!on~Windows~95/98/NT} |
169 | ||
170 | \index{source code!for Windows NT platform}% | |
171 | For Windows $95$, $98$, and NT you will either need a newer | |
172 | \latex2html{} Release $99.1$ or higher, or if you like to try an | |
173 | older release get the Windows $97.1$ port by \Popineau\ from | |
174 | \url{ftp://ftp.ese-metz.fr/pub/TeX/win32}. | |
175 | Meanwhile, all the operating system dependent issues are integrated | |
176 | into the main release, thanks to the cool work of \Rouchal. | |
177 | ||
178 | 169 | To install the tools required to run the translator, perform the steps |
179 | 170 | below. Thanks to Jens Berger (\texttt{jberger@mail.zedat.fu-berlin.de}) |
180 | 171 | for providing this list! |
401 | 401 | \strikeout{In order to be shown, |
402 | 402 | section titles must be unique and must not contain inlined graphics.} |
403 | 403 | |
404 | \index{cross references!marker style} | |
405 | \index{cross references!numbering} | |
406 | \index{add-ref-name}% | |
407 | \item [ -add\_ref\_name \label{cs_add_ref_name}] | |
408 | \sameas{\fn{\$ADD\_REF\_NAME}\texttt{ = 1;}}\\ | |
409 | Usually cross reference text contains only the caption number as a | |
410 | hyperlink to the corresponding \LaTeX{} label. However, it could be | |
411 | handy to see the name of the object referenced, if the reference text | |
412 | would contain both the caption number and the caption name. | |
413 | With -add\_ref\_name the caption name is shown additionally when available. | |
414 | ||
415 | \index{cross references!marker style} | |
416 | \index{cross references!numbering} | |
417 | \index{cut-ref-num}% | |
418 | \item [ -cut\_ref\_num \label{cs_cut_ref_num}] | |
419 | \sameas{\fn{\$CUT\_REF\_NUM}\texttt{ = 1;}}\\ | |
420 | Usually cross reference text contains only the caption number as a | |
421 | hyperlink to the corresponding \LaTeX{} label. With -add\_ref\_name the | |
422 | caption name can be shown additionally. If the caption number is not | |
423 | desired, it can be cut out with -cut\_ref\_num. If -cut\_ref\_num is | |
424 | given and -add\_ref\_name is not, then the cross reference text is | |
425 | suppressed completely and a cross reference button shown instead. | |
426 | ||
404 | 427 | \index{segmentation!unsegment} |
405 | 428 | |
406 | 429 | \item [ -unsegment\label{cs_unsegment}] |
1478 | 1501 | \begin{itemize}\label{graphicsutils}% |
1479 | 1502 | \item \fn{\$GS\_LIB}\texttt{ = '/usr/local/share/ghostscript/4.02';} |
1480 | 1503 | \item \fn{\$PNMCAT}\texttt{ = '/usr/local/bin/pnmcat';} |
1481 | \item \fn{\$PPMQUANT}\texttt{ = '/usr/local/bin/ppmquant';} | |
1504 | \item \fn{\$PNMQUANT}\texttt{ = '/usr/local/bin/pnmquant';} | |
1482 | 1505 | \item \fn{\$PNMFLIP}\texttt{ = '/usr/local/bin/pnmflip';} |
1483 | 1506 | \item \fn{\$PPMTOGIF}\texttt{ = '/usr/local/bin/ppmtogif';} |
1484 | 1507 | \item \fn{\$HOWTO\_TRANSPARENT\_GIF}\texttt{ = 'netpbm';} |
78 | 78 | $default_language = 'english'; |
79 | 79 | |
80 | 80 | # The value of this variable determines how many words to use in each |
81 | # title that is added to the navigation panel (see below) | |
81 | # title that is added to the navigation panel, see below (-1 is no limit). | |
82 | # If $SHOW_SECTION_NUMBERS == 1, then one additional word counts | |
83 | # for the section number. | |
82 | 84 | # |
83 | 85 | $WORDS_IN_NAVIGATION_PANEL_TITLES = 4; |
86 | ||
87 | # The value of this variable determines how many words to use in each | |
88 | # Index entry (analogous to $WORDS_IN_NAVIGATION_PANEL_TITLES). | |
89 | # If not set, it equals to $WORDS_IN_NAVIGATION_PANEL_TITLES by default. | |
90 | # | |
91 | #$WORDS_IN_INDEX = 4; | |
84 | 92 | |
85 | 93 | # This number will determine the size of the equations, special characters, |
86 | 94 | # and anything which will be converted into an inlined image |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
2 | ||
3 | <svg | |
4 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
5 | xmlns:cc="http://creativecommons.org/ns#" | |
6 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
7 | xmlns:svg="http://www.w3.org/2000/svg" | |
8 | xmlns="http://www.w3.org/2000/svg" | |
9 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
10 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
11 | id="svg14855" | |
12 | sodipodi:docname="blueball.svg" | |
13 | viewBox="0 0 451.36 596.68" | |
14 | sodipodi:version="0.32" | |
15 | version="1.0" | |
16 | inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
17 | inkscape:version="0.92.3 (2405546, 2018-03-11)"> | |
18 | <defs | |
19 | id="defs14857"> | |
20 | <linearGradient | |
21 | id="linearGradient15840" | |
22 | y2="535.22" | |
23 | gradientUnits="userSpaceOnUse" | |
24 | x2="605.71" | |
25 | y1="535.22" | |
26 | x1="154.29" | |
27 | inkscape:collect="always"> | |
28 | <stop | |
29 | id="stop15842" | |
30 | style="stop-color:#0f18e4;stop-opacity:1" | |
31 | offset="0" /> | |
32 | <stop | |
33 | id="stop15848" | |
34 | style="stop-color:#070ec7;stop-opacity:1" | |
35 | offset=".5" /> | |
36 | <stop | |
37 | id="stop15850" | |
38 | style="stop-color:#1115c6;stop-opacity:1" | |
39 | offset=".75" /> | |
40 | <stop | |
41 | id="stop15852" | |
42 | style="stop-color:#0907d9;stop-opacity:0.6156863" | |
43 | offset=".9375" /> | |
44 | <stop | |
45 | id="stop15838" | |
46 | style="stop-color:#030664;stop-opacity:0.45909092" | |
47 | offset="1" /> | |
48 | </linearGradient> | |
49 | <radialGradient | |
50 | id="radialGradient20755" | |
51 | gradientUnits="userSpaceOnUse" | |
52 | cy="545.93" | |
53 | cx="102.14" | |
54 | r="135" | |
55 | inkscape:collect="always"> | |
56 | <stop | |
57 | id="stop20751" | |
58 | style="stop-color:#999999" | |
59 | offset="0" /> | |
60 | <stop | |
61 | id="stop20753" | |
62 | style="stop-color:#999999;stop-opacity:0" | |
63 | offset="1" /> | |
64 | </radialGradient> | |
65 | <radialGradient | |
66 | id="radialGradient2194" | |
67 | gradientUnits="userSpaceOnUse" | |
68 | cy="545.93" | |
69 | cx="102.14" | |
70 | r="135" | |
71 | inkscape:collect="always"> | |
72 | <stop | |
73 | id="stop18793" | |
74 | style="stop-color:#ffffff" | |
75 | offset="0" /> | |
76 | <stop | |
77 | id="stop18795" | |
78 | style="stop-color:#ffffff;stop-opacity:0" | |
79 | offset="1" /> | |
80 | </radialGradient> | |
81 | </defs> | |
82 | <sodipodi:namedview | |
83 | id="base" | |
84 | bordercolor="#666666" | |
85 | inkscape:pageshadow="2" | |
86 | inkscape:window-y="19" | |
87 | pagecolor="#ffffff" | |
88 | inkscape:window-height="1012" | |
89 | inkscape:zoom="0.49497475" | |
90 | inkscape:window-x="64" | |
91 | borderopacity="1.0" | |
92 | inkscape:current-layer="layer1" | |
93 | inkscape:cx="110.97588" | |
94 | inkscape:cy="568.29324" | |
95 | inkscape:window-width="1785" | |
96 | inkscape:pageopacity="0.0" | |
97 | inkscape:document-units="px" | |
98 | showgrid="false" | |
99 | inkscape:window-maximized="0" /> | |
100 | <g | |
101 | id="layer1" | |
102 | inkscape:label="Warstwa 1" | |
103 | inkscape:groupmode="layer" | |
104 | transform="translate(-154.32 -309.54)"> | |
105 | <path | |
106 | id="path18799" | |
107 | sodipodi:rx="135" | |
108 | sodipodi:ry="135" | |
109 | style="fill:url(#radialGradient20755)" | |
110 | sodipodi:type="arc" | |
111 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
112 | inkscape:transform-center-x="-18.535056" | |
113 | inkscape:transform-center-y="30.816466" | |
114 | transform="matrix(1.4557 -.47633 .64580 1.0737 -116.33 210.1)" | |
115 | sodipodi:cy="545.93359" | |
116 | sodipodi:cx="102.14286" /> | |
117 | <path | |
118 | id="path14863" | |
119 | sodipodi:rx="225.71428" | |
120 | sodipodi:ry="225.71428" | |
121 | style="fill:url(#linearGradient15840)" | |
122 | sodipodi:type="arc" | |
123 | d="M 605.71428,535.2193 A 225.71428,225.71428 0 0 1 380,760.93358 225.71428,225.71428 0 0 1 154.28572,535.2193 225.71428,225.71428 0 0 1 380,309.50502 225.71428,225.71428 0 0 1 605.71428,535.2193 Z" | |
124 | transform="matrix(-.67295 -.73969 .73969 -.67295 239.83 1176.5)" | |
125 | sodipodi:cy="535.2193" | |
126 | sodipodi:cx="380" /> | |
127 | <path | |
128 | id="path17820" | |
129 | sodipodi:rx="135" | |
130 | sodipodi:ry="135" | |
131 | style="opacity:.87615;fill:url(#radialGradient2194)" | |
132 | sodipodi:type="arc" | |
133 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
134 | transform="translate(222.86 -74.286)" | |
135 | sodipodi:cy="545.93359" | |
136 | sodipodi:cx="102.14286" /> | |
137 | </g> | |
138 | <metadata | |
139 | id="metadata20"> | |
140 | <rdf:RDF> | |
141 | <cc:Work> | |
142 | <dc:format>image/svg+xml</dc:format> | |
143 | <dc:type | |
144 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
145 | <cc:license | |
146 | rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | |
147 | <dc:publisher> | |
148 | <cc:Agent | |
149 | rdf:about="http://openclipart.org/"> | |
150 | <dc:title>Openclipart</dc:title> | |
151 | </cc:Agent> | |
152 | </dc:publisher> | |
153 | <dc:title></dc:title> | |
154 | <dc:date>2007-04-03T01:27:12</dc:date> | |
155 | <dc:description>a simple red ball with shadow and highlight</dc:description> | |
156 | <dc:source>https://openclipart.org/detail/3738/ball-by-chris_sharkot</dc:source> | |
157 | <dc:creator> | |
158 | <cc:Agent> | |
159 | <dc:title>chris_sharkot</dc:title> | |
160 | </cc:Agent> | |
161 | </dc:creator> | |
162 | <dc:subject> | |
163 | <rdf:Bag> | |
164 | <rdf:li>ball</rdf:li> | |
165 | <rdf:li>orb</rdf:li> | |
166 | <rdf:li>red</rdf:li> | |
167 | </rdf:Bag> | |
168 | </dc:subject> | |
169 | </cc:Work> | |
170 | <cc:License | |
171 | rdf:about="http://creativecommons.org/licenses/publicdomain/"> | |
172 | <cc:permits | |
173 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | |
174 | <cc:permits | |
175 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | |
176 | <cc:permits | |
177 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | |
178 | </cc:License> | |
179 | </rdf:RDF> | |
180 | </metadata> | |
181 | </svg> |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
2 | ||
3 | <svg | |
4 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
5 | xmlns:cc="http://creativecommons.org/ns#" | |
6 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
7 | xmlns:svg="http://www.w3.org/2000/svg" | |
8 | xmlns="http://www.w3.org/2000/svg" | |
9 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
10 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
11 | id="svg14855" | |
12 | sodipodi:docname="greenball.svg" | |
13 | viewBox="0 0 451.36 596.68" | |
14 | sodipodi:version="0.32" | |
15 | version="1.0" | |
16 | inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
17 | inkscape:version="0.92.3 (2405546, 2018-03-11)"> | |
18 | <defs | |
19 | id="defs14857"> | |
20 | <linearGradient | |
21 | id="linearGradient15840" | |
22 | y2="535.22" | |
23 | gradientUnits="userSpaceOnUse" | |
24 | x2="605.71" | |
25 | y1="535.22" | |
26 | x1="154.29" | |
27 | inkscape:collect="always"> | |
28 | <stop | |
29 | id="stop15842" | |
30 | style="stop-color:#2aee00;stop-opacity:1" | |
31 | offset="0" /> | |
32 | <stop | |
33 | id="stop15848" | |
34 | style="stop-color:#22ec1b;stop-opacity:1" | |
35 | offset=".5" /> | |
36 | <stop | |
37 | id="stop15850" | |
38 | style="stop-color:#22ca0f;stop-opacity:1" | |
39 | offset=".75" /> | |
40 | <stop | |
41 | id="stop15852" | |
42 | style="stop-color:#108516;stop-opacity:0.6156863" | |
43 | offset=".9375" /> | |
44 | <stop | |
45 | id="stop15838" | |
46 | style="stop-color:#081600;stop-opacity:0.21960784" | |
47 | offset="1" /> | |
48 | </linearGradient> | |
49 | <radialGradient | |
50 | id="radialGradient20755" | |
51 | gradientUnits="userSpaceOnUse" | |
52 | cy="545.93" | |
53 | cx="102.14" | |
54 | r="135" | |
55 | inkscape:collect="always"> | |
56 | <stop | |
57 | id="stop20751" | |
58 | style="stop-color:#999999" | |
59 | offset="0" /> | |
60 | <stop | |
61 | id="stop20753" | |
62 | style="stop-color:#999999;stop-opacity:0" | |
63 | offset="1" /> | |
64 | </radialGradient> | |
65 | <radialGradient | |
66 | id="radialGradient2194" | |
67 | gradientUnits="userSpaceOnUse" | |
68 | cy="545.93" | |
69 | cx="102.14" | |
70 | r="135" | |
71 | inkscape:collect="always"> | |
72 | <stop | |
73 | id="stop18793" | |
74 | style="stop-color:#ffffff" | |
75 | offset="0" /> | |
76 | <stop | |
77 | id="stop18795" | |
78 | style="stop-color:#ffffff;stop-opacity:0" | |
79 | offset="1" /> | |
80 | </radialGradient> | |
81 | </defs> | |
82 | <sodipodi:namedview | |
83 | id="base" | |
84 | bordercolor="#666666" | |
85 | inkscape:pageshadow="2" | |
86 | inkscape:window-y="19" | |
87 | pagecolor="#ffffff" | |
88 | inkscape:window-height="1012" | |
89 | inkscape:zoom="0.7" | |
90 | inkscape:window-x="64" | |
91 | borderopacity="1.0" | |
92 | inkscape:current-layer="layer1" | |
93 | inkscape:cx="110.97588" | |
94 | inkscape:cy="568.29324" | |
95 | inkscape:window-width="1785" | |
96 | inkscape:pageopacity="0.0" | |
97 | inkscape:document-units="px" | |
98 | showgrid="false" | |
99 | inkscape:window-maximized="0" /> | |
100 | <g | |
101 | id="layer1" | |
102 | inkscape:label="Warstwa 1" | |
103 | inkscape:groupmode="layer" | |
104 | transform="translate(-154.32 -309.54)"> | |
105 | <path | |
106 | id="path18799" | |
107 | sodipodi:rx="135" | |
108 | sodipodi:ry="135" | |
109 | style="fill:url(#radialGradient20755)" | |
110 | sodipodi:type="arc" | |
111 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
112 | inkscape:transform-center-x="-18.535056" | |
113 | inkscape:transform-center-y="30.816466" | |
114 | transform="matrix(1.4557 -.47633 .64580 1.0737 -116.33 210.1)" | |
115 | sodipodi:cy="545.93359" | |
116 | sodipodi:cx="102.14286" /> | |
117 | <path | |
118 | id="path14863" | |
119 | sodipodi:rx="225.71428" | |
120 | sodipodi:ry="225.71428" | |
121 | style="fill:url(#linearGradient15840)" | |
122 | sodipodi:type="arc" | |
123 | d="M 605.71428,535.2193 A 225.71428,225.71428 0 0 1 380,760.93358 225.71428,225.71428 0 0 1 154.28572,535.2193 225.71428,225.71428 0 0 1 380,309.50502 225.71428,225.71428 0 0 1 605.71428,535.2193 Z" | |
124 | transform="matrix(-.67295 -.73969 .73969 -.67295 239.83 1176.5)" | |
125 | sodipodi:cy="535.2193" | |
126 | sodipodi:cx="380" /> | |
127 | <path | |
128 | id="path17820" | |
129 | sodipodi:rx="135" | |
130 | sodipodi:ry="135" | |
131 | style="opacity:.87615;fill:url(#radialGradient2194)" | |
132 | sodipodi:type="arc" | |
133 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
134 | transform="translate(222.86 -74.286)" | |
135 | sodipodi:cy="545.93359" | |
136 | sodipodi:cx="102.14286" /> | |
137 | </g> | |
138 | <metadata | |
139 | id="metadata20"> | |
140 | <rdf:RDF> | |
141 | <cc:Work> | |
142 | <dc:format>image/svg+xml</dc:format> | |
143 | <dc:type | |
144 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
145 | <cc:license | |
146 | rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | |
147 | <dc:publisher> | |
148 | <cc:Agent | |
149 | rdf:about="http://openclipart.org/"> | |
150 | <dc:title>Openclipart</dc:title> | |
151 | </cc:Agent> | |
152 | </dc:publisher> | |
153 | <dc:title></dc:title> | |
154 | <dc:date>2007-04-03T01:27:12</dc:date> | |
155 | <dc:description>a simple red ball with shadow and highlight</dc:description> | |
156 | <dc:source>https://openclipart.org/detail/3738/ball-by-chris_sharkot</dc:source> | |
157 | <dc:creator> | |
158 | <cc:Agent> | |
159 | <dc:title>chris_sharkot</dc:title> | |
160 | </cc:Agent> | |
161 | </dc:creator> | |
162 | <dc:subject> | |
163 | <rdf:Bag> | |
164 | <rdf:li>ball</rdf:li> | |
165 | <rdf:li>orb</rdf:li> | |
166 | <rdf:li>red</rdf:li> | |
167 | </rdf:Bag> | |
168 | </dc:subject> | |
169 | </cc:Work> | |
170 | <cc:License | |
171 | rdf:about="http://creativecommons.org/licenses/publicdomain/"> | |
172 | <cc:permits | |
173 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | |
174 | <cc:permits | |
175 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | |
176 | <cc:permits | |
177 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | |
178 | </cc:License> | |
179 | </rdf:RDF> | |
180 | </metadata> | |
181 | </svg> |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
2 | ||
3 | <svg | |
4 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
5 | xmlns:cc="http://creativecommons.org/ns#" | |
6 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
7 | xmlns:svg="http://www.w3.org/2000/svg" | |
8 | xmlns="http://www.w3.org/2000/svg" | |
9 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
10 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
11 | id="svg14855" | |
12 | sodipodi:docname="orangeball.svg" | |
13 | viewBox="0 0 451.36 596.68" | |
14 | sodipodi:version="0.32" | |
15 | version="1.0" | |
16 | inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
17 | inkscape:version="0.92.3 (2405546, 2018-03-11)"> | |
18 | <defs | |
19 | id="defs14857"> | |
20 | <linearGradient | |
21 | id="linearGradient15840" | |
22 | y2="535.22" | |
23 | gradientUnits="userSpaceOnUse" | |
24 | x2="605.71" | |
25 | y1="535.22" | |
26 | x1="154.29" | |
27 | inkscape:collect="always"> | |
28 | <stop | |
29 | id="stop15842" | |
30 | style="stop-color:#f6b900;stop-opacity:1" | |
31 | offset="0" /> | |
32 | <stop | |
33 | id="stop15848" | |
34 | style="stop-color:#fcc90e;stop-opacity:1" | |
35 | offset=".5" /> | |
36 | <stop | |
37 | id="stop15850" | |
38 | style="stop-color:#ffbb02;stop-opacity:1" | |
39 | offset=".75" /> | |
40 | <stop | |
41 | id="stop15852" | |
42 | style="stop-color:#ffa300;stop-opacity:0.6156863" | |
43 | offset=".9375" /> | |
44 | <stop | |
45 | id="stop15838" | |
46 | style="stop-color:#ff7900;stop-opacity:0.21960784" | |
47 | offset="1" /> | |
48 | </linearGradient> | |
49 | <radialGradient | |
50 | id="radialGradient20755" | |
51 | gradientUnits="userSpaceOnUse" | |
52 | cy="545.93" | |
53 | cx="102.14" | |
54 | r="135" | |
55 | inkscape:collect="always"> | |
56 | <stop | |
57 | id="stop20751" | |
58 | style="stop-color:#999999" | |
59 | offset="0" /> | |
60 | <stop | |
61 | id="stop20753" | |
62 | style="stop-color:#999999;stop-opacity:0" | |
63 | offset="1" /> | |
64 | </radialGradient> | |
65 | <radialGradient | |
66 | id="radialGradient2194" | |
67 | gradientUnits="userSpaceOnUse" | |
68 | cy="545.93" | |
69 | cx="102.14" | |
70 | r="135" | |
71 | inkscape:collect="always"> | |
72 | <stop | |
73 | id="stop18793" | |
74 | style="stop-color:#ffffff" | |
75 | offset="0" /> | |
76 | <stop | |
77 | id="stop18795" | |
78 | style="stop-color:#ffffff;stop-opacity:0" | |
79 | offset="1" /> | |
80 | </radialGradient> | |
81 | </defs> | |
82 | <sodipodi:namedview | |
83 | id="base" | |
84 | bordercolor="#666666" | |
85 | inkscape:pageshadow="2" | |
86 | inkscape:window-y="19" | |
87 | pagecolor="#ffffff" | |
88 | inkscape:window-height="1012" | |
89 | inkscape:zoom="0.49497475" | |
90 | inkscape:window-x="64" | |
91 | borderopacity="1.0" | |
92 | inkscape:current-layer="layer1" | |
93 | inkscape:cx="110.97588" | |
94 | inkscape:cy="568.29324" | |
95 | inkscape:window-width="1785" | |
96 | inkscape:pageopacity="0.0" | |
97 | inkscape:document-units="px" | |
98 | showgrid="false" | |
99 | inkscape:window-maximized="0" /> | |
100 | <g | |
101 | id="layer1" | |
102 | inkscape:label="Warstwa 1" | |
103 | inkscape:groupmode="layer" | |
104 | transform="translate(-154.32 -309.54)"> | |
105 | <path | |
106 | id="path18799" | |
107 | sodipodi:rx="135" | |
108 | sodipodi:ry="135" | |
109 | style="fill:url(#radialGradient20755)" | |
110 | sodipodi:type="arc" | |
111 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
112 | inkscape:transform-center-x="-18.535056" | |
113 | inkscape:transform-center-y="30.816466" | |
114 | transform="matrix(1.4557 -.47633 .64580 1.0737 -116.33 210.1)" | |
115 | sodipodi:cy="545.93359" | |
116 | sodipodi:cx="102.14286" /> | |
117 | <path | |
118 | id="path14863" | |
119 | sodipodi:rx="225.71428" | |
120 | sodipodi:ry="225.71428" | |
121 | style="fill:url(#linearGradient15840)" | |
122 | sodipodi:type="arc" | |
123 | d="M 605.71428,535.2193 A 225.71428,225.71428 0 0 1 380,760.93358 225.71428,225.71428 0 0 1 154.28572,535.2193 225.71428,225.71428 0 0 1 380,309.50502 225.71428,225.71428 0 0 1 605.71428,535.2193 Z" | |
124 | transform="matrix(-.67295 -.73969 .73969 -.67295 239.83 1176.5)" | |
125 | sodipodi:cy="535.2193" | |
126 | sodipodi:cx="380" /> | |
127 | <path | |
128 | id="path17820" | |
129 | sodipodi:rx="135" | |
130 | sodipodi:ry="135" | |
131 | style="opacity:.87615;fill:url(#radialGradient2194)" | |
132 | sodipodi:type="arc" | |
133 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
134 | transform="translate(222.86 -74.286)" | |
135 | sodipodi:cy="545.93359" | |
136 | sodipodi:cx="102.14286" /> | |
137 | </g> | |
138 | <metadata | |
139 | id="metadata20"> | |
140 | <rdf:RDF> | |
141 | <cc:Work> | |
142 | <dc:format>image/svg+xml</dc:format> | |
143 | <dc:type | |
144 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
145 | <cc:license | |
146 | rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | |
147 | <dc:publisher> | |
148 | <cc:Agent | |
149 | rdf:about="http://openclipart.org/"> | |
150 | <dc:title>Openclipart</dc:title> | |
151 | </cc:Agent> | |
152 | </dc:publisher> | |
153 | <dc:title></dc:title> | |
154 | <dc:date>2007-04-03T01:27:12</dc:date> | |
155 | <dc:description>a simple red ball with shadow and highlight</dc:description> | |
156 | <dc:source>https://openclipart.org/detail/3738/ball-by-chris_sharkot</dc:source> | |
157 | <dc:creator> | |
158 | <cc:Agent> | |
159 | <dc:title>chris_sharkot</dc:title> | |
160 | </cc:Agent> | |
161 | </dc:creator> | |
162 | <dc:subject> | |
163 | <rdf:Bag> | |
164 | <rdf:li>ball</rdf:li> | |
165 | <rdf:li>orb</rdf:li> | |
166 | <rdf:li>red</rdf:li> | |
167 | </rdf:Bag> | |
168 | </dc:subject> | |
169 | </cc:Work> | |
170 | <cc:License | |
171 | rdf:about="http://creativecommons.org/licenses/publicdomain/"> | |
172 | <cc:permits | |
173 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | |
174 | <cc:permits | |
175 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | |
176 | <cc:permits | |
177 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | |
178 | </cc:License> | |
179 | </rdf:RDF> | |
180 | </metadata> | |
181 | </svg> |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
2 | ||
3 | <svg | |
4 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
5 | xmlns:cc="http://creativecommons.org/ns#" | |
6 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
7 | xmlns:svg="http://www.w3.org/2000/svg" | |
8 | xmlns="http://www.w3.org/2000/svg" | |
9 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
10 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
11 | id="svg14855" | |
12 | sodipodi:docname="pinkball.svg" | |
13 | viewBox="0 0 451.36 596.68" | |
14 | sodipodi:version="0.32" | |
15 | version="1.0" | |
16 | inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
17 | inkscape:version="0.92.3 (2405546, 2018-03-11)"> | |
18 | <defs | |
19 | id="defs14857"> | |
20 | <linearGradient | |
21 | id="linearGradient15840" | |
22 | y2="535.22" | |
23 | gradientUnits="userSpaceOnUse" | |
24 | x2="605.71" | |
25 | y1="535.22" | |
26 | x1="154.29" | |
27 | inkscape:collect="always"> | |
28 | <stop | |
29 | id="stop15842" | |
30 | style="stop-color:#ff73b1;stop-opacity:1" | |
31 | offset="0" /> | |
32 | <stop | |
33 | id="stop15848" | |
34 | style="stop-color:#fe43b1;stop-opacity:1" | |
35 | offset=".5" /> | |
36 | <stop | |
37 | id="stop15850" | |
38 | style="stop-color:#fc5fbc;stop-opacity:1" | |
39 | offset=".75" /> | |
40 | <stop | |
41 | id="stop15852" | |
42 | style="stop-color:#fe8bdd;stop-opacity:0.9909091" | |
43 | offset=".9375" /> | |
44 | <stop | |
45 | id="stop15838" | |
46 | style="stop-color:#ff25bd;stop-opacity:0.45882353" | |
47 | offset="1" /> | |
48 | </linearGradient> | |
49 | <radialGradient | |
50 | id="radialGradient20755" | |
51 | gradientUnits="userSpaceOnUse" | |
52 | cy="545.93" | |
53 | cx="102.14" | |
54 | r="135" | |
55 | inkscape:collect="always"> | |
56 | <stop | |
57 | id="stop20751" | |
58 | style="stop-color:#999999" | |
59 | offset="0" /> | |
60 | <stop | |
61 | id="stop20753" | |
62 | style="stop-color:#999999;stop-opacity:0" | |
63 | offset="1" /> | |
64 | </radialGradient> | |
65 | <radialGradient | |
66 | id="radialGradient2194" | |
67 | gradientUnits="userSpaceOnUse" | |
68 | cy="545.93" | |
69 | cx="102.14" | |
70 | r="135" | |
71 | inkscape:collect="always"> | |
72 | <stop | |
73 | id="stop18793" | |
74 | style="stop-color:#ffffff" | |
75 | offset="0" /> | |
76 | <stop | |
77 | id="stop18795" | |
78 | style="stop-color:#ffffff;stop-opacity:0" | |
79 | offset="1" /> | |
80 | </radialGradient> | |
81 | </defs> | |
82 | <sodipodi:namedview | |
83 | id="base" | |
84 | bordercolor="#666666" | |
85 | inkscape:pageshadow="2" | |
86 | inkscape:window-y="19" | |
87 | pagecolor="#ffffff" | |
88 | inkscape:window-height="1012" | |
89 | inkscape:zoom="0.49497475" | |
90 | inkscape:window-x="64" | |
91 | borderopacity="1.0" | |
92 | inkscape:current-layer="layer1" | |
93 | inkscape:cx="110.97588" | |
94 | inkscape:cy="568.29324" | |
95 | inkscape:window-width="1785" | |
96 | inkscape:pageopacity="0.0" | |
97 | inkscape:document-units="px" | |
98 | showgrid="false" | |
99 | inkscape:window-maximized="0" /> | |
100 | <g | |
101 | id="layer1" | |
102 | inkscape:label="Warstwa 1" | |
103 | inkscape:groupmode="layer" | |
104 | transform="translate(-154.32 -309.54)"> | |
105 | <path | |
106 | id="path18799" | |
107 | sodipodi:rx="135" | |
108 | sodipodi:ry="135" | |
109 | style="fill:url(#radialGradient20755)" | |
110 | sodipodi:type="arc" | |
111 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
112 | inkscape:transform-center-x="-18.535056" | |
113 | inkscape:transform-center-y="30.816466" | |
114 | transform="matrix(1.4557 -.47633 .64580 1.0737 -116.33 210.1)" | |
115 | sodipodi:cy="545.93359" | |
116 | sodipodi:cx="102.14286" /> | |
117 | <path | |
118 | id="path14863" | |
119 | sodipodi:rx="225.71428" | |
120 | sodipodi:ry="225.71428" | |
121 | style="fill:url(#linearGradient15840)" | |
122 | sodipodi:type="arc" | |
123 | d="M 605.71428,535.2193 A 225.71428,225.71428 0 0 1 380,760.93358 225.71428,225.71428 0 0 1 154.28572,535.2193 225.71428,225.71428 0 0 1 380,309.50502 225.71428,225.71428 0 0 1 605.71428,535.2193 Z" | |
124 | transform="matrix(-.67295 -.73969 .73969 -.67295 239.83 1176.5)" | |
125 | sodipodi:cy="535.2193" | |
126 | sodipodi:cx="380" /> | |
127 | <path | |
128 | id="path17820" | |
129 | sodipodi:rx="135" | |
130 | sodipodi:ry="135" | |
131 | style="opacity:.87615;fill:url(#radialGradient2194)" | |
132 | sodipodi:type="arc" | |
133 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
134 | transform="translate(222.86 -74.286)" | |
135 | sodipodi:cy="545.93359" | |
136 | sodipodi:cx="102.14286" /> | |
137 | </g> | |
138 | <metadata | |
139 | id="metadata20"> | |
140 | <rdf:RDF> | |
141 | <cc:Work> | |
142 | <dc:format>image/svg+xml</dc:format> | |
143 | <dc:type | |
144 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
145 | <cc:license | |
146 | rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | |
147 | <dc:publisher> | |
148 | <cc:Agent | |
149 | rdf:about="http://openclipart.org/"> | |
150 | <dc:title>Openclipart</dc:title> | |
151 | </cc:Agent> | |
152 | </dc:publisher> | |
153 | <dc:title></dc:title> | |
154 | <dc:date>2007-04-03T01:27:12</dc:date> | |
155 | <dc:description>a simple red ball with shadow and highlight</dc:description> | |
156 | <dc:source>https://openclipart.org/detail/3738/ball-by-chris_sharkot</dc:source> | |
157 | <dc:creator> | |
158 | <cc:Agent> | |
159 | <dc:title>chris_sharkot</dc:title> | |
160 | </cc:Agent> | |
161 | </dc:creator> | |
162 | <dc:subject> | |
163 | <rdf:Bag> | |
164 | <rdf:li>ball</rdf:li> | |
165 | <rdf:li>orb</rdf:li> | |
166 | <rdf:li>red</rdf:li> | |
167 | </rdf:Bag> | |
168 | </dc:subject> | |
169 | </cc:Work> | |
170 | <cc:License | |
171 | rdf:about="http://creativecommons.org/licenses/publicdomain/"> | |
172 | <cc:permits | |
173 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | |
174 | <cc:permits | |
175 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | |
176 | <cc:permits | |
177 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | |
178 | </cc:License> | |
179 | </rdf:RDF> | |
180 | </metadata> | |
181 | </svg> |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
2 | ||
3 | <svg | |
4 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
5 | xmlns:cc="http://creativecommons.org/ns#" | |
6 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
7 | xmlns:svg="http://www.w3.org/2000/svg" | |
8 | xmlns="http://www.w3.org/2000/svg" | |
9 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
10 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
11 | id="svg14855" | |
12 | sodipodi:docname="purpleball.svg" | |
13 | viewBox="0 0 451.36 596.68" | |
14 | sodipodi:version="0.32" | |
15 | version="1.0" | |
16 | inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
17 | inkscape:version="0.92.3 (2405546, 2018-03-11)"> | |
18 | <defs | |
19 | id="defs14857"> | |
20 | <linearGradient | |
21 | id="linearGradient15840" | |
22 | y2="535.22" | |
23 | gradientUnits="userSpaceOnUse" | |
24 | x2="605.71" | |
25 | y1="535.22" | |
26 | x1="154.29" | |
27 | inkscape:collect="always"> | |
28 | <stop | |
29 | id="stop15842" | |
30 | style="stop-color:#770977;stop-opacity:1" | |
31 | offset="0" /> | |
32 | <stop | |
33 | id="stop15848" | |
34 | style="stop-color:#da10da;stop-opacity:1" | |
35 | offset=".5" /> | |
36 | <stop | |
37 | id="stop15850" | |
38 | style="stop-color:#d240d2;stop-opacity:1" | |
39 | offset=".75" /> | |
40 | <stop | |
41 | id="stop15852" | |
42 | style="stop-color:#d443d4;stop-opacity:0.6156863" | |
43 | offset=".9375" /> | |
44 | <stop | |
45 | id="stop15838" | |
46 | style="stop-color:#c300c3;stop-opacity:0.21960784" | |
47 | offset="1" /> | |
48 | </linearGradient> | |
49 | <radialGradient | |
50 | id="radialGradient20755" | |
51 | gradientUnits="userSpaceOnUse" | |
52 | cy="545.93" | |
53 | cx="102.14" | |
54 | r="135" | |
55 | inkscape:collect="always"> | |
56 | <stop | |
57 | id="stop20751" | |
58 | style="stop-color:#999999" | |
59 | offset="0" /> | |
60 | <stop | |
61 | id="stop20753" | |
62 | style="stop-color:#999999;stop-opacity:0" | |
63 | offset="1" /> | |
64 | </radialGradient> | |
65 | <radialGradient | |
66 | id="radialGradient2194" | |
67 | gradientUnits="userSpaceOnUse" | |
68 | cy="545.93" | |
69 | cx="102.14" | |
70 | r="135" | |
71 | inkscape:collect="always"> | |
72 | <stop | |
73 | id="stop18793" | |
74 | style="stop-color:#ffffff" | |
75 | offset="0" /> | |
76 | <stop | |
77 | id="stop18795" | |
78 | style="stop-color:#ffffff;stop-opacity:0" | |
79 | offset="1" /> | |
80 | </radialGradient> | |
81 | </defs> | |
82 | <sodipodi:namedview | |
83 | id="base" | |
84 | bordercolor="#666666" | |
85 | inkscape:pageshadow="2" | |
86 | inkscape:window-y="19" | |
87 | pagecolor="#ffffff" | |
88 | inkscape:window-height="1012" | |
89 | inkscape:zoom="0.49497475" | |
90 | inkscape:window-x="64" | |
91 | borderopacity="1.0" | |
92 | inkscape:current-layer="layer1" | |
93 | inkscape:cx="110.97588" | |
94 | inkscape:cy="568.29324" | |
95 | inkscape:window-width="1785" | |
96 | inkscape:pageopacity="0.0" | |
97 | inkscape:document-units="px" | |
98 | showgrid="false" | |
99 | inkscape:window-maximized="0" /> | |
100 | <g | |
101 | id="layer1" | |
102 | inkscape:label="Warstwa 1" | |
103 | inkscape:groupmode="layer" | |
104 | transform="translate(-154.32 -309.54)"> | |
105 | <path | |
106 | id="path18799" | |
107 | sodipodi:rx="135" | |
108 | sodipodi:ry="135" | |
109 | style="fill:url(#radialGradient20755)" | |
110 | sodipodi:type="arc" | |
111 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
112 | inkscape:transform-center-x="-18.535056" | |
113 | inkscape:transform-center-y="30.816466" | |
114 | transform="matrix(1.4557 -.47633 .64580 1.0737 -116.33 210.1)" | |
115 | sodipodi:cy="545.93359" | |
116 | sodipodi:cx="102.14286" /> | |
117 | <path | |
118 | id="path14863" | |
119 | sodipodi:rx="225.71428" | |
120 | sodipodi:ry="225.71428" | |
121 | style="fill:url(#linearGradient15840)" | |
122 | sodipodi:type="arc" | |
123 | d="M 605.71428,535.2193 A 225.71428,225.71428 0 0 1 380,760.93358 225.71428,225.71428 0 0 1 154.28572,535.2193 225.71428,225.71428 0 0 1 380,309.50502 225.71428,225.71428 0 0 1 605.71428,535.2193 Z" | |
124 | transform="matrix(-.67295 -.73969 .73969 -.67295 239.83 1176.5)" | |
125 | sodipodi:cy="535.2193" | |
126 | sodipodi:cx="380" /> | |
127 | <path | |
128 | id="path17820" | |
129 | sodipodi:rx="135" | |
130 | sodipodi:ry="135" | |
131 | style="opacity:.87615;fill:url(#radialGradient2194)" | |
132 | sodipodi:type="arc" | |
133 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
134 | transform="translate(222.86 -74.286)" | |
135 | sodipodi:cy="545.93359" | |
136 | sodipodi:cx="102.14286" /> | |
137 | </g> | |
138 | <metadata | |
139 | id="metadata20"> | |
140 | <rdf:RDF> | |
141 | <cc:Work> | |
142 | <dc:format>image/svg+xml</dc:format> | |
143 | <dc:type | |
144 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
145 | <cc:license | |
146 | rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | |
147 | <dc:publisher> | |
148 | <cc:Agent | |
149 | rdf:about="http://openclipart.org/"> | |
150 | <dc:title>Openclipart</dc:title> | |
151 | </cc:Agent> | |
152 | </dc:publisher> | |
153 | <dc:title></dc:title> | |
154 | <dc:date>2007-04-03T01:27:12</dc:date> | |
155 | <dc:description>a simple red ball with shadow and highlight</dc:description> | |
156 | <dc:source>https://openclipart.org/detail/3738/ball-by-chris_sharkot</dc:source> | |
157 | <dc:creator> | |
158 | <cc:Agent> | |
159 | <dc:title>chris_sharkot</dc:title> | |
160 | </cc:Agent> | |
161 | </dc:creator> | |
162 | <dc:subject> | |
163 | <rdf:Bag> | |
164 | <rdf:li>ball</rdf:li> | |
165 | <rdf:li>orb</rdf:li> | |
166 | <rdf:li>red</rdf:li> | |
167 | </rdf:Bag> | |
168 | </dc:subject> | |
169 | </cc:Work> | |
170 | <cc:License | |
171 | rdf:about="http://creativecommons.org/licenses/publicdomain/"> | |
172 | <cc:permits | |
173 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | |
174 | <cc:permits | |
175 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | |
176 | <cc:permits | |
177 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | |
178 | </cc:License> | |
179 | </rdf:RDF> | |
180 | </metadata> | |
181 | </svg> |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
2 | <svg | |
3 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
4 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
5 | xmlns="http://www.w3.org/2000/svg" | |
6 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
7 | xmlns:cc="http://web.resource.org/cc/" | |
8 | xmlns:xlink="http://www.w3.org/1999/xlink" | |
9 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
10 | xmlns:svg="http://www.w3.org/2000/svg" | |
11 | xmlns:ns1="http://sozi.baierouge.fr" | |
12 | id="svg14855" | |
13 | sodipodi:docname="chris_sharkot_ball.svg" | |
14 | viewBox="0 0 451.36 596.68" | |
15 | sodipodi:version="0.32" | |
16 | version="1.0" | |
17 | inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
18 | inkscape:version="0.45.1" | |
19 | sodipodi:docbase="/Users/johnolsen/Desktop" | |
20 | > | |
21 | <defs | |
22 | id="defs14857" | |
23 | > | |
24 | <linearGradient | |
25 | id="linearGradient15840" | |
26 | y2="535.22" | |
27 | gradientUnits="userSpaceOnUse" | |
28 | x2="605.71" | |
29 | y1="535.22" | |
30 | x1="154.29" | |
31 | inkscape:collect="always" | |
32 | > | |
33 | <stop | |
34 | id="stop15842" | |
35 | style="stop-color:#770900" | |
36 | offset="0" | |
37 | /> | |
38 | <stop | |
39 | id="stop15848" | |
40 | style="stop-color:#da101b" | |
41 | offset=".5" | |
42 | /> | |
43 | <stop | |
44 | id="stop15850" | |
45 | style="stop-color:#d2400f" | |
46 | offset=".75" | |
47 | /> | |
48 | <stop | |
49 | id="stop15852" | |
50 | style="stop-color:#d44316;stop-opacity:.61458" | |
51 | offset=".9375" | |
52 | /> | |
53 | <stop | |
54 | id="stop15838" | |
55 | style="stop-color:#c30000;stop-opacity:.21875" | |
56 | offset="1" | |
57 | /> | |
58 | </linearGradient | |
59 | > | |
60 | <radialGradient | |
61 | id="radialGradient20755" | |
62 | gradientUnits="userSpaceOnUse" | |
63 | cy="545.93" | |
64 | cx="102.14" | |
65 | r="135" | |
66 | inkscape:collect="always" | |
67 | > | |
68 | <stop | |
69 | id="stop20751" | |
70 | style="stop-color:#999999" | |
71 | offset="0" | |
72 | /> | |
73 | <stop | |
74 | id="stop20753" | |
75 | style="stop-color:#999999;stop-opacity:0" | |
76 | offset="1" | |
77 | /> | |
78 | </radialGradient | |
79 | > | |
80 | <radialGradient | |
81 | id="radialGradient2194" | |
82 | gradientUnits="userSpaceOnUse" | |
83 | cy="545.93" | |
84 | cx="102.14" | |
85 | r="135" | |
86 | inkscape:collect="always" | |
87 | > | |
88 | <stop | |
89 | id="stop18793" | |
90 | style="stop-color:#ffffff" | |
91 | offset="0" | |
92 | /> | |
93 | <stop | |
94 | id="stop18795" | |
95 | style="stop-color:#ffffff;stop-opacity:0" | |
96 | offset="1" | |
97 | /> | |
98 | </radialGradient | |
99 | > | |
100 | </defs | |
101 | > | |
102 | <sodipodi:namedview | |
103 | id="base" | |
104 | bordercolor="#666666" | |
105 | inkscape:pageshadow="2" | |
106 | inkscape:window-y="22" | |
107 | pagecolor="#ffffff" | |
108 | inkscape:window-height="1012" | |
109 | inkscape:zoom="0.7" | |
110 | inkscape:window-x="0" | |
111 | borderopacity="1.0" | |
112 | inkscape:current-layer="layer1" | |
113 | inkscape:cx="384.54731" | |
114 | inkscape:cy="568.29324" | |
115 | inkscape:window-width="1222" | |
116 | inkscape:pageopacity="0.0" | |
117 | inkscape:document-units="px" | |
118 | /> | |
119 | <g | |
120 | id="layer1" | |
121 | inkscape:label="Warstwa 1" | |
122 | inkscape:groupmode="layer" | |
123 | transform="translate(-154.32 -309.54)" | |
124 | > | |
125 | <path | |
126 | id="path18799" | |
127 | sodipodi:rx="135" | |
128 | sodipodi:ry="135" | |
129 | style="fill:url(#radialGradient20755)" | |
130 | sodipodi:type="arc" | |
131 | d="m237.14 545.93a135 135 0 1 1 -270 0 135 135 0 1 1 270 0z" | |
132 | inkscape:transform-center-x="-18.535056" | |
133 | inkscape:transform-center-y="30.816466" | |
134 | transform="matrix(1.4557 -.47633 .64580 1.0737 -116.33 210.1)" | |
135 | sodipodi:cy="545.93359" | |
136 | sodipodi:cx="102.14286" | |
137 | /> | |
138 | <path | |
139 | id="path14863" | |
140 | sodipodi:rx="225.71428" | |
141 | sodipodi:ry="225.71428" | |
142 | style="fill:url(#linearGradient15840)" | |
143 | sodipodi:type="arc" | |
144 | d="m605.71 535.22a225.71 225.71 0 1 1 -451.42 0 225.71 225.71 0 1 1 451.42 0z" | |
145 | transform="matrix(-.67295 -.73969 .73969 -.67295 239.83 1176.5)" | |
146 | sodipodi:cy="535.2193" | |
147 | sodipodi:cx="380" | |
148 | /> | |
149 | <path | |
150 | id="path17820" | |
151 | sodipodi:rx="135" | |
152 | sodipodi:ry="135" | |
153 | style="opacity:.87615;fill:url(#radialGradient2194)" | |
154 | sodipodi:type="arc" | |
155 | d="m237.14 545.93a135 135 0 1 1 -270 0 135 135 0 1 1 270 0z" | |
156 | transform="translate(222.86 -74.286)" | |
157 | sodipodi:cy="545.93359" | |
158 | sodipodi:cx="102.14286" | |
159 | /> | |
160 | </g | |
161 | > | |
162 | <metadata | |
163 | > | |
164 | <rdf:RDF | |
165 | > | |
166 | <cc:Work | |
167 | > | |
168 | <dc:format | |
169 | >image/svg+xml</dc:format | |
170 | > | |
171 | <dc:type | |
172 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" | |
173 | /> | |
174 | <cc:license | |
175 | rdf:resource="http://creativecommons.org/licenses/publicdomain/" | |
176 | /> | |
177 | <dc:publisher | |
178 | > | |
179 | <cc:Agent | |
180 | rdf:about="http://openclipart.org/" | |
181 | > | |
182 | <dc:title | |
183 | >Openclipart</dc:title | |
184 | > | |
185 | </cc:Agent | |
186 | > | |
187 | </dc:publisher | |
188 | > | |
189 | <dc:title | |
190 | >ball</dc:title | |
191 | > | |
192 | <dc:date | |
193 | >2007-04-03T01:27:12</dc:date | |
194 | > | |
195 | <dc:description | |
196 | >a simple red ball with shadow and highlight</dc:description | |
197 | > | |
198 | <dc:source | |
199 | >https://openclipart.org/detail/3738/ball-by-chris_sharkot</dc:source | |
200 | > | |
201 | <dc:creator | |
202 | > | |
203 | <cc:Agent | |
204 | > | |
205 | <dc:title | |
206 | >chris_sharkot</dc:title | |
207 | > | |
208 | </cc:Agent | |
209 | > | |
210 | </dc:creator | |
211 | > | |
212 | <dc:subject | |
213 | > | |
214 | <rdf:Bag | |
215 | > | |
216 | <rdf:li | |
217 | >ball</rdf:li | |
218 | > | |
219 | <rdf:li | |
220 | >orb</rdf:li | |
221 | > | |
222 | <rdf:li | |
223 | >red</rdf:li | |
224 | > | |
225 | </rdf:Bag | |
226 | > | |
227 | </dc:subject | |
228 | > | |
229 | </cc:Work | |
230 | > | |
231 | <cc:License | |
232 | rdf:about="http://creativecommons.org/licenses/publicdomain/" | |
233 | > | |
234 | <cc:permits | |
235 | rdf:resource="http://creativecommons.org/ns#Reproduction" | |
236 | /> | |
237 | <cc:permits | |
238 | rdf:resource="http://creativecommons.org/ns#Distribution" | |
239 | /> | |
240 | <cc:permits | |
241 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" | |
242 | /> | |
243 | </cc:License | |
244 | > | |
245 | </rdf:RDF | |
246 | > | |
247 | </metadata | |
248 | > | |
249 | </svg | |
250 | > |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
2 | ||
3 | <svg | |
4 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
5 | xmlns:cc="http://creativecommons.org/ns#" | |
6 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
7 | xmlns:svg="http://www.w3.org/2000/svg" | |
8 | xmlns="http://www.w3.org/2000/svg" | |
9 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
10 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
11 | id="svg14855" | |
12 | sodipodi:docname="whiteball.svg" | |
13 | viewBox="0 0 451.36 596.68" | |
14 | sodipodi:version="0.32" | |
15 | version="1.0" | |
16 | inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
17 | inkscape:version="0.92.3 (2405546, 2018-03-11)"> | |
18 | <defs | |
19 | id="defs14857"> | |
20 | <linearGradient | |
21 | id="linearGradient15840" | |
22 | y2="535.22" | |
23 | gradientUnits="userSpaceOnUse" | |
24 | x2="605.71" | |
25 | y1="535.22" | |
26 | x1="154.29" | |
27 | inkscape:collect="always"> | |
28 | <stop | |
29 | id="stop15842" | |
30 | style="stop-color:#777777;stop-opacity:1" | |
31 | offset="0" /> | |
32 | <stop | |
33 | id="stop15848" | |
34 | style="stop-color:#dadada;stop-opacity:1" | |
35 | offset="0.49911293" /> | |
36 | <stop | |
37 | id="stop15850" | |
38 | style="stop-color:#d2d2d2;stop-opacity:1" | |
39 | offset=".75" /> | |
40 | <stop | |
41 | id="stop15852" | |
42 | style="stop-color:#d4d4d4;stop-opacity:0.6156863" | |
43 | offset=".9375" /> | |
44 | <stop | |
45 | id="stop15838" | |
46 | style="stop-color:#c3c3c3;stop-opacity:0.21960784" | |
47 | offset="1" /> | |
48 | </linearGradient> | |
49 | <radialGradient | |
50 | id="radialGradient20755" | |
51 | gradientUnits="userSpaceOnUse" | |
52 | cy="545.93" | |
53 | cx="102.14" | |
54 | r="135" | |
55 | inkscape:collect="always"> | |
56 | <stop | |
57 | id="stop20751" | |
58 | style="stop-color:#999999" | |
59 | offset="0" /> | |
60 | <stop | |
61 | id="stop20753" | |
62 | style="stop-color:#999999;stop-opacity:0" | |
63 | offset="1" /> | |
64 | </radialGradient> | |
65 | <radialGradient | |
66 | id="radialGradient2194" | |
67 | gradientUnits="userSpaceOnUse" | |
68 | cy="545.93" | |
69 | cx="102.14" | |
70 | r="135" | |
71 | inkscape:collect="always"> | |
72 | <stop | |
73 | id="stop18793" | |
74 | style="stop-color:#ffffff" | |
75 | offset="0" /> | |
76 | <stop | |
77 | id="stop18795" | |
78 | style="stop-color:#ffffff;stop-opacity:0" | |
79 | offset="1" /> | |
80 | </radialGradient> | |
81 | </defs> | |
82 | <sodipodi:namedview | |
83 | id="base" | |
84 | bordercolor="#666666" | |
85 | inkscape:pageshadow="2" | |
86 | inkscape:window-y="19" | |
87 | pagecolor="#ffffff" | |
88 | inkscape:window-height="1012" | |
89 | inkscape:zoom="0.49497475" | |
90 | inkscape:window-x="64" | |
91 | borderopacity="1.0" | |
92 | inkscape:current-layer="layer1" | |
93 | inkscape:cx="110.97588" | |
94 | inkscape:cy="568.29324" | |
95 | inkscape:window-width="1785" | |
96 | inkscape:pageopacity="0.0" | |
97 | inkscape:document-units="px" | |
98 | showgrid="false" | |
99 | inkscape:window-maximized="0" /> | |
100 | <g | |
101 | id="layer1" | |
102 | inkscape:label="Warstwa 1" | |
103 | inkscape:groupmode="layer" | |
104 | transform="translate(-154.32 -309.54)"> | |
105 | <path | |
106 | id="path18799" | |
107 | sodipodi:rx="135" | |
108 | sodipodi:ry="135" | |
109 | style="fill:url(#radialGradient20755)" | |
110 | sodipodi:type="arc" | |
111 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
112 | inkscape:transform-center-x="-18.535056" | |
113 | inkscape:transform-center-y="30.816466" | |
114 | transform="matrix(1.4557 -.47633 .64580 1.0737 -116.33 210.1)" | |
115 | sodipodi:cy="545.93359" | |
116 | sodipodi:cx="102.14286" /> | |
117 | <path | |
118 | id="path14863" | |
119 | sodipodi:rx="225.71428" | |
120 | sodipodi:ry="225.71428" | |
121 | style="fill:url(#linearGradient15840)" | |
122 | sodipodi:type="arc" | |
123 | d="M 605.71428,535.2193 A 225.71428,225.71428 0 0 1 380,760.93358 225.71428,225.71428 0 0 1 154.28572,535.2193 225.71428,225.71428 0 0 1 380,309.50502 225.71428,225.71428 0 0 1 605.71428,535.2193 Z" | |
124 | transform="matrix(-.67295 -.73969 .73969 -.67295 239.83 1176.5)" | |
125 | sodipodi:cy="535.2193" | |
126 | sodipodi:cx="380" /> | |
127 | <path | |
128 | id="path17820" | |
129 | sodipodi:rx="135" | |
130 | sodipodi:ry="135" | |
131 | style="opacity:.87615;fill:url(#radialGradient2194)" | |
132 | sodipodi:type="arc" | |
133 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
134 | transform="translate(222.86 -74.286)" | |
135 | sodipodi:cy="545.93359" | |
136 | sodipodi:cx="102.14286" /> | |
137 | </g> | |
138 | <metadata | |
139 | id="metadata20"> | |
140 | <rdf:RDF> | |
141 | <cc:Work> | |
142 | <dc:format>image/svg+xml</dc:format> | |
143 | <dc:type | |
144 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
145 | <cc:license | |
146 | rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | |
147 | <dc:publisher> | |
148 | <cc:Agent | |
149 | rdf:about="http://openclipart.org/"> | |
150 | <dc:title>Openclipart</dc:title> | |
151 | </cc:Agent> | |
152 | </dc:publisher> | |
153 | <dc:title></dc:title> | |
154 | <dc:date>2007-04-03T01:27:12</dc:date> | |
155 | <dc:description>a simple red ball with shadow and highlight</dc:description> | |
156 | <dc:source>https://openclipart.org/detail/3738/ball-by-chris_sharkot</dc:source> | |
157 | <dc:creator> | |
158 | <cc:Agent> | |
159 | <dc:title>chris_sharkot</dc:title> | |
160 | </cc:Agent> | |
161 | </dc:creator> | |
162 | <dc:subject> | |
163 | <rdf:Bag> | |
164 | <rdf:li>ball</rdf:li> | |
165 | <rdf:li>orb</rdf:li> | |
166 | <rdf:li>red</rdf:li> | |
167 | </rdf:Bag> | |
168 | </dc:subject> | |
169 | </cc:Work> | |
170 | <cc:License | |
171 | rdf:about="http://creativecommons.org/licenses/publicdomain/"> | |
172 | <cc:permits | |
173 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | |
174 | <cc:permits | |
175 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | |
176 | <cc:permits | |
177 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | |
178 | </cc:License> | |
179 | </rdf:RDF> | |
180 | </metadata> | |
181 | </svg> |
0 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
1 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | |
2 | ||
3 | <svg | |
4 | xmlns:dc="http://purl.org/dc/elements/1.1/" | |
5 | xmlns:cc="http://creativecommons.org/ns#" | |
6 | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |
7 | xmlns:svg="http://www.w3.org/2000/svg" | |
8 | xmlns="http://www.w3.org/2000/svg" | |
9 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |
10 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |
11 | id="svg14855" | |
12 | sodipodi:docname="yellowball.svg" | |
13 | viewBox="0 0 451.36 596.68" | |
14 | sodipodi:version="0.32" | |
15 | version="1.0" | |
16 | inkscape:output_extension="org.inkscape.output.svg.inkscape" | |
17 | inkscape:version="0.92.3 (2405546, 2018-03-11)"> | |
18 | <defs | |
19 | id="defs14857"> | |
20 | <linearGradient | |
21 | id="linearGradient15840" | |
22 | y2="535.22" | |
23 | gradientUnits="userSpaceOnUse" | |
24 | x2="605.71" | |
25 | y1="535.22" | |
26 | x1="154.29" | |
27 | inkscape:collect="always"> | |
28 | <stop | |
29 | id="stop15842" | |
30 | style="stop-color:#f6e800;stop-opacity:1" | |
31 | offset="0" /> | |
32 | <stop | |
33 | id="stop15848" | |
34 | style="stop-color:#fceb0e;stop-opacity:1" | |
35 | offset=".5" /> | |
36 | <stop | |
37 | id="stop15850" | |
38 | style="stop-color:#fff802;stop-opacity:1" | |
39 | offset=".75" /> | |
40 | <stop | |
41 | id="stop15852" | |
42 | style="stop-color:#fff700;stop-opacity:0.6156863" | |
43 | offset=".9375" /> | |
44 | <stop | |
45 | id="stop15838" | |
46 | style="stop-color:#ffe900;stop-opacity:0.21960784" | |
47 | offset="1" /> | |
48 | </linearGradient> | |
49 | <radialGradient | |
50 | id="radialGradient20755" | |
51 | gradientUnits="userSpaceOnUse" | |
52 | cy="545.93" | |
53 | cx="102.14" | |
54 | r="135" | |
55 | inkscape:collect="always"> | |
56 | <stop | |
57 | id="stop20751" | |
58 | style="stop-color:#999999" | |
59 | offset="0" /> | |
60 | <stop | |
61 | id="stop20753" | |
62 | style="stop-color:#999999;stop-opacity:0" | |
63 | offset="1" /> | |
64 | </radialGradient> | |
65 | <radialGradient | |
66 | id="radialGradient2194" | |
67 | gradientUnits="userSpaceOnUse" | |
68 | cy="545.93" | |
69 | cx="102.14" | |
70 | r="135" | |
71 | inkscape:collect="always"> | |
72 | <stop | |
73 | id="stop18793" | |
74 | style="stop-color:#ffffff" | |
75 | offset="0" /> | |
76 | <stop | |
77 | id="stop18795" | |
78 | style="stop-color:#ffffff;stop-opacity:0" | |
79 | offset="1" /> | |
80 | </radialGradient> | |
81 | </defs> | |
82 | <sodipodi:namedview | |
83 | id="base" | |
84 | bordercolor="#666666" | |
85 | inkscape:pageshadow="2" | |
86 | inkscape:window-y="19" | |
87 | pagecolor="#ffffff" | |
88 | inkscape:window-height="1012" | |
89 | inkscape:zoom="0.49497475" | |
90 | inkscape:window-x="64" | |
91 | borderopacity="1.0" | |
92 | inkscape:current-layer="layer1" | |
93 | inkscape:cx="110.97588" | |
94 | inkscape:cy="568.29324" | |
95 | inkscape:window-width="1785" | |
96 | inkscape:pageopacity="0.0" | |
97 | inkscape:document-units="px" | |
98 | showgrid="false" | |
99 | inkscape:window-maximized="0" /> | |
100 | <g | |
101 | id="layer1" | |
102 | inkscape:label="Warstwa 1" | |
103 | inkscape:groupmode="layer" | |
104 | transform="translate(-154.32 -309.54)"> | |
105 | <path | |
106 | id="path18799" | |
107 | sodipodi:rx="135" | |
108 | sodipodi:ry="135" | |
109 | style="fill:url(#radialGradient20755)" | |
110 | sodipodi:type="arc" | |
111 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
112 | inkscape:transform-center-x="-18.535056" | |
113 | inkscape:transform-center-y="30.816466" | |
114 | transform="matrix(1.4557 -.47633 .64580 1.0737 -116.33 210.1)" | |
115 | sodipodi:cy="545.93359" | |
116 | sodipodi:cx="102.14286" /> | |
117 | <path | |
118 | id="path14863" | |
119 | sodipodi:rx="225.71428" | |
120 | sodipodi:ry="225.71428" | |
121 | style="fill:url(#linearGradient15840)" | |
122 | sodipodi:type="arc" | |
123 | d="M 605.71428,535.2193 A 225.71428,225.71428 0 0 1 380,760.93358 225.71428,225.71428 0 0 1 154.28572,535.2193 225.71428,225.71428 0 0 1 380,309.50502 225.71428,225.71428 0 0 1 605.71428,535.2193 Z" | |
124 | transform="matrix(-.67295 -.73969 .73969 -.67295 239.83 1176.5)" | |
125 | sodipodi:cy="535.2193" | |
126 | sodipodi:cx="380" /> | |
127 | <path | |
128 | id="path17820" | |
129 | sodipodi:rx="135" | |
130 | sodipodi:ry="135" | |
131 | style="opacity:.87615;fill:url(#radialGradient2194)" | |
132 | sodipodi:type="arc" | |
133 | d="m 237.14286,545.93359 a 135,135 0 0 1 -135,135 135,135 0 0 1 -135,-135 135,135 0 0 1 135,-135 135,135 0 0 1 135,135 z" | |
134 | transform="translate(222.86 -74.286)" | |
135 | sodipodi:cy="545.93359" | |
136 | sodipodi:cx="102.14286" /> | |
137 | </g> | |
138 | <metadata | |
139 | id="metadata20"> | |
140 | <rdf:RDF> | |
141 | <cc:Work> | |
142 | <dc:format>image/svg+xml</dc:format> | |
143 | <dc:type | |
144 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |
145 | <cc:license | |
146 | rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> | |
147 | <dc:publisher> | |
148 | <cc:Agent | |
149 | rdf:about="http://openclipart.org/"> | |
150 | <dc:title>Openclipart</dc:title> | |
151 | </cc:Agent> | |
152 | </dc:publisher> | |
153 | <dc:title></dc:title> | |
154 | <dc:date>2007-04-03T01:27:12</dc:date> | |
155 | <dc:description>a simple red ball with shadow and highlight</dc:description> | |
156 | <dc:source>https://openclipart.org/detail/3738/ball-by-chris_sharkot</dc:source> | |
157 | <dc:creator> | |
158 | <cc:Agent> | |
159 | <dc:title>chris_sharkot</dc:title> | |
160 | </cc:Agent> | |
161 | </dc:creator> | |
162 | <dc:subject> | |
163 | <rdf:Bag> | |
164 | <rdf:li>ball</rdf:li> | |
165 | <rdf:li>orb</rdf:li> | |
166 | <rdf:li>red</rdf:li> | |
167 | </rdf:Bag> | |
168 | </dc:subject> | |
169 | </cc:Work> | |
170 | <cc:License | |
171 | rdf:about="http://creativecommons.org/licenses/publicdomain/"> | |
172 | <cc:permits | |
173 | rdf:resource="http://creativecommons.org/ns#Reproduction" /> | |
174 | <cc:permits | |
175 | rdf:resource="http://creativecommons.org/ns#Distribution" /> | |
176 | <cc:permits | |
177 | rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> | |
178 | </cc:License> | |
179 | </rdf:RDF> | |
180 | </metadata> | |
181 | </svg> |
573 | 573 | $SHOW_SECTION_NUMBERS = 0; |
574 | 574 | |
575 | 575 | |
576 | # -add_ref_name | |
577 | # -cut_ref_num | |
578 | # Usually cross reference text contains only the caption number as a | |
579 | # hyperlink to the corresponding LaTeX label. However, it could be | |
580 | # handy to see the name of the object referenced, if the reference text | |
581 | # would contain both the caption number and the caption name. | |
582 | # If $ADD_REF_NAME is 1, (option -add_ref_name), then the caption name | |
583 | # is shown additionally. | |
584 | # If $CUT_REF_NUM is 1, (option -cut_ref_num), then the caption number | |
585 | # is cut out, leaving the optional name only. | |
586 | # If $CUT_REF_NUM = 0 and $ADD_REF_NAME = 1, both caption number and | |
587 | # name are shown. | |
588 | # If $CUT_REF_NUM = 1 and $ADD_REF_NAME = 0, the cross reference text | |
589 | # is suppressed and a cross reference button shown instead. | |
590 | # | |
591 | $ADD_REF_NAME = 0; | |
592 | $CUT_REF_NUM = 0; | |
593 | ||
594 | ||
576 | 595 | # -short_index |
577 | 596 | # If this is set then makeidx.perl will construct codified names |
578 | 597 | # for the text of index references. |
760 | 779 | |
761 | 780 | |
762 | 781 | # The value of this variable determines how many words to use in each |
763 | # title that is added to the navigation panel (see below) | |
782 | # title that is added to the navigation panel, see below (-1 is no limit). | |
783 | # If $SHOW_SECTION_NUMBERS == 1, then one additional word counts | |
784 | # for the section number. | |
764 | 785 | # |
765 | 786 | $WORDS_IN_NAVIGATION_PANEL_TITLES = 4; |
787 | ||
788 | ||
789 | # The value of this variable determines how many words to use in each | |
790 | # Index entry (analogous to $WORDS_IN_NAVIGATION_PANEL_TITLES). | |
791 | # If not set, it equals to $WORDS_IN_NAVIGATION_PANEL_TITLES by default. | |
792 | # | |
793 | #$WORDS_IN_INDEX = 4; | |
766 | 794 | |
767 | 795 | |
768 | 796 | # This number will determine the size of the equations, special characters, |
841 | 869 | $PNMROTATE = '@PNMROTATE@'; |
842 | 870 | $PNMSCALE = '@PNMSCALE@'; |
843 | 871 | $PNMCROP = '@PNMCROP@'; |
844 | $PPMQUANT = '@PPMQUANT@'; | |
872 | $PNMQUANT = '@PNMQUANT@'; | |
845 | 873 | |
846 | 874 | $GIFTOPNM = '@GIFTOPNM@'; |
847 | 875 | $JPEGTOPNM = '@JPEGTOPNM@'; |
898 | 926 | $idx_title = "Index"; |
899 | 927 | $ref_title = "References"; |
900 | 928 | $bib_title = "Bibliography"; |
929 | $nom_title = "Nomenclature"; | |
901 | 930 | $abs_title = "Abstract"; |
902 | 931 | $app_title = "Appendix"; |
903 | 932 | $pre_title = "Preface"; |
21 | 21 | .\" USA. |
22 | 22 | .\" |
23 | 23 | .\" |
24 | .TH LaTeX2HTML 1 "January 1 2021" "Debian" "Debian GNU/Linux manual" | |
24 | .TH LaTeX2HTML 1 "July 1 2021" "Debian" "Debian GNU/Linux manual" | |
25 | 25 | .SH NAME |
26 | 26 | latex2html \- translate LaTeX files to HTML (HyperText Markup Language) |
27 | 27 | .SH SYNOPSIS |
235 | 235 | to encourage the use of particular sections as stand-alone documents. |
236 | 236 | In order to be shown, section titles must be unique and must not |
237 | 237 | contain inlined graphics. |
238 | .TP | |
239 | .B -add_ref_name | |
240 | Same as setting: | |
241 | .I $ADD_REF_NAME = 1; | |
242 | Usually cross reference text contains only the caption number as a | |
243 | hyperlink to the corresponding | |
244 | .B LaTeX | |
245 | label. However, it could be | |
246 | handy to see the name of the object referenced, if the reference text | |
247 | would contain both the caption number and the caption name. | |
248 | With -add_ref_name the caption name is shown additionally when available. | |
249 | .TP | |
250 | .B -cut_ref_num | |
251 | Same as setting: | |
252 | .I $CUT_REF_NUM = 1; | |
253 | Usually cross reference text contains only the caption number as a | |
254 | hyperlink to the corresponding | |
255 | .B LaTeX | |
256 | label. With -add_ref_name the | |
257 | caption name can be shown additionally. If the caption number is not | |
258 | desired, it can be cut out with -cut_ref_num. If -cut_ref_num is | |
259 | given and -add_ref_name is not, then the cross reference text is | |
260 | suppressed completely and a cross reference button shown instead. | |
238 | 261 | .TP |
239 | 262 | .B -unsegment |
240 | 263 | Same as setting: |
1273 | 1296 | .PP |
1274 | 1297 | $GS_LIB = '/usr/local/share/ghostscript/4.02'; |
1275 | 1298 | $PNMCAT = '/usr/local/bin/pnmcat'; |
1276 | $PPMQUANT = '/usr/local/bin/ppmquant'; | |
1299 | $PNMQUANT = '/usr/local/bin/pnmquant'; | |
1277 | 1300 | $PNMFLIP = '/usr/local/bin/pnmflip'; |
1278 | 1301 | $PPMTOGIF = '/usr/local/bin/ppmtogif'; |
1279 | 1302 | $HOWTO_TRANSPARENT_GIF = 'netpbm'; |
310 | 310 | 'local_icons!', \$LOCAL_ICONS, |
311 | 311 | 'scalable_fonts!', \$SCALABLE_FONTS, |
312 | 312 | 'images_only!', \$IMAGES_ONLY, |
313 | 'cut_ref_num!', \$CUT_REF_NUM, | |
314 | 'add_ref_name!', \$ADD_REF_NAME, | |
313 | 315 | 'show_section_numbers!',\$SHOW_SECTION_NUMBERS, |
314 | 316 | 'show_init!', \$SHOW_INIT_FILE, |
315 | 317 | 'init_file=s', \$INIT_FILE, |
375 | 377 | if (defined $TITLE && !length($TITLE)) { |
376 | 378 | die "Error: Empty title (-title).\n"; |
377 | 379 | } |
380 | $LONG_LINKPOINT = $TITLE if (defined $TITLE && $LONG_TITLES && $LINKPOINT); | |
378 | 381 | if ($opt{rootdir}) { |
379 | 382 | $ROOTED = 1; |
380 | 383 | $FIXEDDIR = $opt{rootdir}; |
894 | 897 | local($EXTN) = $EXTN; |
895 | 898 | $EXTN =~ s/_\w+(\.html?)/$1/ if ($frame_main_name); |
896 | 899 | local($from,$to) = (eval($LINKPOINT),eval($LINKNAME)); |
900 | $from = &make_long_title($LONG_LINKPOINT) . $EXTN | |
901 | if ($LONG_TITLES && $LONG_LINKPOINT); | |
897 | 902 | if (length($from) && length($to) && ($from ne $to)) { |
898 | 903 | #frames may have altered $EXTN |
899 | 904 | $from =~ s/$frame_main_name(\.html?)/$1/ if ($frame_main_name); |
912 | 917 | $OUT_NODE = 0 unless $FIXEDDIR; |
913 | 918 | $STYLESHEET = '' if ($STYLESHEET =~ /^\Q$FILE./); |
914 | 919 | } |
915 | print "\nUnknown commands: ". join(" ",keys %unknown_commands) | |
920 | print "\nUnknown commands: " . join(" ", sort keys %unknown_commands) | |
916 | 921 | if %unknown_commands; |
917 | 922 | ###MEH -- math support |
918 | 923 | print "\nMath commands outside math: " . |
919 | join(" ",keys %commands_outside_math) . | |
924 | join(" ", sort keys %commands_outside_math) . | |
920 | 925 | "\n Output may look weird or may be faulty!\n" |
921 | 926 | if %commands_outside_math; |
922 | 927 | print "\nDone.\n"; |
1055 | 1060 | |
1056 | 1061 | # undef any renewed-commands... |
1057 | 1062 | # so the new defs are read from %new_command |
1058 | local($cmd,$key,$code); | |
1063 | local($cmd,$key,$code,$dum1,$dum2); | |
1059 | 1064 | foreach $key (sort keys %renew_command) { |
1060 | $cmd = "do_cmd_$key"; | |
1065 | ($dum1, $dum2) = ($key, ''); | |
1066 | $dum1 = $key unless ($dum1 = &normalize($dum1, $dum2)); | |
1067 | $cmd = "do_cmd_$dum1"; | |
1061 | 1068 | $code = "undef \&$cmd"; eval($code) if (defined &$cmd); |
1062 | if ($@) { print "\nundef \&do_cmd_$cmd failed"} | |
1069 | if ($@) { print "\nundef \&do_cmd_$dum1 failed" } | |
1063 | 1070 | } |
1064 | 1071 | } |
1065 | 1072 | |
1217 | 1224 | s/^\\newcommand\{\\etalchar\}[^\n\r]*[\n\r]+//s; |
1218 | 1225 | } |
1219 | 1226 | &pre_process; |
1227 | # remove hyperref specific redefinitions | |
1228 | s/^.*?\\(ifx|else|fi|gdef|let|global ?\\let)\b.*?\n//mg | |
1229 | if ($ext eq 'aux'); | |
1220 | 1230 | &substitute_meta_cmds if (%new_command || %new_environment); |
1221 | 1231 | if ($ext eq "aux") { |
1222 | 1232 | my $latex_pathname = L2hos->path2latex($file); |
1229 | 1239 | if ($skip_to) { next unless ($eline =~ s/$O$skip_to$C//) } |
1230 | 1240 | $skip_to = ''; |
1231 | 1241 | # skip lines added for pdfTeX/hyperref compatibility |
1232 | next if ($eline =~ /^\\(ifx|else|fi|global ?\\let|gdef|AtEndDocument|let )/); | |
1242 | next if ($eline =~ /^\\(ifx|else|fi|global ?\\let|gdef|AtEndDocument|let)/); | |
1233 | 1243 | # remove \index and \label commands, else invalid links may result |
1234 | 1244 | $eline =~ s/\\(index|label)\s*($O\d+$C).*\2//g; |
1235 | 1245 | if ($eline =~ /\\(old)?contentsline/) { |
1241 | 1251 | $eline = &translate_environments($_); |
1242 | 1252 | $AUX_FILE = $save_AUX; |
1243 | 1253 | undef $_ }; |
1254 | } elsif ($eline =~ /\\(old)?newlabel/) { | |
1255 | # also get rid of footnotes in labels | |
1256 | $eline =~ s/\\footnote(mark|text)?//g; | |
1244 | 1257 | } elsif ($eline =~ s/^\\\@input//) { |
1245 | 1258 | &do_cmd__at_input($eline); |
1246 | 1259 | $eline = ''; |
1428 | 1441 | } |
1429 | 1442 | |
1430 | 1443 | # Move all LaTeX comments into a local list |
1431 | s/([ \t]*(^|[^\\]))(%.*(\n[ \t]*|$))/print "%"; | |
1432 | $comments{++$global{'verbatim_counter'}} = "$3"; | |
1433 | &write_mydb("verbatim", $global{'verbatim_counter'}, $3); | |
1444 | s/(^|\G|[^\\])(%.*(\n[ \t]*|$))/print "%"; | |
1445 | $comments{++$global{'verbatim_counter'}} = "$2"; | |
1446 | &write_mydb("verbatim", $global{'verbatim_counter'}, $2); | |
1434 | 1447 | "$1$comment_mark".$global{'verbatim_counter'}."\n"/mge; |
1435 | 1448 | # Remove the htmlonly-environment |
1436 | 1449 | s/\\begin\s*{htmlonly}\s*\n?//gom; |
1593 | 1606 | # try to find closing delimiter and substitute the complete |
1594 | 1607 | # statement with $verb_mark or $verbstar_mark or $verblst_mark |
1595 | 1608 | # s/(<verb[^\d>]*$id>[\Q$del\E])([^$esc_del\n]*)([\Q$del\E]|$comment_mark(\d+)\n?)/ |
1596 | s/(<verb[^\d>]*$id>\Q$del\E)([^$esc_del\n]*?)(\Q$del\E|$comment_mark(\d+)\n?)/ | |
1609 | s/(<verb[^\d>]*$id>\Q$del\E)([^$esc_del]*?)(\Q$del\E|$comment_mark(\d+)\n?)/ | |
1597 | 1610 | $contents=$2; |
1598 | 1611 | if ($4) { $verb_rerun = 1; |
1599 | 1612 | join('', "\\verb$del", $contents, $comments{$4}) |
1605 | 1618 | join('',$vb_mark,$id,$verb_mark) |
1606 | 1619 | } |
1607 | 1620 | /e; |
1621 | # evtl revert inserted space after '\\' if '\' was our delimiter | |
1622 | s/($vb_mark$id$verb_mark\\) /$1/e if ($del eq "\\"); | |
1608 | 1623 | } |
1609 | 1624 | $global{'verb_counter'} = $id; |
1610 | 1625 | # revert changes to fake verb statements |
2287 | 2302 | # local(%section_info, %toc_section_info, $CURRENT_FILE, %cite_info, %ref_files); |
2288 | 2303 | local($CURRENT_FILE); |
2289 | 2304 | # These filenames may be set when translating the corresponding commands. |
2290 | local($tocfile, $loffile, $lotfile, $footfile, $citefile, $idxfile, | |
2305 | local($tocfile, $loffile, $lotfile, $nomfile, $footfile, $citefile, $idxfile, | |
2291 | 2306 | $figure_captions, $table_captions, $footnotes, $citations, %font_size, %index, |
2292 | 2307 | %done, $t_title, $t_author, $t_date, $t_address, $t_affil, $changed); |
2293 | 2308 | local(@authors,@affils,@addresses,@emails,@authorURLs); |
2794 | 2809 | local($closures,$reopens); |
2795 | 2810 | local(@save_open_tags) = @$open_tags_R unless ($defenv); |
2796 | 2811 | local($open_tags_R) = [ @save_open_tags ] unless ($defenv); |
2797 | local(@saved_tags) if ($env =~ /tabular|longtable/); | |
2812 | local(@saved_tags) if ($env =~ /tabular|longtable|makeimage/); | |
2798 | 2813 | if ($env =~ /tabular|longtable|makeimage|in(line|display)/) { |
2799 | 2814 | @save_open_tags = @$open_tags_R; |
2800 | 2815 | $open_tags_R = [ @save_open_tags ]; |
3655 | 3670 | # ... unless equation numbers are included ... |
3656 | 3671 | if ($3) { # AMS {subequations} |
3657 | 3672 | $global{'eqn_number'}=$prev_eqn_number if $prev_eqn_number; |
3658 | --$global{'eqn_number'}; | |
3673 | #--$global{'eqn_number'}; | |
3659 | 3674 | } |
3660 | 3675 | $raw_contents = join('' , |
3661 | 3676 | (($eqno{$name}||$global{'eqn_number'})? |
4099 | 4114 | local($icon,$_); |
4100 | 4115 | print "\nCopying navigation icons ..."; |
4101 | 4116 | foreach (keys %used_icons) { |
4102 | # each entry ends in gif or png | |
4117 | # each entry ends in svg or gif or png | |
4103 | 4118 | if ($ALTERNATIVE_ICONS) { |
4104 | 4119 | L2hos->Copy("$ALTERNATIVE_ICONS$dd$_", ".$dd$_") |
4105 | 4120 | if (-e "$ALTERNATIVE_ICONS$dd$_" && !-e $_); |
4106 | } elsif (/(gif|png)$/) { | |
4121 | } elsif (/(svg|gif|png)$/) { | |
4107 | 4122 | L2hos->Copy("$LATEX2HTMLDIR${dd}icons$dd$_", ".$dd$_") |
4108 | 4123 | if (-e "$LATEX2HTMLDIR${dd}icons$dd$_" && !-e $_); |
4109 | 4124 | } |
4235 | 4250 | } |
4236 | 4251 | close SVG; |
4237 | 4252 | |
4253 | undef $thumbnail; # don't use thumbnail with svg | |
4254 | ||
4238 | 4255 | print "\nextracted $name as $page_num\n" if ($VERBOSITY > 1); |
4239 | 4256 | &embed_image("${PREFIX}$img", $name, $external, $alt, $thumbnail, $map, |
4240 | 4257 | $align, $usemap, $exscale, $exstr); |
4258 | 4275 | $color_depth = $color_quant = ''; |
4259 | 4276 | if (($USE_PDFTEX || $USE_LUATEX) && $USE_DVIPNG && $IMAGE_TYPE =~ /gif/) { |
4260 | 4277 | $color_depth = "-depth 8 "; |
4261 | $color_quant = "|$PPMQUANT -floyd 256"; | |
4278 | $color_quant = "|$PNMQUANT -norandom -floyd 256"; | |
4262 | 4279 | } |
4263 | 4280 | |
4264 | 4281 | print STDOUT "\nextracting $name as $page_num\n" if ($VERBOSITY > 1); |
4694 | 4711 | } |
4695 | 4712 | |
4696 | 4713 | sub translate_aux_commands { |
4697 | s/^(.*)$/&translate_commands($1)/s; | |
4714 | s/^(.*)$/&translate_commands($1)/es; | |
4698 | 4715 | } |
4699 | 4716 | |
4700 | 4717 | sub translate_commands { |
4859 | 4876 | local($tags,$tag_cmd,$tag_open); |
4860 | 4877 | local($closures,$reopens,@tags); |
4861 | 4878 | local($tag_close,$tag_open); |
4879 | local($align_cmd,$align_open); | |
4862 | 4880 | local($size_cmd,$size_open); |
4863 | 4881 | local($font_cmd,$font_open); |
4864 | 4882 | local($fontwt_cmd,$fontwt_open); |
4865 | 4883 | local($color_cmd,$color_open); |
4866 | if ($decl) { | |
4867 | if ($this_tag =~ /$sizechange_rx/) { | |
4884 | if ($decl) { | |
4885 | if ($this_tag =~ /$alignchange_rx/) { | |
4886 | $align_cmd = $this_tag; | |
4887 | } elsif ($this_tag =~ /$sizechange_rx/) { | |
4868 | 4888 | $size_cmd = $this_tag; |
4869 | 4889 | } else { |
4870 | 4890 | if ($this_tag =~ /$fontchange_rx/) { |
4881 | 4901 | ($tag_close,$tag_open) = ($&,$`) unless ($` =~ /<>/); |
4882 | 4902 | $closures .= $tag_close; |
4883 | 4903 | |
4884 | if ((!$size_cmd)&&($tag_cmd =~ /$sizechange_rx/)) { | |
4904 | if ((!$align_cmd)&&($tag_cmd =~ /$alignchange_rx/)) { | |
4905 | $align_cmd = $tag_cmd; | |
4906 | $align_open = $tag_open; | |
4907 | } | |
4908 | elsif ((!$size_cmd)&&($tag_cmd =~ /$sizechange_rx/)) { | |
4885 | 4909 | $size_cmd = $tag_cmd; |
4886 | 4910 | $size_open = $tag_open; |
4887 | 4911 | } |
4898 | 4922 | $color_open = $tag_open; |
4899 | 4923 | } |
4900 | 4924 | elsif ($tag_cmd =~ |
4901 | /$sizechange_rx|$fontchange_rx|$fontweight_rx|$colorchange_rx/) { | |
4925 | /$alignchange_rx|$sizechange_rx|$fontchange_rx|$fontweight_rx|$colorchange_rx/) { | |
4902 | 4926 | } else { |
4903 | 4927 | unshift (@tags, $tag_cmd); |
4904 | 4928 | print STDOUT "\n<<$tag_cmd>" if $VERBOSITY > 2; |
4918 | 4942 | } |
4919 | 4943 | push (@$open_tags_R, @tags); |
4920 | 4944 | $tags .= $pre if ($pre && $post =~ /$block_close_rx/); |
4945 | if ($align_cmd && !($align_cmd eq $this_tag)) { | |
4946 | # This tag must be checked first when found | |
4947 | push (@$open_tags_R,$align_cmd); | |
4948 | print STDOUT "\n<$align_cmd>" if $VERBOSITY > 2; | |
4949 | $tags .= $align_open; | |
4950 | } | |
4921 | 4951 | if ($font_cmd && !($font_cmd eq $this_tag)) { |
4922 | 4952 | push (@$open_tags_R,$font_cmd); |
4923 | 4953 | print STDOUT "\n<$font_cmd>" if $VERBOSITY > 2; |
5028 | 5058 | , ($closing_tag ? '' : &balance_tags()) ); |
5029 | 5059 | } |
5030 | 5060 | |
5031 | sub do_cmd_centering{&declared_env('center',$_[0],$tex2html_deferred)} | |
5032 | sub do_cmd_raggedright{&declared_env('flushleft',$_[0],$tex2html_deferred)} | |
5033 | sub do_cmd_raggedleft{&declared_env('flushright',$_[0],$tex2html_deferred)} | |
5061 | # SGE: reimplemented via $declarations{$cmd} in &process_command | |
5062 | #sub do_cmd_centering{&declared_env('center',$_[0],$tex2html_deferred)} | |
5063 | #sub do_cmd_raggedright{&declared_env('flushleft',$_[0],$tex2html_deferred)} | |
5064 | #sub do_cmd_raggedleft{&declared_env('flushright',$_[0],$tex2html_deferred)} | |
5034 | 5065 | |
5035 | 5066 | sub do_env_verse { &declared_env('verse',@_) } |
5036 | 5067 | sub do_env_quote { &declared_env('quote', @_) } |
5046 | 5077 | # MRO: modified to use $_[1] |
5047 | 5078 | # local ($cmd_rx, *ref_contents) = @_; |
5048 | 5079 | local ($cmd_rx) = @_; |
5049 | local($ref_before, $cmd , $pc_after); | |
5050 | local($cmd_sub, $cmd_msub, $cmd_trans, $mathentity); | |
5051 | local (@open_font_tags,@open_size_tags); | |
5080 | local ($ref_before, $cmd, $bcmd, $pc_after); | |
5081 | local ($cmd_sub, $cmd_msub, $cmd_wsub, $cmd_trans, $mathentity); | |
5082 | local (@open_font_tags, @open_size_tags); | |
5052 | 5083 | $_[1] = &convert_iso_latin_chars($_[1]) |
5053 | 5084 | unless (($cmd =~ /(Make)?([Uu]pp|[Ll]ow)ercase/)|| |
5054 | 5085 | ((!$cmd)&&($_[1] =~ /^\\(Make)?([Uu]pp|[Ll]ow)ercase/s))); |
5063 | 5094 | #print "\nAFTER:$1.$2:".$4."\n" if ($cmd_rx eq $single_cmd_rx); |
5064 | 5095 | print STDOUT "$cmd" if ($VERBOSITY > 2); |
5065 | 5096 | print STDOUT "\nIN: $_[1]\n" if ($VERBOSITY > 6); |
5066 | # | |
5097 | # keep cmd name before being normalized | |
5098 | $bcmd = $cmd; | |
5067 | 5099 | if ( $cmd = &normalize($cmd,$pc_after) ) { |
5068 | ($cmd_sub, $cmd_msub, $cmd_trans, $mathentity) = | |
5069 | ("do_cmd_$cmd", "do_math_cmd_$cmd" | |
5100 | ($cmd_sub, $cmd_msub, $cmd_wsub, $cmd_trans, $mathentity) = | |
5101 | ("do_cmd_$cmd", "do_math_cmd_$cmd", "wrap_cmd_$cmd" | |
5070 | 5102 | , $declarations{$cmd}, $mathentities{$cmd}); |
5071 | 5103 | if ($new_command{$cmd}||$renew_command{$cmd}) { |
5072 | 5104 | # e.g. some \the$counter |
5096 | 5128 | } else { |
5097 | 5129 | $pc_after = &$cmd_sub($pc_after, $open_tags_R); |
5098 | 5130 | }; |
5131 | # evtl update letter sensitive rx | |
5132 | $cmd_rx = $single_cmd_rx | |
5133 | if ($cmd eq 'makeatletter' || $cmd eq 'makeatother'); | |
5099 | 5134 | } elsif ((defined &$cmd_msub)&&!$NO_SIMPLE_MATH) { |
5100 | 5135 | #print "\nMCMD:$cmd_msub : "; |
5101 | 5136 | # $ref_before may also be modified ... |
5108 | 5143 | #print "\nCMD-DECL: $inside_tabular : $cmd_trans". join(',',@$open_tags_R); |
5109 | 5144 | if ($inside_tabular) { |
5110 | 5145 | push (@ref_processed , "\\$cmd ") |
5146 | } elsif ($cmd =~ /$alignchange_rx/o) { | |
5147 | # Ensure the proper nesting of alignment block tags | |
5148 | local($pre, $post) = &minimize_open_tags($cmd); | |
5149 | $pc_after = join('', $pre, $pc_after); | |
5150 | if (@$open_tags_R) { | |
5151 | local($decl) = shift(@$open_tags_R); | |
5152 | $declarations{$decl} =~ m|</.*$|; | |
5153 | ($pre, $post) = ($`, $&); | |
5154 | if ($post =~ /$block_close_rx/) { | |
5155 | # Keep the order of two nested block tags | |
5156 | unshift(@$open_tags_R, ($decl,$cmd)); | |
5157 | } else { | |
5158 | # No nested block tags, place alignment in front | |
5159 | unshift(@$open_tags_R, ($cmd,$decl)); | |
5160 | } | |
5161 | } else { | |
5162 | # No tags, place alignment block tag in front | |
5163 | unshift(@$open_tags_R, $cmd); | |
5164 | } | |
5111 | 5165 | } else { |
5166 | # Regular (not block) tags are pushed from tail | |
5112 | 5167 | $cmd_trans =~ m|</.*$|; |
5113 | 5168 | $pc_after = $` . $pc_after unless ($` =~ /^<>/); |
5114 | 5169 | push(@$open_tags_R, $cmd) |
5125 | 5180 | $pc_after = "<MATH>&$mathentity#$cmd;</MATH>" . $pc_after; |
5126 | 5181 | ++$commands_outside_math{$cmd}; |
5127 | 5182 | } |
5128 | } elsif ($ignore{$cmd}) { # Ignored command | |
5129 | print "\nignoring \\$cmd" if $VERBOSITY > 5; | |
5183 | } elsif ($ignore{$bcmd}) { # Ignored command | |
5184 | print "\nignoring \\$bcmd" if $VERBOSITY > 5; | |
5130 | 5185 | $pc_after = join('', " ", $pc_after) if ($cmd eq " "); # catches `\ ' |
5131 | 5186 | $pc_after = join(''," ", $pc_after) |
5132 | 5187 | if (($cmd eq ',')&&($pc_after =~ /^\-/s)&&($ref_before =~/\-$/s)); |
5140 | 5195 | $failed = 1; |
5141 | 5196 | # $ref_before .= "$cmd"; |
5142 | 5197 | push(@ref_processed,$cmd); # $ref_before .= "$cmd"; |
5143 | } else { &declare_unknown_cmd($cmd) } | |
5198 | } else { &declare_unknown_cmd($bcmd) } | |
5144 | 5199 | # $ref_before .= "$cmd" if ($failed); |
5145 | 5200 | } |
5201 | } elsif (defined &$cmd_wsub) { | |
5202 | # call generated wrapper | |
5203 | ($dum1, $pc_after) = &$cmd_wsub($dum1, $pc_after); | |
5146 | 5204 | } elsif ($cmd eq "\n") { push(@ref_processed," "); # $ref_before .= " "; |
5147 | 5205 | } else { |
5148 | 5206 | # Do not add if reading an auxiliary file |
5149 | 5207 | if (defined $failed) { |
5150 | 5208 | $failed = 1; |
5151 | } else { &declare_unknown_cmd($cmd) } | |
5209 | } else { &declare_unknown_cmd($bcmd) } | |
5152 | 5210 | } |
5153 | 5211 | } else { |
5154 | 5212 | # &normalize should have already handled it adequately |
5163 | 5221 | } |
5164 | 5222 | |
5165 | 5223 | sub declare_unknown_cmd { |
5166 | local($this_cmd) = @_; | |
5167 | local($tmp) = "wrap_cmd_$cmd"; | |
5224 | local($cmd) = @_; | |
5225 | local($dum1, $dum2) = ($cmd, ''); | |
5226 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
5227 | local($tmp) = "wrap_cmd_$dum1"; | |
5168 | 5228 | do { ++$unknown_commands{$cmd}; |
5169 | 5229 | print STDOUT "\n*** Unknown command[1]: \\$cmd *** \n" |
5170 | 5230 | if ($VERBOSITY > 2); |
5988 | 6048 | local($thisone); |
5989 | 6049 | # $thisone = 1 if ($cmd =~ /div|vec/); # for debugging |
5990 | 6050 | |
5991 | $tmp = "do_cmd_$cmd"; | |
5992 | local($wtmp) = "wrap_cmd_$cmd"; | |
6051 | local($dum1, $dum2) = ($cmd, ''); | |
6052 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
6053 | $tmp = "do_cmd_$dum1"; | |
6054 | local($wtmp) = "wrap_cmd_$dum1"; | |
5993 | 6055 | if ((defined &$tmp)||(defined &$wtmp)){ |
5994 | 6056 | # command already exists, so \providecommand does nothing |
5995 | 6057 | # but may still be needed in images.tex |
6017 | 6079 | local($padding) = " "; |
6018 | 6080 | $padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/)); |
6019 | 6081 | # Generate a new subroutine |
6020 | local($codeA) = "sub wrap_cmd_$cmd {" . "\n" | |
6082 | local($codeA) = "sub $wtmp {" . "\n" | |
6021 | 6083 | .'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";' |
6022 | 6084 | . $bodyA |
6023 | . (($thisone)? "\nprint \"\\nwrap $cmd:\".\$args.\"\\n\";" : '') | |
6085 | . (($thisone)? "\nprint \"\\nwrap \", '$cmd', \":\".\$args.\"\\n\";" : '') | |
6024 | 6086 | . "\n".'(&make_deferred_wrapper(1).$cmd.' |
6025 | 6087 | . "\"$padding\"".'.$args.&make_deferred_wrapper(0),$_)}' |
6026 | 6088 | . "\n"; |
6027 | 6089 | print "\nWRAP_CMD: $codeA " if ($thisone); # for debugging |
6028 | 6090 | eval $codeA; |
6029 | print STDERR "\n\n*** sub wrap_cmd_$cmd failed: $@\n" if ($@); | |
6091 | print STDERR "\n\n*** sub $wtmp failed: $@\n" if ($@); | |
6030 | 6092 | $raw_arg_cmds{$cmd} = 1; |
6031 | 6093 | |
6032 | 6094 | } elsif (($ALLOW_REDEFINE)&&($PREAMBLE < 2)) { |
6040 | 6102 | local($padding) = " "; |
6041 | 6103 | $padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/)); |
6042 | 6104 | # Generate a new subroutine |
6043 | local($codeA) = "sub wrap_cmd_$cmd {" . "\n" | |
6105 | local($codeA) = "sub $wtmp {" . "\n" | |
6044 | 6106 | .'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";' |
6045 | 6107 | . $bodyA |
6046 | . (($thisone)? "\nprint \"\\nwrap $cmd:\".\$args.\"\\n\";" : '') | |
6108 | . (($thisone)? "\nprint \"\\nwrap \", '$cmd', \":\".\$args.\"\\n\";" : '') | |
6047 | 6109 | . "\n".'(&make_deferred_wrapper(1).$cmd.' |
6048 | 6110 | . "\"$padding\"".'.$args.&make_deferred_wrapper(0),$_)}' |
6049 | 6111 | . "\n"; |
6050 | 6112 | print "\nWRAP_CMD: $codeA " if ($thisone); # for debugging |
6051 | 6113 | eval $codeA; |
6052 | print STDERR "\n\n*** sub wrap_cmd_$cmd failed: $@\n" if ($@); | |
6114 | print STDERR "\n\n*** sub $wtmp failed: $@\n" if ($@); | |
6053 | 6115 | |
6054 | 6116 | &write_mydb("renew_command", $cmd, $renew_command{$cmd}); |
6055 | 6117 | } elsif ($renewed) { |
7205 | 7267 | "\\def\\lthtmltypeout#1{{\\let\\protect\\string \\immediate\\write\\lthtmlwrite{#1}}}%\n" . |
7206 | 7268 | (($USE_DVIPNG || $IMAGE_TYPE eq 'svg') ? <<'</dvipng>' : |
7207 | 7269 | \usepackage[tightpage,active]{preview} |
7270 | \PreviewBorder=1bp | |
7208 | 7271 | \newbox\lthtmlPageBox |
7209 | 7272 | \newdimen\lthtmlCropMarkHeight |
7210 | 7273 | \newdimen\lthtmlCropMarkDepth |
7217 | 7280 | \lthtmltypeout{^^J:\lthtmllabel:lthtmlCropMarkDepth:=\the\lthtmlCropMarkDepth:1ex:=\the \dimexpr 1ex}% |
7218 | 7281 | \begin{preview}\copy\lthtmlPageBox\end{preview}}% |
7219 | 7282 | \long\def\lthtmlTightFBoxA#1{\def\lthtmllabel{#1}% |
7220 | \adjustnormalsize\setbox\lthtmlPageBox=\vbox\bgroup % | |
7283 | \adjustnormalsize\setbox\lthtmlPageBox=\vbox\bgroup\hbox\bgroup % | |
7221 | 7284 | \let\ifinner=\iffalse \let\)\liih@math % |
7222 | 7285 | \bgroup\catcode`\_=8 }% |
7223 | \long\def\lthtmlTightFBoxZ{\egroup | |
7286 | \long\def\lthtmlTightFBoxZ{\egroup\egroup | |
7224 | 7287 | \@next\next\@currlist{}{\def\next{\voidb@x}}% |
7225 | 7288 | \expandafter\box\next\egroup % |
7226 | 7289 | \lthtmlCropMarkHeight=\ht\lthtmlPageBox \advance \lthtmlCropMarkHeight 6pt |
7322 | 7385 | . "\\end{document}"; |
7323 | 7386 | } |
7324 | 7387 | |
7388 | # This routine sets some lengths in images.tex, but it no longer sets | |
7389 | # the textwidth. We let latex do that natively, for example if the | |
7390 | # input uses the geometry package. | |
7325 | 7391 | sub adjust_textwidth { |
7326 | 7392 | local($_) = @_; |
7327 | 7393 | local($width,$length) = ('',''); |
7360 | 7426 | "\\addtolength{\\textheight}{\\topmargin}\\setlength{\\topmargin}{0pt}\n" . |
7361 | 7427 | "\\addtolength{\\textheight}{\\headheight}\\setlength{\\headheight}{0pt}\n" . |
7362 | 7428 | "\\addtolength{\\textheight}{\\headsep}\\setlength{\\headsep}{0pt}\n" . |
7363 | "\\setlength{\\textwidth}{${width}pt}\n" | |
7364 | . (($length > 500) ? "\\setlength{\\textheight}{${length}pt}\n" : '') | |
7429 | # "\\setlength{\\textwidth}{${width}pt}\n" . | |
7430 | (($length > 500) ? "\\setlength{\\textheight}{${length}pt}\n" : '') | |
7365 | 7431 | } |
7366 | 7432 | |
7367 | 7433 | # Given the depth of the current sectioning declaration and the current |
7500 | 7566 | .TINY { font-size : x-small } |
7501 | 7567 | .SCRIPTSIZE { font-size : smaller } |
7502 | 7568 | .FOOTNOTESIZE { font-size : small } |
7503 | .SMALL { } | |
7504 | .LARGE { } | |
7569 | .SMALL { font-size : small } | |
7570 | .LARGE { font-size : large } | |
7505 | 7571 | .XLARGE { font-size : large } |
7506 | 7572 | .XXLARGE { font-size : x-large } |
7507 | 7573 | .HUGE { font-size : larger } |
7914 | 7980 | $title = &custom_link_hook($title,$toc_section_info{join(' ',@link)}); |
7915 | 7981 | } else { |
7916 | 7982 | $title = &purify($title); |
7917 | $title = &get_first_words($title, $WORDS_IN_NAVIGATION_PANEL_TITLES); | |
7983 | $title = &get_first_words($title, $WORDS_IN_NAVIGATION_PANEL_TITLES+($SHOW_SECTION_NUMBERS?1:0)); | |
7918 | 7984 | } |
7919 | 7985 | return ("\n".&make_named_href('', $file, $icon), |
7920 | 7986 | &make_named_href('', $file, "$title")) |
9057 | 9123 | '"' . "$ref_label#$label" . "\">" . $ref_mark . "<\/A>" |
9058 | 9124 | }/geo; |
9059 | 9125 | |
9126 | # This is for namerefs, section name without section number | |
9127 | s/$cross_ref_mark#([^#]+)#([^>]+)>$name_ref_mark<\/A>(\s*<A( ID=\"\d+)\">$invis)?/ | |
9128 | do {($label,$id) = ($1,$2); $name = $4; | |
9129 | $ref_label = $external_labels{$label} unless | |
9130 | ($ref_label = $ref_files{$label}); | |
9131 | print "\nXLINK<: $label : $id :$name " if ($VERBOSITY > 3); | |
9132 | $ref_label = '' if ($ref_label eq $CURRENT_FILE); | |
9133 | $ref_mark = &get_name_ref_mark($label,$id); | |
9134 | &extend_ref if ($name); $name = ''; | |
9135 | print "\nXLINK: $label : $ref_label : $ref_mark " if ($VERBOSITY > 3); | |
9136 | '"' . "$ref_label#$label" . "\">" . $ref_mark . "<\/A>" | |
9137 | }/geo; | |
9138 | ||
9060 | 9139 | # This is for pagerefs which cannot have symbolic labels ??? |
9061 | 9140 | # s/$cross_ref_mark#(\w+)#\w+>/ |
9062 | 9141 | s/$cross_ref_mark#([^#]+)#[^>]+>/ |
9107 | 9186 | |
9108 | 9187 | sub get_ref_mark { |
9109 | 9188 | local($label,$id) = @_; |
9110 | ( ( $SHOW_SECTION_NUMBERS && $symbolic_labels{"$label$id"}) || | |
9111 | $latex_labels{"userdefined$label$id"} || | |
9112 | $symbolic_labels{"$label$id"} || | |
9113 | $latex_labels{$label} || | |
9114 | $external_latex_labels{$label} || | |
9115 | $cross_ref_visible_mark ); | |
9189 | local($val,$tmp,$valno,$valnam,$tmpno,$tmpnam); | |
9190 | $val = ( ( $SHOW_SECTION_NUMBERS && $symbolic_labels{"$label$id"}) || | |
9191 | $latex_labels{"userdefined$label$id"} || | |
9192 | $symbolic_labels{"$label$id"} || | |
9193 | $latex_labels{$label} || | |
9194 | $external_latex_labels{$label} || | |
9195 | $cross_ref_visible_mark ); | |
9196 | # Cut out section name, or number, or both, depending on the option given | |
9197 | $tmp = $val; | |
9198 | if ((($tmp =~ s/$next_pair_pr_rx/$valno=$&;$tmpno=$2;''/eo) || | |
9199 | ($tmp =~ s/$next_pair_rx/$valno=$&;$tmpno=$2;''/eo)) && | |
9200 | ($tmp =~ s/^\s*//o) && | |
9201 | (($tmp =~ s/$next_pair_pr_rx/$valnam=$&;$tmpnam=$2;''/eo) || | |
9202 | ($tmp =~ s/$next_pair_rx/$valnam=$&;$tmpnam=$2;''/eo)) && | |
9203 | $tmp eq '') { | |
9204 | $valno = $tmpno = '' if ($CUT_REF_NUM); | |
9205 | $valnam = $tmpnam = '' unless ($ADD_REF_NAME); | |
9206 | $tmp = ' ' if ($tmpno ne '' && $tmpnam ne ''); | |
9207 | $val = join ($tmp, $valno, $valnam); | |
9208 | $val = $cross_ref_visible_mark if ($tmpno eq '' && $tmpnam eq ''); | |
9209 | } | |
9210 | $val; | |
9211 | } | |
9212 | ||
9213 | sub get_name_ref_mark { | |
9214 | # a version of &get_ref_mark without section number, for namerefs | |
9215 | local($label,$id) = @_; | |
9216 | local($val,$tmp,$valno,$valnam); | |
9217 | $val = ( ( $SHOW_SECTION_NUMBERS && $symbolic_labels{"$label$id"}) || | |
9218 | $latex_labels{"userdefined$label$id"} || | |
9219 | $symbolic_labels{"$label$id"} || | |
9220 | $latex_labels{$label} || | |
9221 | $external_latex_labels{$label} || | |
9222 | $cross_ref_visible_mark ); | |
9223 | $tmp = $val; | |
9224 | $val = $valnam if ( | |
9225 | (($tmp =~ s/$next_pair_pr_rx/$valno=$&;''/eo) || | |
9226 | ($tmp =~ s/$next_pair_rx/$valno=$&;''/eo)) && | |
9227 | ($tmp =~ s/^\s*//o) && | |
9228 | (($tmp =~ s/$next_pair_pr_rx/$valnam=$&;''/eo) || | |
9229 | ($tmp =~ s/$next_pair_rx/$valnam=$&;''/eo)) && | |
9230 | $tmp eq ''); | |
9231 | $val; | |
9116 | 9232 | } |
9117 | 9233 | |
9118 | 9234 | sub replace_bbl_marks { |
9451 | 9567 | , 'textohtmlindex', $level |
9452 | 9568 | , %unnumbered_section_commands |
9453 | 9569 | ); |
9570 | ||
9571 | # This command should mark new section only if requested explicitly | |
9572 | $unnumbered_section_commands{'printnomenclature'} = $level | |
9573 | if ($styles_loaded{'nomencl_intoc'}); | |
9454 | 9574 | |
9455 | 9575 | %section_commands = ( |
9456 | 9576 | %unnumbered_section_commands |
9736 | 9856 | sub make_name { |
9737 | 9857 | local($sec_name, $packed_curr_sec_id) = @_; |
9738 | 9858 | local($title,$making_name,$saved) = ('',1,''); |
9859 | local($filename) = ''; | |
9739 | 9860 | if ($LONG_TITLES) { |
9740 | 9861 | $saved = $_; |
9741 | 9862 | &process_command($sections_rx, $_) if /^$sections_rx/; |
9753 | 9874 | #ensure no more than 32 characters, including .html extension |
9754 | 9875 | $title =~ s/^(.{1,27}).*$/$1/; |
9755 | 9876 | ++$OUT_NODE; |
9756 | join("", ${PREFIX}, $title, $EXTN); | |
9877 | $filename = join("", ${PREFIX}, $title, $EXTN); | |
9878 | # Avoid duplication of filenames | |
9879 | unless ($nodenames{$filename}) { | |
9880 | $nodenames{$filename} = 1; | |
9881 | } else { | |
9882 | # Duplication detected: add version number to generated filename | |
9883 | $filename = | |
9884 | join("", ${PREFIX}, $title, ++$nodenames{$filename}, $EXTN); | |
9885 | } | |
9886 | $filename; | |
9757 | 9887 | } else { |
9758 | 9888 | # Remove 0's from the end of $packed_curr_sec_id |
9759 | 9889 | $packed_curr_sec_id =~ s/(_0)*$//; |
10274 | 10404 | if ($HTML_VERSION >= 3.2) { |
10275 | 10405 | $aalign = ($EQN_TAGS eq "L") ? "float:RIGHT;" : "float:LEFT;"; |
10276 | 10406 | } |
10277 | } elsif ($name =~ /$inline_env_rx/) { | |
10278 | if ($eheight{$name}){ | |
10279 | # used with -use_dvipng and with -image_type svg | |
10280 | $aalign = sprintf ( "height: \%.2fex; vertical-align: \%.2fex; ", | |
10281 | $eheight{$name} , | |
10282 | -$edepth{$name} ); | |
10283 | } elsif ($depth{$name}) { | |
10284 | # ALIGN=MIDDLE aligns middle of image to baseline of text | |
10285 | my ($height_pxs) = ($imagesize =~ /HEIGHT=\"(\d+)\"/i); | |
10286 | my $depth = $height_pxs*$depth{$name}/($height{$name}+$depth{$name}); | |
10287 | $aalign = "vertical-align:-${depth}px".$border; | |
10288 | } | |
10407 | } elsif ($eheight{$name}){ | |
10408 | # used with -use_dvipng and with -image_type svg | |
10409 | $aalign = sprintf ( "height: \%.2fex; vertical-align: \%.2fex; ", | |
10410 | $eheight{$name} , | |
10411 | -$edepth{$name} ); | |
10412 | } elsif ($depth{$name}) { | |
10413 | # ALIGN=MIDDLE aligns middle of image to baseline of text | |
10414 | my ($height_pxs) = ($imagesize =~ /HEIGHT=\"(\d+)\"/i); | |
10415 | my $depth = $height_pxs*$depth{$name}/($height{$name}+$depth{$name}); | |
10416 | $aalign = "vertical-align:-${depth}px".$border; | |
10289 | 10417 | } elsif ($name =~ /inpar/m) { |
10290 | 10418 | $aalign = "vertical-align:TOP;".$border; |
10291 | 10419 | } else { $aalign = "".$border } |
10766 | 10894 | $idx_title = &translate_commands($idx_title) if ($idx_title =~ /\\/); |
10767 | 10895 | $ref_title = &translate_commands($ref_title) if ($ref_title =~ /\\/); |
10768 | 10896 | $bib_title = &translate_commands($bib_title) if ($bib_title =~ /\\/); |
10897 | $nom_title = &translate_commands($nom_title) if ($nom_title =~ /\\/); | |
10769 | 10898 | $abs_title = &translate_commands($abs_title) if ($abs_title =~ /\\/); |
10770 | 10899 | $app_title = &translate_commands($app_title) if ($app_title =~ /\\/); |
10771 | 10900 | $pre_title = &translate_commands($pre_title) if ($pre_title =~ /\\/); |
10820 | 10949 | # alter the pattern here to debug particular commands |
10821 | 10950 | $thisone = 1 if ($cmd =~ /let/); |
10822 | 10951 | |
10952 | local($dum1, $dum2) = ($cmd, ''); | |
10953 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
10823 | 10954 | if (@args) { |
10824 | 10955 | print "\n$cmd: ".scalar(@args)." arguments" if ($thisone); |
10825 | 10956 | # Replace the argument markers with appropriate patterns |
10856 | 10987 | } |
10857 | 10988 | # Generate a new subroutine |
10858 | 10989 | # $code = "sub do_cmd_$cmd {\n".'local($_) = @_;'. join('',@args) .'$_}'; |
10859 | $code = "sub do_cmd_$cmd {\n" | |
10990 | $code = "sub do_cmd_$dum1 {\n" | |
10860 | 10991 | . 'local($_,$ot) = @_; ' |
10861 | 10992 | . 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R; ' |
10862 | 10993 | . 'local($args); ' |
10863 | 10994 | . "\n" . $body . (($body)? ";\n" : '') |
10864 | . (($thisone)? "print \"\\n$cmd:\".\$args.\"\\n\";\n" : '') | |
10995 | . (($thisone)? "print \"\\n\", '$cmd', \":\".\$args.\"\\n\";\n" : '') | |
10865 | 10996 | . (($arg)? $arg : '$_') . "}"; |
10866 | 10997 | print STDOUT "\n$code\n" if ($thisone); # for error-checking |
10867 | 10998 | eval ($code); # unless ($thisone); |
10868 | print STDERR "\n\n*** sub do_cmd_$cmd failed: $@\n" if ($@); | |
10999 | print STDERR "\n\n*** sub do_cmd_$dum1 failed: $@\n" if ($@); | |
10869 | 11000 | } else { |
10870 | $code = "sub do_cmd_$cmd {\n".'$_[0]}'; | |
11001 | $code = "sub do_cmd_$dum1 {\n".'$_[0]}'; | |
10871 | 11002 | print "\n$code\n" if ($thisone); # for error-checking |
10872 | 11003 | eval ($code); # unless ($thisone); |
10873 | print STDERR "\n\n*** sub do_cmd_$cmd failed: $@\n" if ($@); | |
11004 | print STDERR "\n\n*** sub do_cmd_$dum1 failed: $@\n" if ($@); | |
10874 | 11005 | } |
10875 | 11006 | } |
10876 | 11007 | } |
11203 | 11334 | |
11204 | 11335 | # need to check also &{wrap_cmd_... also, if \renewcommand has been used; |
11205 | 11336 | # thanks Bruce Miller |
11206 | local($thehead,$whead) = ("do_cmd_the$key","wrap_cmd_the$key"); | |
11337 | local($dum1, $dum2) = ($key, ''); | |
11338 | $dum1 = $key unless ($dum1 = &normalize($dum1, $dum2)); | |
11339 | local($thehead,$whead) = ("do_cmd_the$key","wrap_cmd_the$dum1"); | |
11207 | 11340 | # $thehead = ((defined &$thehead)? |
11208 | 11341 | # &translate_commands("\\the$key") : ''); |
11209 | 11342 | $thehead = ((defined &$thehead)||(defined &$whead) |
11831 | 11964 | # local($savedRS) = $/; $/=''; |
11832 | 11965 | # $_ =~ /\\item[\b\r]/s; |
11833 | 11966 | # if ($`) { |
11834 | # $preitems = $`; $_ = $&.$'; | |
11835 | # $preitems =~ s/<P( [^>]*)?>//g; | |
11836 | # $close_tags .= "\n".$preitems if $preitems; | |
11967 | # $pre_items = $`; $_ = $&.$'; | |
11968 | # $pre_items =~ s/<P( [^>]*)?>//g; | |
11969 | # $close_tags .= "\n".$pre_items if $pre_items; | |
11837 | 11970 | # } |
11838 | 11971 | # $/ = $savedRS; |
11839 | 11972 | # |
11878 | 12011 | $_ =~ /\Q$item_sep\E|<DT>|<LI>|$/s; |
11879 | 12012 | #RRM: ...try putting it before the list-open tag |
11880 | 12013 | if ($`) { |
11881 | $preitems = $`; $_ = $&.$'; | |
11882 | $preitems =~ s/<P( [^>]*)?>//gm; | |
11883 | $close_tags .= "\n".$preitems if $preitems; | |
12014 | $pre_items = $`; $_ = $&.$'; | |
12015 | $pre_items =~ s/<P( [^>]*)?>//gm; | |
12016 | $close_tags = '' unless $pre_items; | |
11884 | 12017 | } |
11885 | 12018 | # remove \n from end of the last item |
11886 | 12019 | $_ =~ s/\n$//s; |
11890 | 12023 | |
11891 | 12024 | $/ = $savedRS; |
11892 | 12025 | |
11893 | join('' , $close_tags , "\n<$tag$compact>\n" | |
11894 | , $_ , "</$ctag>" , $reopens); | |
12026 | join('' , "\n<$tag$compact>\n" | |
12027 | , $pre_items , $_ , $close_tags , "</$ctag>"); | |
11895 | 12028 | } |
11896 | 12029 | |
11897 | 12030 | |
12294 | 12427 | if ((defined &do_cmd_refname)||$new_command{'refname'}) { |
12295 | 12428 | $br_id=++$global{'max_id'}; |
12296 | 12429 | $title = &translate_environments("$O$br_id$C\\refname$O$br_id$C"); |
12297 | } else { $title = $ref_name } | |
12430 | } else { $title = $ref_title; } | |
12298 | 12431 | return $title; |
12299 | 12432 | } |
12300 | 12433 | |
12644 | 12777 | # $color = $next unless ($color); |
12645 | 12778 | # } |
12646 | 12779 | $declarations{$next} =~ m|</.*$|; |
12647 | $tags .= $& unless ($` =~ /^<>/); | |
12780 | my ($pre,$post) = ($`,$&); | |
12781 | if ($post =~ /$block_close_rx|$all_close_rx/ ) { | |
12782 | # Don't close active block tags | |
12783 | push (@$ot, $next); | |
12784 | last; | |
12785 | } | |
12786 | $tags .= $post unless ($pre =~ /^<>/); | |
12648 | 12787 | } |
12649 | 12788 | if ($size) { |
12650 | 12789 | $declarations{$size} =~ m|</.*$|; |
12654 | 12793 | } |
12655 | 12794 | $tags.$str; |
12656 | 12795 | } |
12796 | ||
12797 | ## Another tested implementation of &do_cmd_rm analogous to &do_cmd_normalsize | |
12798 | #sub do_cmd_rm { # clean | |
12799 | # my ($str, $ot) = @_; | |
12800 | # $ot = $open_tags_R unless(defined $ot); | |
12801 | # return("<\#rm\#>".$str) if ($inside_tabular); | |
12802 | # | |
12803 | # my ($size,$closures,$reopens,@tags); | |
12804 | # | |
12805 | # while (@$ot) { | |
12806 | # my $next = pop @$ot; | |
12807 | # $declarations{$next} =~ m|</.*$|; | |
12808 | # my ($pre,$post) = ($`,$&); | |
12809 | # if ($post =~ /$block_close_rx|$all_close_rx/ ) { | |
12810 | # push (@$ot, $next); | |
12811 | # last; | |
12812 | # } | |
12813 | # $closures .= $post unless ($pre =~ /^<>/); | |
12814 | # print STDOUT "\n</$next>" if $VERBOSITY > 2; | |
12815 | # | |
12816 | # if ($next =~ /$fontchange_rx/) { | |
12817 | # # discard it | |
12818 | # } elsif ($next =~ /$fontweight_rx/) { | |
12819 | # # discard it | |
12820 | # } elsif ($next =~ /$sizechange_rx/) { | |
12821 | # $size = $next unless ($size); | |
12822 | # } else { | |
12823 | # unshift (@tags, $next); | |
12824 | # print STDOUT "\n<<$next>" if $VERBOSITY > 2; | |
12825 | # $reopens .= $pre unless ($pre =~ /^<>/); | |
12826 | # } | |
12827 | # } | |
12828 | # push (@$ot, @tags); | |
12829 | # if ($size) { | |
12830 | # $declarations{$size} =~ m|</.*$|; | |
12831 | # $reopens .= $` unless ($` =~ /^<>/); | |
12832 | # push (@$ot,$size); | |
12833 | # print STDOUT "\n<$size>" if $VERBOSITY > 2; | |
12834 | # } | |
12835 | # join('', $closures, $reopens, $str); | |
12836 | #} | |
12657 | 12837 | |
12658 | 12838 | sub do_cmd_rmfamily{ &do_cmd_rm(@_) } |
12659 | 12839 | |
13242 | 13422 | $cmd =~ s/ //g; |
13243 | 13423 | |
13244 | 13424 | # skip if a proper implementation already exists |
13245 | $tmp = "do_cmd_$cmd"; | |
13425 | local($dum1, $dum2) = ($cmd, ''); | |
13426 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
13427 | $tmp = "do_cmd_$dum1"; | |
13246 | 13428 | next if (defined &$tmp); |
13247 | 13429 | |
13248 | 13430 | # Build routine body ... |
13293 | 13475 | # Generate a new subroutine |
13294 | 13476 | local($padding) = " "; |
13295 | 13477 | $padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/)); |
13296 | $code = "sub wrap_cmd_$cmd {" . "\n" | |
13478 | local($dum1, $dum2) = ($cmd, ''); | |
13479 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
13480 | local($wtmp) = "wrap_cmd_$dum1"; | |
13481 | $code = "sub $wtmp {" . "\n" | |
13297 | 13482 | . 'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";' . "\n" |
13298 | 13483 | . $body |
13299 | . (($thisone)? "print STDERR \"\\n$cmd:\".\$args.\"\\n\";\n" : '') | |
13484 | . (($thisone)? "print STDERR \"\\n\", '$cmd', \":\".\$args.\"\\n\";\n" : '') | |
13300 | 13485 | . '(&make_wrapper(1).$cmd' |
13301 | 13486 | . ($padding ? '"'.$padding.'"' : '') |
13302 | 13487 | . '.$args.&make_wrapper(0), $_)}' |
13303 | 13488 | . "\n"; |
13304 | 13489 | print "\nWRAP_CMD: $code " if ($thisone); # for debugging |
13305 | 13490 | eval $code; # unless ($thisone); |
13306 | print STDERR "\n*** sub wrap_cmd_$cmd failed: $@" if ($@); | |
13491 | print STDERR "\n*** sub $wtmp failed: $@" if ($@); | |
13307 | 13492 | |
13308 | 13493 | # And make sure the main loop will catch it ... |
13309 | 13494 | # $raw_arg_cmds{$cmd} = 1; |
13377 | 13562 | local($padding) = " "; |
13378 | 13563 | $padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/)); |
13379 | 13564 | # Generate 2 new subroutines |
13380 | $codeA = "sub wrap_cmd_$cmd {" . "\n" | |
13565 | local($dum1, $dum2) = ($cmd, ''); | |
13566 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
13567 | local($wtmp) = "wrap_cmd_$dum1"; | |
13568 | $codeA = "sub $wtmp {" . "\n" | |
13381 | 13569 | .'local($cmd, $_) = @_; local($args, $dummy, $pat) = "";'."\n" |
13382 | 13570 | . $bodyA |
13383 | . (($thisone)? "print \"\\nwrap $cmd:\\n\".\$args.\"\\n\";\n" : '') | |
13571 | . (($thisone)? "print \"\\nwrap \", '$cmd', \":\\n\".\$args.\"\\n\";\n" : '') | |
13384 | 13572 | . '(&make_nowrapper(1)."\n".$cmd.'."\"$padding\"" |
13385 | 13573 | . '.$args.&make_nowrapper(0)," ".$_)}' |
13386 | 13574 | ."\n"; |
13387 | 13575 | print "\nWRAP_CMD: $codeA " if ($thisone); # for debugging |
13388 | 13576 | eval $codeA; |
13389 | print STDERR "\n\n*** sub wrap_cmd_$cmd failed: $@\n" if ($@); | |
13390 | $codeB = "do_cmd_$cmd"; | |
13577 | print STDERR "\n\n*** sub $wtmp failed: $@\n" if ($@); | |
13578 | $codeB = "do_cmd_$dum1"; | |
13391 | 13579 | do { |
13392 | 13580 | $bodyB = '"";' if !($bodyB); |
13393 | $codeB = "sub do_cmd_$cmd {" . "\n" | |
13581 | $codeB = "sub do_cmd_$dum1 {" . "\n" | |
13394 | 13582 | . 'local($_,$ot) = @_;'."\n" |
13395 | 13583 | . 'local($open_tags_R) = defined $ot ? $ot : $open_tags_R;'."\n" |
13396 | 13584 | . 'local($cmd,$args,$dummy,$pat)=("'.$cmd.'","","","");'."\n" |
13397 | 13585 | . $bodyB |
13398 | . (($thisone)? "print \"\\ndo $cmd:\".\$args.\"\\n\";\n" : '') | |
13586 | . (($thisone)? "print \"\\ndo \", '$cmd', \":\".\$args.\"\\n\";\n" : '') | |
13399 | 13587 | # . '$latex_body.="\\n".&revert_to_raw_tex("'."\\\\$cmd$padding".'$args")."\\n\\n";' |
13400 | 13588 | . "\$_;}\n"; |
13401 | 13589 | print STDOUT "\nDO_CMD: $codeB " if ($thisone); # for debugging |
13402 | 13590 | eval $codeB; |
13403 | print STDERR "\n\n*** sub do_cmd_$cmd failed: $@\n" if ($@); | |
13591 | print STDERR "\n\n*** sub do_cmd_$dum1 failed: $@\n" if ($@); | |
13404 | 13592 | } unless (defined &$codeB ); |
13405 | 13593 | |
13406 | 13594 | # And make sure the main loop will catch it ... |
13459 | 13647 | local($padding) = " "; |
13460 | 13648 | $padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/)); |
13461 | 13649 | # Generate 2 new subroutines |
13462 | $codeA = "sub wrap_cmd_$cmd {" . "\n" | |
13650 | local($dum1, $dum2) = ($cmd, ''); | |
13651 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
13652 | local($wtmp) = "wrap_cmd_$dum1"; | |
13653 | $codeA = "sub $wtmp {" . "\n" | |
13463 | 13654 | .'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";'."\n" |
13464 | 13655 | . $bodyA #. ($bodyA ? "\n" : '') |
13465 | . (($thisone)? ";print \"\\nwrap $cmd:\".\$args.\"\\n\";\n" : '') | |
13656 | . (($thisone)? ";print \"\\nwrap \", '$cmd', \":\".\$args.\"\\n\";\n" : '') | |
13466 | 13657 | .'(&make_deferred_wrapper(1).$cmd.'.$padding |
13467 | 13658 | .'$args.&make_deferred_wrapper(0),$_)}' |
13468 | 13659 | ."\n"; |
13469 | 13660 | print STDERR "\nWRAP_CMD: $codeA " if ($thisone); # for debugging |
13470 | 13661 | eval $codeA; |
13471 | print STDERR "\n\n*** sub wrap_cmd_$cmd failed: $@\n" if ($@); | |
13662 | print STDERR "\n\n*** sub $wtmp failed: $@\n" if ($@); | |
13472 | 13663 | |
13473 | 13664 | #RRM: currently these commands only go to LaTeX or access counters. |
13474 | 13665 | # They could be implemented more generally, as below with do_dcmd_$cmd |
13475 | 13666 | # requiring replacement to be performed before evaluation. |
13476 | $codeB = "sub do_dcmd_$cmd {" . "\n" | |
13667 | $codeB = "sub do_dcmd_$dum1 {" . "\n" | |
13477 | 13668 | .'local($cmd, $_) = @_; local ($args, $dummy, $pat) = "";'."\n" |
13478 | 13669 | . $bodyA . "\n" |
13479 | . (($thisone)? ";print \"\\ndo_def $cmd:\".\$args.\"\\n\";\n" : '') | |
13670 | . (($thisone)? ";print \"\\ndo_def \", '$cmd', \":\".\$args.\"\\n\";\n" : '') | |
13480 | 13671 | . $bodyB . "}" . "\n"; |
13481 | 13672 | print "\nDEF_CMD: $codeB " if ($thisone); # for debugging |
13482 | local($tmp) = "do_cmd_$cmd"; | |
13673 | local($tmp) = "do_cmd_$dum1"; | |
13483 | 13674 | eval $codeB unless (defined &$tmp); |
13484 | print STDERR "\n\n*** sub do_dcmd_$cmd failed: $@\n" if ($@); | |
13675 | print STDERR "\n\n*** sub do_dcmd_$dum1 failed: $@\n" if ($@); | |
13485 | 13676 | |
13486 | 13677 | # And make sure the main loop will catch it ... |
13487 | 13678 | # $raw_arg_cmds{$cmd} = 1; |
13530 | 13721 | $padding = '' if (($cmd =~ /\W$/)||(!$args)||($args =~ /^\W/)); |
13531 | 13722 | # Generate a new subroutine |
13532 | 13723 | my $itype = ($cmd =~ /^f.*box$/ ? 'inline' : 'nomath'); |
13533 | $code = "sub wrap_cmd_$cmd {" . "\n" | |
13724 | local($dum1, $dum2) = ($cmd, ''); | |
13725 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
13726 | local($wtmp) = "wrap_cmd_$dum1"; | |
13727 | $code = "sub $wtmp {" . "\n" | |
13534 | 13728 | .'local($cmd, $_) = @_; local ($args) = "";' . "\n" |
13535 | 13729 | . $body . "\n" |
13536 | . (($thisone)? ";print \"\\ndo $cmd:\".\$args.\"\\n\";\n" : '') | |
13730 | . (($thisone)? ";print \"\\ndo \", '$cmd', \":\".\$args.\"\\n\";\n" : '') | |
13537 | 13731 | .'(&make_'.$itype.'_wrapper(1).$cmd.$padding.$args.' |
13538 | 13732 | . '&make_'.$itype.'_wrapper(0),$_)}' |
13539 | 13733 | ."\n"; |
13540 | 13734 | print "\nWRAP_CMD:$raw_arg_cmds{$cmd}: $code " |
13541 | 13735 | if ($thisone); # for debugging |
13542 | 13736 | eval $code; |
13543 | print STDERR "\n\n*** sub wrap_cmd_$cmd failed: $@\n" if ($@); | |
13737 | print STDERR "\n\n*** sub $wtmp failed: $@\n" if ($@); | |
13544 | 13738 | # And make sure the main loop will catch it ... |
13545 | 13739 | # $raw_arg_cmds{$cmd} = 1; |
13546 | 13740 | ++$raw_arg_cmds{$cmd}; |
13579 | 13773 | ($cmd, $star) = ($1.$2,$4); |
13580 | 13774 | if ($star eq '*') { $star = 'star';} |
13581 | 13775 | else { $after = $star.$after; $star = ''; } |
13582 | $wrapper = "wrap_cmd_$cmd"; $teststar = $wrapper.'star'; | |
13776 | local($dum1, $dum2) = ($cmd, ''); | |
13777 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
13778 | $wrapper = "wrap_cmd_$dum1"; | |
13779 | $teststar = $wrapper.'star'; | |
13583 | 13780 | if ($star && defined &$teststar) { $wrapper = $teststar; $star = '*'; } |
13584 | 13781 | # MRO: make {\bf**} work |
13585 | 13782 | elsif($star) { $after = '*'.$after; $star = '' } |
13870 | 14067 | |
13871 | 14068 | sub get_footnote_mark { |
13872 | 14069 | local($mini) = @_; |
13873 | return($footnote_mark) if ($HTML_VERSION < 3.0 ); | |
14070 | return($footnote_mark) if ($HTML_VERSION < 3.0); | |
13874 | 14071 | local($cmd,$tmp,@tmp,$marker); |
13875 | 14072 | $cmd = "the". (($mini)? 'mp' : '') . "footnote"; |
13876 | 14073 | if ($new_command{$cmd}) { |
14140 | 14337 | sub do_cmd_datename { $date_name . $_[0] } |
14141 | 14338 | sub do_cmd_refname { $ref_title . $_[0] } |
14142 | 14339 | sub do_cmd_bibname { $bib_title . $_[0] } |
14340 | sub do_cmd_nomname { $nom_title . $_[0] } | |
14143 | 14341 | sub do_cmd_figurename { $fig_name . $_[0] } |
14144 | 14342 | sub do_cmd_listfigurename { $lof_title . $_[0] } |
14145 | 14343 | sub do_cmd_tablename { $tab_name . $_[0] } |
14558 | 14756 | # This is used in $FILE.aux |
14559 | 14757 | sub do_cmd_newlabel { |
14560 | 14758 | local($_) = @_; |
14561 | local($label,$val,$tmp); | |
14759 | local($label,$val,$valno,$valnam,$valpag,$tmp,$tmp2,$tmp3); | |
14760 | ||
14761 | # 1st argument is always label | |
14562 | 14762 | $label = &missing_braces unless ( |
14563 | 14763 | (s/$next_pair_pr_rx/$label = $2;''/eo) |
14564 | 14764 | ||(s/$next_pair_rx/$label = $2;''/eo)); |
14765 | $label =~ s/$label_rx/_/g; # Replace non alphanumeric characters | |
14766 | # next argument is a bracketed container | |
14565 | 14767 | $tmp = &missing_braces unless ( |
14566 | 14768 | (s/$next_pair_pr_rx/$tmp=$2;''/eo) |
14567 | 14769 | ||(s/$next_pair_rx/$tmp=$2;''/eo)); |
14568 | $val = &missing_braces unless ( | |
14569 | ($tmp =~ s/$next_pair_pr_rx/$val=$2;''/eo) | |
14570 | ||($tmp =~ s/$next_pair_rx/$val=$2;''/eo)); | |
14571 | $val =~ s/(^\s+|\s+$)//gs; | |
14572 | $label =~ s/$label_rx/_/g; # Replace non alphanumeric characters | |
14770 | # 2nd argument may be either cap number or another bracketed container | |
14771 | $valno = '' unless ( | |
14772 | ($tmp =~ s/$next_pair_pr_rx/$valno=$&;''/eo) | |
14773 | ||($tmp =~ s/$next_pair_rx/$valno=$&;''/eo)); | |
14774 | $valno =~ s/(^\s+|\s+$)//gs; | |
14775 | # 3rd argument is always page number | |
14776 | $valpag = &missing_braces unless ( | |
14777 | ($tmp =~ s/$next_pair_pr_rx/$valpag=$2;''/eo) | |
14778 | ||($tmp =~ s/$next_pair_rx/$valpag=$2;''/eo)); | |
14779 | $valpag =~ s/(^\s+|\s+$)//gs; | |
14780 | ||
14781 | if ($tmp eq '') { | |
14782 | # either article or memoir: try to unwrap and parse 2nd argument | |
14783 | $tmp2 = $valno; | |
14784 | $tmp = &missing_braces unless ( | |
14785 | ($tmp2 =~ s/$next_pair_pr_rx/$tmp=$2;''/eo) | |
14786 | ||($tmp2 =~ s/$next_pair_rx/$tmp=$2;''/eo)); | |
14787 | # 1st part of 2nd argument is either empty or actual new cap number | |
14788 | $tmp2 = '' unless ( | |
14789 | ($tmp =~ s/$next_pair_pr_rx/$tmp2=$&;''/eo) | |
14790 | ||($tmp =~ s/$next_pair_rx/$tmp2=$&;''/eo)); | |
14791 | $tmp2 =~ s/(^\s+|\s+$)//gs; | |
14792 | if ($tmp2 eq '') { | |
14793 | # article: keep old cap number, cap text unavailable | |
14794 | $valnam = ''; | |
14795 | } else { | |
14796 | # memoir: reassign new cap number, cap text following | |
14797 | $valno = $tmp2; | |
14798 | # memoir: 2nd part of 2nd argument is actual cap text | |
14799 | $valnam = '' unless ( | |
14800 | ($tmp =~ s/$next_pair_pr_rx/$valnam=$&;''/eo) | |
14801 | ||($tmp =~ s/$next_pair_rx/$valnam=$&;''/eo)); | |
14802 | $valnam =~ s/(^\s+|\s+$)//gs; | |
14803 | } | |
14804 | } else { | |
14805 | # special case: nameref without hyperref, 4th argument is cap text | |
14806 | $valnam = '' unless ( | |
14807 | ($tmp =~ s/$next_pair_pr_rx/$valnam=$&;''/eo) | |
14808 | ||($tmp =~ s/$next_pair_rx/$valnam=$&;''/eo)); | |
14809 | $valnam =~ s/(^\s+|\s+$)//gs; | |
14810 | # recheck for memoir: try to unwrap and parse 2nd argument | |
14811 | $tmp2 = $valno; | |
14812 | $tmp = &missing_braces unless ( | |
14813 | ($tmp2 =~ s/$next_pair_pr_rx/$tmp=$2;''/eo) | |
14814 | ||($tmp2 =~ s/$next_pair_rx/$tmp=$2;''/eo)); | |
14815 | # actual cap number is here if we have a container with two items | |
14816 | if ((($tmp =~ s/$next_pair_pr_rx/$tmp2=$&;''/eo) || | |
14817 | ($tmp =~ s/$next_pair_rx/$tmp2=$&;''/eo)) && | |
14818 | (($tmp =~ s/$next_pair_pr_rx/$tmp3=$&;''/eo) || | |
14819 | ($tmp =~ s/$next_pair_rx/$tmp3=$&;''/eo)) && | |
14820 | $tmp eq '') | |
14821 | { | |
14822 | $valno = $tmp2; | |
14823 | $valno =~ s/(^\s+|\s+$)//gs; | |
14824 | if ($valnam eq '') | |
14825 | { | |
14826 | $valnam = $tmp3; | |
14827 | $valnam =~ s/(^\s+|\s+$)//gs; | |
14828 | } | |
14829 | } | |
14830 | } | |
14831 | ||
14832 | # Now combine number and text together, separated by one space | |
14833 | $tmp = ''; | |
14834 | $tmp = ' ' if ($valno ne '' && $valnam ne ''); | |
14835 | $val = join ($tmp, $valno, $valnam); | |
14573 | 14836 | $latex_labels{$label} = $val; |
14574 | 14837 | &do_labels_helper($label); |
14575 | 14838 | $_; |
15958 | 16221 | unless $AtBeginDocument_hook; |
15959 | 16222 | $cross_ref_mark = '<tex2html_cr_mark>'; |
15960 | 16223 | $external_ref_mark = '<tex2html_ext_cr_mark>'; |
16224 | $name_ref_mark = '<tex2html_name_cr_mark>'; | |
15961 | 16225 | $cite_mark = '<tex2html_cite_mark>'; |
15962 | 16226 | $hash_mark = '<tex2html_hash_mark>'; |
15963 | 16227 | $protected_hash = '<tex2html_protected_hash>'; |
16144 | 16408 | # 'raggedleft', '<P ALIGN="RIGHT"></P>', |
16145 | 16409 | |
16146 | 16410 | %declarations = ( |
16147 | # 'centering', '<P></P>', | |
16411 | 'centering', '<P></P>', | |
16148 | 16412 | 'center', '<P></P>', |
16149 | 16413 | 'flushleft', '<P></P>', |
16150 | 16414 | 'raggedright', '<P></P>', |
16176 | 16440 | 'par', '<P></P>', |
16177 | 16441 | 'samepage', '', |
16178 | 16442 | # 'centering', '<DIV ALIGN="CENTER"></DIV>', |
16443 | 'centering', '<DIV class="CENTER"></DIV>', | |
16179 | 16444 | 'center', '<DIV class="CENTER"></DIV>', |
16180 | 16445 | 'flushleft', '<DIV class="LEFT"></DIV>', |
16181 | 16446 | 'raggedright', '<DIV class="LEFT"></DIV>', |
16213 | 16478 | # These need their own custom code but are treated as sectioning commands |
16214 | 16479 | %section_headings = |
16215 | 16480 | ('tableofcontents', 'H2', 'listoffigures', 'H2', 'listoftables', 'H2' |
16216 | , 'bibliography', 'H2', 'textohtmlindex', 'H2' | |
16481 | , 'bibliography', 'H2', 'nomenclature', 'H2', 'textohtmlindex', 'H2' | |
16217 | 16482 | , %standard_section_headings |
16218 | 16483 | , %section_headings); |
16219 | 16484 | |
16984 | 17249 | $colorchange_rx = "(text)?color\\s*(\#\\w{6})?"; |
16985 | 17250 | $sizechange_rx = 'tiny|Tiny|scriptsize|footnotesize|small|Small|SMALL' . |
16986 | 17251 | '|normalsize|large|Large|LARGE|huge|Huge'; |
17252 | $alignchange_rx = 'centering|raggedright|raggedleft'; | |
16987 | 17253 | |
16988 | 17254 | # $image_switch_rx = "makeimage"; |
16989 | 17255 | $image_switch_rx = "makeimage|scshape|sc"; |
17377 | 17643 | S<[ B<->(B<no>)B<scalable_fonts> ]> |
17378 | 17644 | S<[ B<->(B<no>)B<images_only> ]> |
17379 | 17645 | S<[ B<->(B<no>)B<show_section_numbers> ]> |
17646 | S<[ B<->(B<no>)B<add_ref_name> ]> | |
17647 | S<[ B<->(B<no>)B<cut_ref_num> ]> | |
17380 | 17648 | S<[ B<->(B<no>)B<use_dvipng> ]> |
17381 | 17649 | S<[ B<->(B<no>)B<use_pdftex> ]> |
17382 | 17650 | S<[ B<->(B<no>)B<use_luatex> ]> |
17722 | 17990 | as standalone documents. In this case the cross reference to a section |
17723 | 17991 | is shown using the default symbol rather than the section number. |
17724 | 17992 | |
17993 | =item B<->(B<no>)B<add_ref_name> | |
17994 | ||
17995 | =item B<->(B<no>)B<cut_ref_num> | |
17996 | ||
17997 | Usually cross reference text contains only the caption number as a | |
17998 | hyperlink to the corresponding B<LaTeX> label. However, it could be handy | |
17999 | to see the name of the object referenced, if the reference text would | |
18000 | contain both the caption number and the caption name. | |
18001 | With B<-add_ref_name> the caption name is shown additionally when available. | |
18002 | With B<-cut_ref_num> the caption number is cut out leaving the optional | |
18003 | name only. If B<-cut_ref_num> is given and B<-add_ref_name> is not, | |
18004 | then the cross reference text is suppressed and a cross reference | |
18005 | button shown instead. | |
18006 | ||
17725 | 18007 | =item B<->(B<no>)B<use_dvipng> |
17726 | 18008 | |
17727 | 18009 | For intermediate DVI images produced by latex or dvilualatex: |
305 | 305 | # the pnmflip executable needed for flipping and rotating bitmaps |
306 | 306 | $prefs{'PNMFLIP'} = 'pnmflip'; |
307 | 307 | |
308 | # the ppmquant executable needed for limiting the number of colors | |
309 | $prefs{'PPMQUANT'} = 'ppmquant'; | |
308 | # the pnmquant executable needed for limiting the number of colors | |
309 | $prefs{'PNMQUANT'} = 'pnmquant'; | |
310 | 310 | |
311 | 311 | # the pnmfile executable needed for determining bitmap properties |
312 | 312 | $prefs{'PNMFILE'} = 'pnmfile'; |
27 | 27 | # |
28 | 28 | # Revision 2016/04/19 |
29 | 29 | # -- fix pstoimg -depth 24 -flip cw |
30 | # avoiding dropping unexecuted command when ppmquant is not run | |
30 | # avoiding dropping unexecuted command when pnmquant is not run | |
31 | 31 | # https://bugs.debian.org/612126 |
32 | 32 | # |
33 | 33 | # Revision 1.19 2004/01/02 08:20:33 RRM |
321 | 321 | #if @PNMCROPOPT@ |
322 | 322 | $PNMCROPOPT = '@PNMCROPOPT@'; |
323 | 323 | #fi |
324 | #if @PPMQUANT@ | |
325 | my $PPMQUANT = '@PPMQUANT@'; | |
324 | #if @PNMQUANT@ | |
325 | my $PNMQUANT = '@PNMQUANT@'; | |
326 | 326 | #fi |
327 | 327 | #- |
328 | 328 | #if @PNMFLIP@ |
870 | 870 | # calculate dpi resolution from density and scale |
871 | 871 | $DENSITY = int($opt{scale} * $DENSITY + .5) if($opt{scale} != 1); |
872 | 872 | |
873 | #if @PPMQUANT@ | |
873 | #if @PNMQUANT@ | |
874 | 874 | my $reduce_color = ''; |
875 | 875 | if($opt{depth} == 1) { |
876 | $reduce_color = "$PPMQUANT 2"; | |
876 | $reduce_color = "$PNMQUANT 2"; | |
877 | 877 | } |
878 | 878 | elsif ($opt{depth} == 8) { |
879 | $reduce_color = "$PPMQUANT 256"; | |
879 | $reduce_color = "$PNMQUANT 256"; | |
880 | 880 | } |
881 | 881 | #fi |
882 | 882 | |
886 | 886 | $GSDEVICE = $GSALIASDEVICE; |
887 | 887 | if($opt{depth} == 1) { |
888 | 888 | $gs_aalias = '-dTextAlphaBits=4 '; |
889 | #if @PPMQUANT@ | |
890 | $reduce_color = "$PPMQUANT -floyd 256"; | |
889 | #if @PNMQUANT@ | |
890 | $reduce_color = "$PNMQUANT -norandom -floyd 256"; | |
891 | 891 | #fi |
892 | 892 | } |
893 | 893 | else { |
897 | 897 | elsif ($opt{aaliastext}) { |
898 | 898 | $GSDEVICE = $GSALIASDEVICE; |
899 | 899 | $gs_aalias = '-dTextAlphaBits=4 '; |
900 | #if @PPMQUANT@ | |
901 | $reduce_color = "$PPMQUANT -floyd 256"; | |
900 | #if @PNMQUANT@ | |
901 | $reduce_color = "$PNMQUANT -norandom -floyd 256"; | |
902 | 902 | #fi |
903 | 903 | } |
904 | 904 | #fi |
1527 | 1527 | exit 2; |
1528 | 1528 | } |
1529 | 1529 | |
1530 | #if @PPMQUANT@ | |
1530 | #if @PNMQUANT@ | |
1531 | 1531 | #if @PNMFILE@ |
1532 | 1532 | unless($type) { |
1533 | 1533 | ($type,$width,$height) = &get_image_geometry($in); |
1534 | 1534 | return 0 unless($type); |
1535 | 1535 | } |
1536 | 1536 | #fi |
1537 | # run ppmquant only on color/gray images | |
1537 | # run pnmquant only on color/gray images | |
1538 | 1538 | if($reduce_color && (!$type || $type =~ /(ppm|pgm)/i)) { |
1539 | 1539 | #if @pipes@ |
1540 | 1540 | if($cmd) { |
1546 | 1546 | &do_cmd($in,$tmp,"$reduce_color < $in") || return 0; |
1547 | 1547 | #fi |
1548 | 1548 | } |
1549 | #fi # PPMQUANT | |
1549 | #fi # PNMQUANT | |
1550 | 1550 | |
1551 | 1551 | #if @pipes@ |
1552 | 1552 | if($cmd) { |
21 | 21 | $idx_title = "Index"; |
22 | 22 | $ref_title = "References"; |
23 | 23 | $bib_title = "Bibliography"; |
24 | $nom_title = "Nomenclature"; | |
24 | 25 | $abs_title = "Abstract"; |
25 | 26 | $app_title = "Appendix"; |
26 | 27 | $pre_title = "Preface"; |
14 | 14 | package main; |
15 | 15 | |
16 | 16 | if (defined &addto_languages) { &addto_languages('czech') }; |
17 | ||
18 | &do_require_extension ('latin2'); | |
19 | 17 | |
20 | 18 | sub czech_titles { |
21 | 19 | $toc_title = "Obsah"; |
35 | 35 | $idx_title = "Index"; |
36 | 36 | $ref_title = "References"; |
37 | 37 | $bib_title = "Bibliography"; |
38 | $nom_title = "Nomenclature"; | |
38 | 39 | $abs_title = "Abstract"; |
39 | 40 | $app_title = "Appendix"; |
40 | 41 | $pre_title = "Preface"; |
191 | 191 | $idx_title = "Index"; |
192 | 192 | $ref_title = "Literaturverzeichnis"; |
193 | 193 | $bib_title = "Literatur"; |
194 | $nom_title = "Symbolverzeichnis"; | |
194 | 195 | $abs_title = "Zusammenfassung"; |
195 | 196 | $app_title = "Anhang"; |
196 | 197 | $pre_title = "Vorwort"; |
191 | 191 | $idx_title = "Index"; |
192 | 192 | $ref_title = "Literaturverzeichnis"; |
193 | 193 | $bib_title = "Literatur"; |
194 | $nom_title = "Symbolverzeichnis"; | |
194 | 195 | $abs_title = "Zusammenfassung"; |
195 | 196 | $app_title = "Anhang"; |
196 | 197 | $pre_title = "Vorwort"; |
89 | 89 | $PNMPAD = check_graphics_util('PNMPAD','pnmpad'); |
90 | 90 | $PNMFLIP = check_graphics_util('PNMFLIP','pnmflip'); |
91 | 91 | $PNMSCALE = check_graphics_util('PNMSCALE','pnmscale'); |
92 | $PPMQUANT = check_graphics_util('PPMQUANT','ppmquant'); | |
92 | $PNMQUANT = check_graphics_util('PNMQUANT','pnmquant'); | |
93 | 93 | $PNMROTATE = check_graphics_util('PNMROTATE','pnmrotate'); |
94 | 94 | |
95 | 95 | # Utilities needed for image conversions. |
121 | 121 | |
122 | 122 | |
123 | 123 | # Extensions for html graphics files; we'll look specifically for them. |
124 | $GRAPHICS_EXTENSIONS =[grep($GRAPHICS_RULE{$_}, qw(.png .jpg .jpeg .gif .tiff))]; | |
124 | $GRAPHICS_EXTENSIONS =[grep($GRAPHICS_RULE{$_}, qw(.svg .png .jpg .jpeg .gif .tiff))]; | |
125 | 125 | |
126 | 126 | %GRAPHICS_TRANSPARENCY=('.png'=>1, '.gif'=>1); |
127 | 127 | |
457 | 457 | if(!$rotfirst && ($rqw||$rqh||$rqs)){ |
458 | 458 | ($w,$h)=scaled_image_size($w,$h, $rqw*$Wf,$rqh*$Hf,$rqs,$aspect); |
459 | 459 | push (@missing_utils,'pnmscale') unless $PNMSCALE; |
460 | push (@missing_utils,'ppmquant') unless $PPMQUANT; | |
460 | push (@missing_utils,'pnmquant') unless $PNMQUANT; | |
461 | 461 | $pipe .= " | $PNMSCALE$quiet -width $w -height $h"; |
462 | $pipe .= " | $PPMQUANT$quiet 255"; | |
462 | $pipe .= " | $PNMQUANT$quiet 255"; | |
463 | 463 | $cacheid .= "|S$w,$h"; } |
464 | 464 | # 3: Perform any rotation |
465 | 465 | if($a){ |
487 | 487 | if($rotfirst && ($rqw||$rqh||$rqs)){ |
488 | 488 | ($w,$h)=scaled_image_size($w,$h, $rqw*$Wf,$rqh*$Hf,$rqs,$aspect); |
489 | 489 | push (@missing_utils,'pnmscale') unless $PNMSCALE; |
490 | push (@missing_utils,'ppmquant') unless $PPMQUANT; | |
490 | push (@missing_utils,'pnmquant') unless $PNMQUANT; | |
491 | 491 | $pipe .= " | $PNMSCALE$quiet -width $w -height $h"; |
492 | $pipe .= " | $PPMQUANT$quiet 255"; | |
492 | $pipe .= " | $PNMQUANT$quiet 255"; | |
493 | 493 | $cacheid .= "|S$w,$h"; } |
494 | 494 | # ---------------------- |
495 | 495 | if(@missing_utils) { |
14 | 14 | package main; |
15 | 15 | |
16 | 16 | if (defined &addto_languages) { &addto_languages('magyar') }; |
17 | ||
18 | &do_require_extension ('latin2'); | |
19 | 17 | |
20 | 18 | sub magyar_titles { |
21 | 19 | $toc_title = 'Tartalomjegyzék'; |
215 | 215 | $TITLE = $before unless $TITLE; |
216 | 216 | # Save the reference |
217 | 217 | local($words) = ''; |
218 | if ($SHOW_SECTION_NUMBERS) { $words = &make_idxnum; } | |
219 | elsif ($SHORT_INDEX) { $words = &make_shortidxname; } | |
218 | # To get &make_idxnum effect, set in .latex2html-init or l2hconf.pm | |
219 | # $SHOW_SECTION_NUMBERS = 1 and $WORDS_IN_INDEX = 0, or use -short_index | |
220 | #if ($SHOW_SECTION_NUMBERS) { $words = &make_idxnum; } | |
221 | #elsif ($SHORT_INDEX) { $words = &make_shortidxname; } | |
222 | if ($SHORT_INDEX) { $words = &make_shortidxname; } | |
220 | 223 | else { $words = &make_idxname; } |
221 | 224 | local($super_key) = ''; |
222 | 225 | local($sort_key, $printable_key, $cur_key); |
232 | 235 | # |
233 | 236 | if ($printable_key =~ /tex2html_anchor_mark/ ) { |
234 | 237 | $printable_key =~ s/><tex2html_anchor_mark><\/A><A//g; |
235 | local($tmpA,$tmpB) = split("NAME=\"", $printable_key); | |
238 | local($tmpA,$tmpB) = split("ID=\"", $printable_key); | |
236 | 239 | ($tmpA,$tmpB) = split("\"", $tmpB); |
237 | 240 | $ref_files{$tmpA}=''; |
238 | 241 | $index_labels{$tmpA} = 1; |
328 | 331 | if ($pageref) { |
329 | 332 | if ($pageref =~ /tex2html_anchor_mark/ ) { |
330 | 333 | $pageref =~ s/><tex2html_anchor_mark><\/A><A//g; |
331 | local($tmpA,$tmpB) = split("NAME=\"", $pageref); | |
334 | local($tmpA,$tmpB) = split("ID=\"", $pageref); | |
332 | 335 | ($tmpA,$tmpB) = split("\"", $tmpB); |
333 | 336 | $ref_files{$tmpA}=''; |
334 | 337 | $index_labels{$tmpA} = 1; |
362 | 365 | } |
363 | 366 | #print "\nREF: $sort_key : $cur_key :$index{$cur_key}"; |
364 | 367 | |
365 | # join('',"<A NAME=$br_id>$anchor_invisible_mark<\/A>",$_); | |
366 | "<A NAME=\"$br_id\">$anchor_invisible_mark<\/A>"; | |
367 | } | |
368 | ||
369 | $WORDS_IN_INDEX = 4 unless ($WORDS_IN_INDEX); | |
368 | # join('',"<A ID=$br_id>$anchor_invisible_mark<\/A>",$_); | |
369 | "<A ID=\"$br_id\">$anchor_invisible_mark<\/A>"; | |
370 | } | |
371 | ||
372 | $WORDS_IN_INDEX = $WORDS_IN_NAVIGATION_PANEL_TITLES if ($WORDS_IN_INDEX eq ''); | |
373 | $WORDS_IN_INDEX = 4 if ($WORDS_IN_INDEX eq ''); | |
370 | 374 | |
371 | 375 | #RRM: |
372 | 376 | # alternative strings for short-names or section-names |
373 | 377 | # |
374 | sub make_idxname {(&get_first_words($TITLE, $WORDS_IN_INDEX) || 'no title')} | |
378 | sub make_idxname {(&get_first_words($TITLE, $WORDS_IN_INDEX+($SHOW_SECTION_NUMBERS?1:0)) || 'no title')} | |
375 | 379 | sub make_idxnum {(&get_first_words($TITLE, 1) || 'no title')} |
376 | 380 | |
377 | 381 | sub make_shortidxname { |
0 | # memoir.perl by Georgy Salnikov <sge@nmr.nioch.nsc.ru> 2021/01/29 | |
1 | # | |
2 | # Extension to LaTeX2HTML V2021 to support the "memoir" document class | |
3 | # and some of its class options. Currently support is very limited. | |
4 | # | |
5 | # Partly adapted from book.perl | |
6 | # | |
7 | # Change Log: | |
8 | # =========== | |
9 | # | |
10 | # $Log: $ | |
11 | ||
12 | package main; | |
13 | ||
14 | # Suppress option-warning messages: | |
15 | ||
16 | sub do_memoir_a4paper{} | |
17 | sub do_memoir_a5paper{} | |
18 | sub do_memoir_b5paper{} | |
19 | sub do_memoir_legalpaper{} | |
20 | sub do_memoir_letterpaper{} | |
21 | sub do_memoir_executivepaper{} | |
22 | sub do_memoir_landscape{} | |
23 | sub do_memoir_final{} | |
24 | sub do_memoir_draft{} | |
25 | sub do_memoir_ms{} | |
26 | sub do_memoir_oneside{} | |
27 | sub do_memoir_twoside{} | |
28 | sub do_memoir_openright{} | |
29 | sub do_memoir_openleft{} | |
30 | sub do_memoir_openany{} | |
31 | sub do_memoir_onecolumn{} | |
32 | sub do_memoir_twocolumn{} | |
33 | sub do_memoir_openbib{} | |
34 | sub do_memoir_extrafontsizes{} | |
35 | ||
36 | sub do_memoir_10pt{ $LATEX_FONT_SIZE = '10pt' unless $LATEX_FONT_SIZE; } | |
37 | sub do_memoir_11pt{ $LATEX_FONT_SIZE = '11pt' unless $LATEX_FONT_SIZE; } | |
38 | sub do_memoir_12pt{ $LATEX_FONT_SIZE = '12pt' unless $LATEX_FONT_SIZE; } | |
39 | ||
40 | sub do_memoir_leqno{ $EQN_TAGS = 'L'; } | |
41 | sub do_memoir_reqno{ $EQN_TAGS = 'R'; } | |
42 | sub do_memoir_fleqn{ $FLUSH_EQN = 1; } | |
43 | ||
44 | &addto_dependents('chapter','equation'); | |
45 | &addto_dependents('chapter','footnote'); | |
46 | &addto_dependents('chapter','figure'); | |
47 | &addto_dependents('chapter','table'); | |
48 | ||
49 | sub do_memoir_article { | |
50 | &remove_dependency('chapter','equation'); | |
51 | &remove_dependency('chapter','footnote'); | |
52 | &remove_dependency('chapter','figure'); | |
53 | &remove_dependency('chapter','table'); | |
54 | ||
55 | delete ($depends_on{'equation'}) if (exists ($depends_on{'equation'})); | |
56 | delete ($depends_on{'footnote'}) if (exists ($depends_on{'footnote'})); | |
57 | delete ($depends_on{'figure'}) if (exists ($depends_on{'figure'})); | |
58 | delete ($depends_on{'table'}) if (exists ($depends_on{'table'})); | |
59 | ||
60 | $styles_loaded{'memoir_article'} = 1; | |
61 | } | |
62 | ||
63 | sub do_cmd_thepart { | |
64 | join('', &do_cmd_Roman("${O}0${C}part${O}0$C"), ".", @_[0]) } | |
65 | ||
66 | sub do_cmd_thechapter { | |
67 | join('', &do_cmd_arabic("${O}0${C}chapter${O}0$C"), ".", @_[0]) } | |
68 | ||
69 | sub do_cmd_thesection { | |
70 | # Memoir seems to always prepend chapter number to sections | |
71 | # if ($styles_loaded{'memoir_article'}) { | |
72 | # join('', &do_cmd_arabic("${O}0${C}section${O}0$C"), @_[0]); | |
73 | # } else { | |
74 | join('', &translate_commands("\\thechapter"), | |
75 | &do_cmd_arabic("${O}0${C}section${O}0$C"), @_[0]); | |
76 | # } | |
77 | } | |
78 | ||
79 | sub do_cmd_thesubsection { | |
80 | join('', &translate_commands("\\thesection") | |
81 | ,".", &do_cmd_arabic("${O}0${C}subsection${O}0$C"), @_[0]) } | |
82 | ||
83 | sub do_cmd_thesubsubsection { | |
84 | join('', &translate_commands("\\thesubsection") | |
85 | ,".", &do_cmd_arabic("${O}0${C}subsubsection${O}0$C"), @_[0]) } | |
86 | ||
87 | sub do_cmd_theparagraph { | |
88 | join('', &translate_commands("\\thesubsubsection") | |
89 | ,".", &do_cmd_arabic("${O}0${C}paragraph${O}0$C"), @_[0]) } | |
90 | ||
91 | sub do_cmd_thesubparagraph { | |
92 | join('', &translate_commands("\\theparagraph") | |
93 | ,".", &do_cmd_arabic("${O}0${C}subparagraph${O}0$C"), @_[0]) } | |
94 | ||
95 | sub do_cmd_theequation { | |
96 | local($chap) = ''; | |
97 | $chap = &translate_commands("\\thechapter") | |
98 | unless ($styles_loaded{'memoir_article'}); | |
99 | join('', (($chap =~ /^(0\.)?$/)? '' : $chap) | |
100 | , &do_cmd_arabic("${O}0${C}equation${O}0$C"), @_[0]) } | |
101 | ||
102 | sub do_cmd_thefootnote { | |
103 | local($chap) = ''; | |
104 | # Memoir seems not to prepend chapter number to footnotes | |
105 | # $chap = &translate_commands("\\thechapter") | |
106 | # unless ($styles_loaded{'memoir_article'}); | |
107 | join('', (($chap =~ /^(0\.)?$/)? '' : $chap) | |
108 | , &do_cmd_arabic("${O}0${C}footnote${O}0$C"), @_[0]) } | |
109 | ||
110 | sub do_cmd_thefigure { | |
111 | local($chap) = ''; | |
112 | $chap = &translate_commands("\\thechapter") | |
113 | unless ($styles_loaded{'memoir_article'}); | |
114 | join('', (($chap =~ /^(0\.)?$/)? '' : $chap) | |
115 | , &do_cmd_arabic("${O}0${C}figure${O}0$C"), @_[0]) } | |
116 | ||
117 | sub do_cmd_thetable { | |
118 | local($chap) = ''; | |
119 | $chap = &translate_commands("\\thechapter") | |
120 | unless ($styles_loaded{'memoir_article'}); | |
121 | join('', (($chap =~ /^(0\.)?$/)? '' : $chap) | |
122 | , &do_cmd_arabic("${O}0${C}table${O}0$C"), @_[0]) } | |
123 | ||
124 | # bibliography title comes from \bibname | |
125 | sub make_bibliography_title { | |
126 | local($br_id, $title); | |
127 | if ((defined &do_cmd_bibname)||$new_command{'bibname'}) { | |
128 | $br_id=++$global{'max_id'}; | |
129 | $title = &translate_environments("$O$br_id$C\\bibname$O$br_id$C"); | |
130 | } else { $title = $bib_title } | |
131 | return $title; | |
132 | } | |
133 | ||
134 | # Memoir stimulates to use various adjustment commands which are related | |
135 | # to typography but completely unrelated to HTML. They have to be | |
136 | # explicitly ignored otherwise ugly numeric arguments may be left as text. | |
137 | &ignore_commands (<<_IGNORED_CMDS_); | |
138 | setstocksize # {} # {} | |
139 | settrims # {} # {} | |
140 | settrimmedsize # {} # {} # {} | |
141 | settypeblocksize # {} # {} # {} | |
142 | setlrmargins # {} # {} # {} | |
143 | setlrmarginsandblock # {} # {} # {} | |
144 | setulmargins # {} # {} # {} | |
145 | setulmarginsandblock # {} # {} # {} | |
146 | setbinding # {} | |
147 | setcolsepandrule # {} # {} | |
148 | setheadfoot # {} # {} | |
149 | setheaderspaces # {} # {} # {} | |
150 | setmarginnotes # {} # {} # {} | |
151 | setfootins # {} # {} | |
152 | checkthelayout # [] | |
153 | fixthelayout | |
154 | fixpdflayout | |
155 | fixdvipslayout | |
156 | checkandfixthelayout # [] | |
157 | typeoutlayout | |
158 | typeoutstandardlayout | |
159 | settypeoutlayoutunit # {} | |
160 | medievalpage # [] | |
161 | isopage # [] | |
162 | semiisopage # [] | |
163 | setpagebl # {} # {} # {} | |
164 | setpageml # {} # {} # {} | |
165 | setpagetl # {} # {} # {} | |
166 | setpagetm # {} # {} # {} | |
167 | setpagetr # {} # {} # {} | |
168 | setpagemr # {} # {} # {} | |
169 | setpagebr # {} # {} # {} | |
170 | setpagebm # {} # {} # {} | |
171 | setpagecc # {} # {} # {} | |
172 | _IGNORED_CMDS_ | |
173 | ||
174 | # These are ignored for now but may be implemented later to some extent | |
175 | &ignore_commands (<<_IGNORED_CMDS_); | |
176 | settocdepth # {} | |
177 | maxtocdepth # {} | |
178 | setsecnumdepth # {} | |
179 | maxsecnumdepth # {} | |
180 | addtodef # {} # {} # {} | |
181 | addtoiargdef # {} # {} # {} | |
182 | makechapterstyle # {} # {} | |
183 | chapterstyle # {} | |
184 | _IGNORED_CMDS_ | |
185 | ||
186 | 1; # Must be last line |
118 | 118 | sub embed_display { |
119 | 119 | # cancel <BIG> tags when alignment inside subequations |
120 | 120 | return( join('', $ebig, @_[0], $sbig) ) |
121 | if ($outer_math && $subequation_level); | |
121 | if ($outer_math && $subequation_level > 1); | |
122 | 122 | # just return contents when alignment inside equation/multline |
123 | 123 | return(@_[0]) if $outer_math; |
124 | 124 | |
339 | 339 | local($outer_math) = $env unless ($outer_math); |
340 | 340 | |
341 | 341 | if ($failed) { |
342 | $latex_body .= join('', "\n\\setcounter{equation}{" | |
343 | , $global{'eqn_number'} , "}\n"); | |
344 | $_ .= "%EQNO:".$global{'eqn_number'}."\n"; | |
345 | $global{'eqn_number'}++; | |
342 | 346 | $_ = &process_undefined_environment( |
343 | 347 | 'multline'.(($numbered) ? '':"*"), $id, $saved); |
344 | 348 | $falign = (($EQN_TAGS =~ /L/)? 'LEFT' : 'RIGHT') if $numbered; |
0 | # -*- perl -*- | |
1 | # | |
2 | # $Id: $ | |
3 | # | |
4 | # nameref.perl | |
5 | # Georgy Salnikov <sge@nmr.nioch.nsc.ru> 02/01/21 | |
6 | # | |
7 | # Extension to LaTeX2HTML V2020 to support the "nameref" package | |
8 | # | |
9 | # $Log: $ | |
10 | # | |
11 | # Note: | |
12 | # This package provides formatting references with section name | |
13 | # but without section number. The support is extremely primitive. | |
14 | ||
15 | package main; | |
16 | ||
17 | # for debugging only | |
18 | #print "\nUsing nameref.perl\n"; | |
19 | ||
20 | # &process_ref does everything... | |
21 | sub do_cmd_nameref { | |
22 | local($_) = @_; | |
23 | &process_ref($cross_ref_mark, $name_ref_mark); | |
24 | } | |
25 | ||
26 | sub do_cmd_Nameref { | |
27 | local($arg) = @_; | |
28 | join('', "'", &do_cmd_nameref($arg), "' on page ", &do_cmd_pageref($arg)); | |
29 | } | |
30 | ||
31 | &process_commands_wrap_deferred (<<_RAW_ARG_DEFERRED_CMDS_); | |
32 | nameref # {} | |
33 | Nameref # {} | |
34 | _RAW_ARG_DEFERRED_CMDS_ | |
35 | ||
36 | 1; # Must be last line |
0 | # -*- perl -*- | |
1 | # | |
2 | # $Id: $ | |
3 | # | |
4 | # nomencl.perl | |
5 | # Georgy Salnikov <sge@nmr.nioch.nsc.ru> 27/12/20 | |
6 | # | |
7 | # Extension to LaTeX2HTML V2020 to partly support the "nomencl" package | |
8 | # | |
9 | # $Log: $ | |
10 | # | |
11 | # Note: | |
12 | # This module provides reading and translation of the nomenclature (.nls) file | |
13 | # generated by makeindex from the .nlo file (the latter being created by LaTeX) | |
14 | # makeindex <file>.nlo -s nomencl.ist -o <file>.nls | |
15 | # | |
16 | # The commands \makenomenclature and \nomenclature are taken into account by | |
17 | # LaTeX and silently ignored by this module as the result only is interpreted. | |
18 | # | |
19 | # thenomenclature environment generated by makeindex contains the commands | |
20 | # \nomgroup, \nomeqref, \nompageref which are also ignored. | |
21 | # | |
22 | # Package option [intoc] and the \nomname definition are taken into account | |
23 | # by \printnomenclature to ensure generation of proper heading and segmenting. | |
24 | # | |
25 | # The rest of the nomencl package is not yet implemented. | |
26 | ||
27 | package main; | |
28 | ||
29 | # for debugging only | |
30 | #print "\nUsing nomencl.perl\n"; | |
31 | ||
32 | # Just mark the existence of the option for the later checking | |
33 | sub do_nomencl_intoc { | |
34 | $styles_loaded{'nomencl_intoc'} = 1; | |
35 | } | |
36 | ||
37 | # Explicitly cancel the default option | |
38 | sub do_nomencl_notintoc { | |
39 | delete ($styles_loaded{'nomencl_intoc'}) | |
40 | if (exists ($styles_loaded{'nomencl_intoc'})); | |
41 | } | |
42 | ||
43 | # .nls file is very similar to a \begin{description} environment | |
44 | sub do_env_thenomenclature { | |
45 | local($_) = @_; | |
46 | ||
47 | # # The following 3 function calls would yield a compact list | |
48 | # $_ = &list_helper($_, 'DL'); | |
49 | # $_ = &translate_environments($_); | |
50 | # $_ = &translate_commands($_); | |
51 | ||
52 | # The following generates a list similar to description environment | |
53 | # Evtl catch nested lists | |
54 | &protect_useritems($_); | |
55 | ||
56 | s/\n?$item_description_rx\s*($labels_rx8)?\s*/"\n<\/DD>\n<DT>" . | |
57 | (($9) ? "<A ID=\"$9\">$1<\/A>" : $1) . "<\/DT>\n<DD>"/egm; | |
58 | ||
59 | $_ = &translate_environments($_); | |
60 | $_ = &translate_commands($_); | |
61 | ||
62 | # just for safety in case the description is empty ... | |
63 | s/\n?\\item\b\s*([^$letters\\]|)\s*/\n<\/DD>\n<DT><\/DT>\n<DD>$1/gm; | |
64 | s/^\s+//m; | |
65 | ||
66 | # Wrap the whole description with the appropriate opening/closing tags | |
67 | $_ = '<DD>'.$_ unless ($_ =~ s/^\s*<\/D(T|D)>\n?//s); | |
68 | $_ =~ s/\n$//s; | |
69 | "<DL>\n$_\n</DD>\n</DL>"; | |
70 | } | |
71 | ||
72 | # Generate nomenclature with heading and optional sectioning | |
73 | sub do_cmd_printnomenclature { | |
74 | local($_) = @_; | |
75 | ||
76 | local($dum1, $dum2, $after); | |
77 | ($dum1,$dum2) = &get_next_optional_argument; # discard optional argument | |
78 | $after = $_; | |
79 | ||
80 | # Make the appropriate heading | |
81 | local($br_id, $title); | |
82 | if ((defined &do_cmd_nomname) || $new_command{'nomname'}) { | |
83 | $br_id = ++$global{'max_id'}; | |
84 | $title = &translate_environments("$O$br_id$C\\nomname$O$br_id$C"); | |
85 | } else { $title = $nom_title; } | |
86 | $nomfile = $CURRENT_FILE; # sets $nomfile this globally | |
87 | ||
88 | # Ensure also segmenting if intoc requested | |
89 | $toc_sec_title = $TITLE = $title if ($styles_loaded{'nomencl_intoc'}); | |
90 | ||
91 | # Load and interpret .nls file | |
92 | local($EXTERNAL_FILE) = ''; | |
93 | unless (&process_ext_file('nls')) { # *** BINDS $_ as a side effect *** | |
94 | print "\nCannot open $FILE.nls: $!\n"; | |
95 | &write_warnings("\nThe nomenclature file was not found."); | |
96 | $_ = "\n<H2>No Nomenclature!</H2>\n"; | |
97 | } | |
98 | ||
99 | # Put the result in the right place | |
100 | local($closures,$reopens) = &preserve_open_tags(); | |
101 | join('', "<BR>\n", $closures, | |
102 | &make_section_heading($title, $section_headings{'nomenclature'}), | |
103 | $_, $reopens, $after); | |
104 | } | |
105 | ||
106 | ## Discard all arguments, the following white space and possible paragraphs. | |
107 | ## Simple ignoration leaves repeated unnecessary <P>'s. | |
108 | ## Changed to a special ignoration followed by regular expression. | |
109 | ## Left here in commented out form just for reference/debugging. | |
110 | #sub do_cmd_nomenclature { | |
111 | # local($_) = @_; | |
112 | # | |
113 | # local($dum1, $dum2); | |
114 | # ($dum1,$dum2) = &get_next_optional_argument; | |
115 | # $dum1 = &missing_braces unless ( | |
116 | # (s/$next_pair_pr_rx/$option=$2;''/eo) | |
117 | # ||(s/$next_pair_rx/$option=$2;''/eo)); | |
118 | # $dum2 = &missing_braces unless ( | |
119 | # (s/$next_pair_pr_rx/$option=$2;''/eo) | |
120 | # ||(s/$next_pair_rx/$option=$2;''/eo)); | |
121 | # s/^(\s*<P>)*\s*/\n/; | |
122 | # | |
123 | # $_; | |
124 | #} | |
125 | ||
126 | &ignore_commands (<<_IGNORED_CMDS_); | |
127 | makenomenclature | |
128 | nomenclature # [] # {} # {} # s/^(\\s*<P>)*\\s*/\\n/; | |
129 | nomgroup # {} | |
130 | nomeqref # {} | |
131 | nompageref # {} | |
132 | nomrefeq | |
133 | nomrefpage | |
134 | nomrefeqpage | |
135 | nomnorefeq | |
136 | nomnorefpage | |
137 | nomnorefeqpage | |
138 | _IGNORED_CMDS_ | |
139 | ||
140 | &process_commands_wrap_deferred (<<_RAW_ARG_DEFERRED_CMDS_); | |
141 | printnomenclature # [] | |
142 | _RAW_ARG_DEFERRED_CMDS_ | |
143 | ||
144 | 1; # Must be last line |
33 | 33 | package main; |
34 | 34 | |
35 | 35 | if (defined &addto_languages) { &addto_languages('polski') }; |
36 | ||
37 | &do_require_extension('unicode'); | |
38 | 36 | |
39 | 37 | sub polski_titles { |
40 | 38 | # $toc_title = "Spis rzeczy"; |
14 | 14 | package main; |
15 | 15 | |
16 | 16 | if (defined &addto_languages) { &addto_languages('romanian') }; |
17 | ||
18 | &do_require_extension ('latin10'); | |
19 | 17 | |
20 | 18 | sub romanian_titles { |
21 | 19 | $toc_title = "Cuprins"; |
14 | 14 | package main; |
15 | 15 | |
16 | 16 | if (defined &addto_languages) { &addto_languages('slovak') }; |
17 | ||
18 | &do_require_extension ('latin2'); | |
19 | 17 | |
20 | 18 | sub slovak_titles { |
21 | 19 | $toc_title = "Obsah"; |
0 | %!PS-Adobe-2.0 EPSF-2.0 | |
1 | %%Title: allpasses.fig | |
2 | %%Creator: fig2dev Version 3.2 Patchlevel 4 | |
3 | %%CreationDate: Thu Apr 1 17:47:33 2004 | |
4 | %%For: gary@Monk.local. (Gary Scavone) | |
5 | %%BoundingBox: 0 0 740 110 | |
6 | %%Magnification: 1.0000 | |
7 | %%EndComments | |
8 | /$F2psDict 200 dict def | |
9 | $F2psDict begin | |
10 | $F2psDict /mtrx matrix put | |
11 | /col-1 {0 setgray} bind def | |
12 | /col0 {0.000 0.000 0.000 srgb} bind def | |
13 | /col1 {0.000 0.000 1.000 srgb} bind def | |
14 | /col2 {0.000 1.000 0.000 srgb} bind def | |
15 | /col3 {0.000 1.000 1.000 srgb} bind def | |
16 | /col4 {1.000 0.000 0.000 srgb} bind def | |
17 | /col5 {1.000 0.000 1.000 srgb} bind def | |
18 | /col6 {1.000 1.000 0.000 srgb} bind def | |
19 | /col7 {1.000 1.000 1.000 srgb} bind def | |
20 | /col8 {0.000 0.000 0.560 srgb} bind def | |
21 | /col9 {0.000 0.000 0.690 srgb} bind def | |
22 | /col10 {0.000 0.000 0.820 srgb} bind def | |
23 | /col11 {0.530 0.810 1.000 srgb} bind def | |
24 | /col12 {0.000 0.560 0.000 srgb} bind def | |
25 | /col13 {0.000 0.690 0.000 srgb} bind def | |
26 | /col14 {0.000 0.820 0.000 srgb} bind def | |
27 | /col15 {0.000 0.560 0.560 srgb} bind def | |
28 | /col16 {0.000 0.690 0.690 srgb} bind def | |
29 | /col17 {0.000 0.820 0.820 srgb} bind def | |
30 | /col18 {0.560 0.000 0.000 srgb} bind def | |
31 | /col19 {0.690 0.000 0.000 srgb} bind def | |
32 | /col20 {0.820 0.000 0.000 srgb} bind def | |
33 | /col21 {0.560 0.000 0.560 srgb} bind def | |
34 | /col22 {0.690 0.000 0.690 srgb} bind def | |
35 | /col23 {0.820 0.000 0.820 srgb} bind def | |
36 | /col24 {0.500 0.190 0.000 srgb} bind def | |
37 | /col25 {0.630 0.250 0.000 srgb} bind def | |
38 | /col26 {0.750 0.380 0.000 srgb} bind def | |
39 | /col27 {1.000 0.500 0.500 srgb} bind def | |
40 | /col28 {1.000 0.630 0.630 srgb} bind def | |
41 | /col29 {1.000 0.750 0.750 srgb} bind def | |
42 | /col30 {1.000 0.880 0.880 srgb} bind def | |
43 | /col31 {1.000 0.840 0.000 srgb} bind def | |
44 | ||
45 | end | |
46 | save | |
47 | newpath 0 110 moveto 0 0 lineto 740 0 lineto 740 110 lineto closepath clip newpath | |
48 | -17.3 144.7 translate | |
49 | 1 -1 scale | |
50 | ||
51 | /cp {closepath} bind def | |
52 | /ef {eofill} bind def | |
53 | /gr {grestore} bind def | |
54 | /gs {gsave} bind def | |
55 | /sa {save} bind def | |
56 | /rs {restore} bind def | |
57 | /l {lineto} bind def | |
58 | /m {moveto} bind def | |
59 | /rm {rmoveto} bind def | |
60 | /n {newpath} bind def | |
61 | /s {stroke} bind def | |
62 | /sh {show} bind def | |
63 | /slc {setlinecap} bind def | |
64 | /slj {setlinejoin} bind def | |
65 | /slw {setlinewidth} bind def | |
66 | /srgb {setrgbcolor} bind def | |
67 | /rot {rotate} bind def | |
68 | /sc {scale} bind def | |
69 | /sd {setdash} bind def | |
70 | /ff {findfont} bind def | |
71 | /sf {setfont} bind def | |
72 | /scf {scalefont} bind def | |
73 | /sw {stringwidth} bind def | |
74 | /tr {translate} bind def | |
75 | /tnt {dup dup currentrgbcolor | |
76 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | |
77 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add | |
78 | 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} | |
79 | bind def | |
80 | /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul | |
81 | 4 -2 roll mul srgb} bind def | |
82 | /DrawEllipse { | |
83 | /endangle exch def | |
84 | /startangle exch def | |
85 | /yrad exch def | |
86 | /xrad exch def | |
87 | /y exch def | |
88 | /x exch def | |
89 | /savematrix mtrx currentmatrix def | |
90 | x y tr xrad yrad sc 0 0 1 startangle endangle arc | |
91 | closepath | |
92 | savematrix setmatrix | |
93 | } def | |
94 | ||
95 | /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def | |
96 | /$F2psEnd {$F2psEnteredState restore end} def | |
97 | ||
98 | $F2psBegin | |
99 | 10 setmiterlimit | |
100 | 0 slj 0 slc | |
101 | 0.06000 0.06000 sc | |
102 | % | |
103 | % Fig objects follow | |
104 | % | |
105 | % | |
106 | % here starts figure with depth 50 | |
107 | % Polyline | |
108 | 7.500 slw | |
109 | gs clippath | |
110 | 915 1530 m 915 1470 l 764 1470 l 884 1500 l 764 1530 l cp | |
111 | eoclip | |
112 | n 300 1500 m | |
113 | 900 1500 l gs col0 s gr gr | |
114 | ||
115 | % arrowhead | |
116 | n 764 1530 m 884 1500 l 764 1470 l 764 1530 l cp gs 0.00 setgray ef gr col0 s | |
117 | % Polyline | |
118 | 30.000 slw | |
119 | n 4950 1500 m | |
120 | 5250 1500 l gs col0 s gr | |
121 | % Ellipse | |
122 | 7.500 slw | |
123 | n 5100 1500 300 300 0 360 DrawEllipse gs col0 s gr | |
124 | ||
125 | % Polyline | |
126 | 30.000 slw | |
127 | n 7800 1350 m | |
128 | 7800 1650 l gs col0 s gr | |
129 | % Polyline | |
130 | n 7650 1500 m | |
131 | 7950 1500 l gs col0 s gr | |
132 | % Ellipse | |
133 | 7.500 slw | |
134 | n 7800 1500 300 300 0 360 DrawEllipse gs col0 s gr | |
135 | ||
136 | % Polyline | |
137 | n 6000 1200 m 6900 1200 l 6900 1800 l 6000 1800 l | |
138 | cp gs col0 s gr | |
139 | % Polyline | |
140 | n 6600 2100 m 6600 2400 l 6300 2250 l 6600 2100 l | |
141 | cp gs col0 s gr | |
142 | % Polyline | |
143 | n 6300 600 m 6300 900 l 6600 750 l 6300 600 l | |
144 | cp gs col0 s gr | |
145 | % Polyline | |
146 | gs clippath | |
147 | 6015 1530 m 6015 1470 l 5864 1470 l 5984 1500 l 5864 1530 l cp | |
148 | eoclip | |
149 | n 5400 1500 m | |
150 | 6000 1500 l gs col0 s gr gr | |
151 | ||
152 | % arrowhead | |
153 | n 5864 1530 m 5984 1500 l 5864 1470 l 5864 1530 l cp gs 0.00 setgray ef gr col0 s | |
154 | % Polyline | |
155 | gs clippath | |
156 | 7515 1530 m 7515 1470 l 7364 1470 l 7484 1500 l 7364 1530 l cp | |
157 | eoclip | |
158 | n 6900 1500 m | |
159 | 7500 1500 l gs col0 s gr gr | |
160 | ||
161 | % arrowhead | |
162 | n 7364 1530 m 7484 1500 l 7364 1470 l 7364 1530 l cp gs 0.00 setgray ef gr col0 s | |
163 | % Polyline | |
164 | gs clippath | |
165 | 8715 1530 m 8715 1470 l 8564 1470 l 8684 1500 l 8564 1530 l cp | |
166 | eoclip | |
167 | n 8100 1500 m | |
168 | 8700 1500 l gs col0 s gr gr | |
169 | ||
170 | % arrowhead | |
171 | n 8564 1530 m 8684 1500 l 8564 1470 l 8564 1530 l cp gs 0.00 setgray ef gr col0 s | |
172 | % Polyline | |
173 | gs clippath | |
174 | 5130 1785 m 5070 1785 l 5070 1936 l 5100 1816 l 5130 1936 l cp | |
175 | eoclip | |
176 | n 6300 2250 m 5100 2250 l | |
177 | 5100 1800 l gs col0 s gr gr | |
178 | ||
179 | % arrowhead | |
180 | n 5130 1936 m 5100 1816 l 5070 1936 l 5130 1936 l cp gs 0.00 setgray ef gr col0 s | |
181 | % Polyline | |
182 | gs clippath | |
183 | 7770 1215 m 7830 1215 l 7830 1064 l 7800 1184 l 7770 1064 l cp | |
184 | eoclip | |
185 | n 6600 750 m 7800 750 l | |
186 | 7800 1200 l gs col0 s gr gr | |
187 | ||
188 | % arrowhead | |
189 | n 7770 1064 m 7800 1184 l 7830 1064 l 7770 1064 l cp gs 0.00 setgray ef gr col0 s | |
190 | % Polyline | |
191 | n 5700 1500 m 5700 750 l | |
192 | 6300 750 l gs col0 s gr | |
193 | % Polyline | |
194 | n 7200 1500 m 7200 2250 l | |
195 | 6600 2250 l gs col0 s gr | |
196 | % Polyline | |
197 | 30.000 slw | |
198 | n 9000 1350 m | |
199 | 9000 1650 l gs col0 s gr | |
200 | % Polyline | |
201 | n 8850 1500 m | |
202 | 9150 1500 l gs col0 s gr | |
203 | % Ellipse | |
204 | 7.500 slw | |
205 | n 9000 1500 300 300 0 360 DrawEllipse gs col0 s gr | |
206 | ||
207 | % Polyline | |
208 | 30.000 slw | |
209 | n 11700 1350 m | |
210 | 11700 1650 l gs col0 s gr | |
211 | % Polyline | |
212 | n 11550 1500 m | |
213 | 11850 1500 l gs col0 s gr | |
214 | % Ellipse | |
215 | 7.500 slw | |
216 | n 11700 1500 300 300 0 360 DrawEllipse gs col0 s gr | |
217 | ||
218 | % Polyline | |
219 | n 9900 1200 m 10800 1200 l 10800 1800 l 9900 1800 l | |
220 | cp gs col0 s gr | |
221 | % Polyline | |
222 | n 10500 2100 m 10500 2400 l 10200 2250 l 10500 2100 l | |
223 | cp gs col0 s gr | |
224 | % Polyline | |
225 | n 10200 600 m 10200 900 l 10500 750 l 10200 600 l | |
226 | cp gs col0 s gr | |
227 | % Polyline | |
228 | gs clippath | |
229 | 9915 1530 m 9915 1470 l 9764 1470 l 9884 1500 l 9764 1530 l cp | |
230 | eoclip | |
231 | n 9300 1500 m | |
232 | 9900 1500 l gs col0 s gr gr | |
233 | ||
234 | % arrowhead | |
235 | n 9764 1530 m 9884 1500 l 9764 1470 l 9764 1530 l cp gs 0.00 setgray ef gr col0 s | |
236 | % Polyline | |
237 | gs clippath | |
238 | 11415 1530 m 11415 1470 l 11264 1470 l 11384 1500 l 11264 1530 l cp | |
239 | eoclip | |
240 | n 10800 1500 m | |
241 | 11400 1500 l gs col0 s gr gr | |
242 | ||
243 | % arrowhead | |
244 | n 11264 1530 m 11384 1500 l 11264 1470 l 11264 1530 l cp gs 0.00 setgray ef gr col0 s | |
245 | % Polyline | |
246 | gs clippath | |
247 | 12615 1530 m 12615 1470 l 12464 1470 l 12584 1500 l 12464 1530 l cp | |
248 | eoclip | |
249 | n 12000 1500 m | |
250 | 12600 1500 l gs col0 s gr gr | |
251 | ||
252 | % arrowhead | |
253 | n 12464 1530 m 12584 1500 l 12464 1470 l 12464 1530 l cp gs 0.00 setgray ef gr col0 s | |
254 | % Polyline | |
255 | gs clippath | |
256 | 9030 1785 m 8970 1785 l 8970 1936 l 9000 1816 l 9030 1936 l cp | |
257 | eoclip | |
258 | n 10200 2250 m 9000 2250 l | |
259 | 9000 1800 l gs col0 s gr gr | |
260 | ||
261 | % arrowhead | |
262 | n 9030 1936 m 9000 1816 l 8970 1936 l 9030 1936 l cp gs 0.00 setgray ef gr col0 s | |
263 | % Polyline | |
264 | gs clippath | |
265 | 11670 1215 m 11730 1215 l 11730 1064 l 11700 1184 l 11670 1064 l cp | |
266 | eoclip | |
267 | n 10500 750 m 11700 750 l | |
268 | 11700 1200 l gs col0 s gr gr | |
269 | ||
270 | % arrowhead | |
271 | n 11670 1064 m 11700 1184 l 11730 1064 l 11670 1064 l cp gs 0.00 setgray ef gr col0 s | |
272 | % Polyline | |
273 | n 9600 1500 m 9600 750 l | |
274 | 10200 750 l gs col0 s gr | |
275 | % Polyline | |
276 | n 11100 1500 m 11100 2250 l | |
277 | 10500 2250 l gs col0 s gr | |
278 | % Polyline | |
279 | 30.000 slw | |
280 | n 1200 1350 m | |
281 | 1200 1650 l gs col0 s gr | |
282 | % Polyline | |
283 | n 1050 1500 m | |
284 | 1350 1500 l gs col0 s gr | |
285 | % Ellipse | |
286 | 7.500 slw | |
287 | n 1200 1500 300 300 0 360 DrawEllipse gs col0 s gr | |
288 | ||
289 | % Polyline | |
290 | 30.000 slw | |
291 | n 3900 1350 m | |
292 | 3900 1650 l gs col0 s gr | |
293 | % Polyline | |
294 | n 3750 1500 m | |
295 | 4050 1500 l gs col0 s gr | |
296 | % Ellipse | |
297 | 7.500 slw | |
298 | n 3900 1500 300 300 0 360 DrawEllipse gs col0 s gr | |
299 | ||
300 | % Polyline | |
301 | n 2100 1200 m 3000 1200 l 3000 1800 l 2100 1800 l | |
302 | cp gs col0 s gr | |
303 | % Polyline | |
304 | n 2700 2100 m 2700 2400 l 2400 2250 l 2700 2100 l | |
305 | cp gs col0 s gr | |
306 | % Polyline | |
307 | n 2400 600 m 2400 900 l 2700 750 l 2400 600 l | |
308 | cp gs col0 s gr | |
309 | % Polyline | |
310 | gs clippath | |
311 | 2115 1530 m 2115 1470 l 1964 1470 l 2084 1500 l 1964 1530 l cp | |
312 | eoclip | |
313 | n 1500 1500 m | |
314 | 2100 1500 l gs col0 s gr gr | |
315 | ||
316 | % arrowhead | |
317 | n 1964 1530 m 2084 1500 l 1964 1470 l 1964 1530 l cp gs 0.00 setgray ef gr col0 s | |
318 | % Polyline | |
319 | gs clippath | |
320 | 3615 1530 m 3615 1470 l 3464 1470 l 3584 1500 l 3464 1530 l cp | |
321 | eoclip | |
322 | n 3000 1500 m | |
323 | 3600 1500 l gs col0 s gr gr | |
324 | ||
325 | % arrowhead | |
326 | n 3464 1530 m 3584 1500 l 3464 1470 l 3464 1530 l cp gs 0.00 setgray ef gr col0 s | |
327 | % Polyline | |
328 | gs clippath | |
329 | 4815 1530 m 4815 1470 l 4664 1470 l 4784 1500 l 4664 1530 l cp | |
330 | eoclip | |
331 | n 4200 1500 m | |
332 | 4800 1500 l gs col0 s gr gr | |
333 | ||
334 | % arrowhead | |
335 | n 4664 1530 m 4784 1500 l 4664 1470 l 4664 1530 l cp gs 0.00 setgray ef gr col0 s | |
336 | % Polyline | |
337 | gs clippath | |
338 | 1230 1785 m 1170 1785 l 1170 1936 l 1200 1816 l 1230 1936 l cp | |
339 | eoclip | |
340 | n 2400 2250 m 1200 2250 l | |
341 | 1200 1800 l gs col0 s gr gr | |
342 | ||
343 | % arrowhead | |
344 | n 1230 1936 m 1200 1816 l 1170 1936 l 1230 1936 l cp gs 0.00 setgray ef gr col0 s | |
345 | % Polyline | |
346 | gs clippath | |
347 | 3870 1215 m 3930 1215 l 3930 1064 l 3900 1184 l 3870 1064 l cp | |
348 | eoclip | |
349 | n 2700 750 m 3900 750 l | |
350 | 3900 1200 l gs col0 s gr gr | |
351 | ||
352 | % arrowhead | |
353 | n 3870 1064 m 3900 1184 l 3930 1064 l 3870 1064 l cp gs 0.00 setgray ef gr col0 s | |
354 | % Polyline | |
355 | n 1800 1500 m 1800 750 l | |
356 | 2400 750 l gs col0 s gr | |
357 | % Polyline | |
358 | n 3300 1500 m 3300 2250 l | |
359 | 2700 2250 l gs col0 s gr | |
360 | % Polyline | |
361 | 30.000 slw | |
362 | n 5100 1350 m | |
363 | 5100 1650 l gs col0 s gr | |
364 | % here ends figure; | |
365 | $F2psEnd | |
366 | rs | |
367 | showpage |
0 | \documentclass[10pt]{book} | |
0 | \documentclass[10pt]{article} | |
1 | 1 | \usepackage{amsmath} % removing this bypasses the problem |
2 | 2 | \begin{document} |
3 | 3 | \begin{equation} % Using \[ instead is ok |
34 | 34 | + c ) |
35 | 35 | \end{multline} |
36 | 36 | |
37 | \begin{subequations} | |
38 | \begin{align} | |
39 | \label{eq:mandelstam_s} | |
40 | s & \equiv (P_1 + P_2)^2 \\ | |
41 | \label{eq:mandelstam_t} | |
42 | t & \equiv (P_1 - P_3)^2 \\ | |
43 | \label{eq:mandelstam_u} | |
44 | u & \equiv (P_1 - P_4)^2 | |
45 | \end{align} | |
46 | \begin{subequations} | |
47 | \begin{align} | |
48 | a^2 + b^2 = c^2 | |
49 | \end{align} | |
50 | \end{subequations} | |
51 | \end{subequations} | |
52 | Next an align environment: | |
53 | \begin{align} | |
54 | s & \equiv (P_1 + P_2)^2 \\ | |
55 | t & \equiv (P_1 - P_3)^2 \\ | |
56 | u & \equiv (P_1 - P_4)^2 | |
57 | \end{align} | |
58 | ||
59 | ba%comment | |
60 | nana | |
61 | ||
62 | ba%comment followed by space | |
63 | nana | |
64 | ||
65 | ba %comment preceded by space | |
66 | nana | |
67 | ||
68 | % the comment was causing the picture to disappear | |
69 | \begin{figure} | |
70 | \centering | |
71 | \setlength{\unitlength}{0.5mm} | |
72 | % | |
73 | % \begin{picture}(130,100) | |
74 | % \end{picture} | |
75 | \begin{picture}(60,100) | |
76 | % \put(0,0){\framebox(60,100){}} | |
77 | \put(5,5){\makebox(0,0)[c]{a)}} | |
78 | \put(20,50){\vector(0,1){50}} | |
79 | \put(20,50){\vector(0,-1){50}} | |
80 | % | |
81 | \put(45,50){\makebox(0,0)[c]{$\vec{P}=\vec{0}, M$}} | |
82 | \put(35,75){\makebox(0,0)[c]{$\vec{p}_1, m_1$}} | |
83 | \put(35,25){\makebox(0,0)[c]{$\vec{p}_2, m_2$}} | |
84 | \thinlines | |
85 | \put(20,50){\circle*{15}} | |
86 | \end{picture}\hfill% | |
87 | \end{figure} | |
37 | 88 | |
38 | 89 | \end{document} |
0 | \documentclass{article} | |
1 | \usepackage{html,epsfig} | |
2 | \usepackage{graphicx,color,natbib} | |
3 | \usepackage[margin=1in]{geometry} | |
4 | \setlength{\unitlength}{1in} | |
5 | ||
6 | \begin{document} | |
7 | ||
8 | \begin{figure}[hbt] | |
9 | \begin{center} | |
10 | \begin{picture}(7,1.0) | |
11 | \put(0.28,0){\epsfig{file = allpasses.eps, width=6in}} | |
12 | \put(0,0.42){$x[n]$} | |
13 | \put(6.3,0.42){$y[n]$} | |
14 | \end{picture} | |
15 | \end{center} | |
16 | \caption{Test.} | |
17 | \end{figure} | |
18 | ||
19 | \end{document} |
13 | 13 | \begin{eqnarray} |
14 | 14 | a &=& 2(b+c) \\ |
15 | 15 | &=& 2b + 2c |
16 | \end{eqnarray}⏎ | |
16 | \end{eqnarray} | |
17 | ||
18 | Testing single variables: $a$, $b$, $c$. |
0 | \documentclass[10pt]{article} | |
1 | \usepackage[T1]{fontenc} | |
2 | \usepackage[utf8]{inputenc} | |
3 | \usepackage[english]{babel} | |
4 | ||
5 | % Testing longtitles option | |
6 | % | |
7 | % pdflatex longtitles (may be do it several times to be sure) | |
8 | % | |
9 | % latex2html -html_version 4.0 -local_icons longtitles.tex | |
10 | % Everything should be OK. There are several sections with duplicated names. | |
11 | % The duplications are intentional, to demonstrate the bug. | |
12 | % Notice section 1, subsections 1.1 and 1.2, | |
13 | % section 2, subsection 2.1, and section 3, subsection 3.1. | |
14 | % | |
15 | % rm -rf longtitles | |
16 | % latex2html -html_version 4.0 -local_icons -long_titles 5 longtitles.tex | |
17 | % Now you will not see sections 1 and 2 at all, and section 3 will be mess. | |
18 | % Moreover, repetitive clicking 'Next' in the browser will never reach the end. | |
19 | % This is because of mutual clobbering of duplicated HTML filenames. | |
20 | % | |
21 | % After applying the patch against titles duplication | |
22 | % the -long_titles option should work correctly: | |
23 | % the sequential numbers will be added to the duplicated filenames | |
24 | % starting from #2. | |
25 | ||
26 | \begin{document} | |
27 | ||
28 | \tableofcontents | |
29 | ||
30 | \section{Some basic stuff with very long first section name} | |
31 | ||
32 | This is some simple text, from section \thesection{} Some basic stuff | |
33 | with very long first section name. | |
34 | ||
35 | \subsection{Fonts} | |
36 | ||
37 | This subsections has some fonts, from section \thesection{}, | |
38 | subsection \thesubsection{} Fonts. | |
39 | ||
40 | \subsection{Lists} | |
41 | ||
42 | This subsections has some lists, from section \thesection{}, | |
43 | subsection \thesubsection{} Lists. | |
44 | ||
45 | \section{Some basic stuff with very long second section name} | |
46 | ||
47 | This is some simple text, from section \thesection{} Some basic stuff | |
48 | with very long second section name. | |
49 | ||
50 | \subsection{Fonts} | |
51 | ||
52 | This subsections has some fonts, from section \thesection{}, | |
53 | subsection \thesubsection{} Fonts. | |
54 | ||
55 | \section{Some basic stuff with very long third section name} | |
56 | ||
57 | This is some simple text, from section \thesection{} Some basic stuff | |
58 | with very long third section name. | |
59 | ||
60 | \subsection{Lists} | |
61 | ||
62 | This subsections has some lists, from section \thesection{}, | |
63 | subsection \thesubsection{} Lists. | |
64 | ||
65 | \end{document} |
336 | 336 | {\sl sl |
337 | 337 | afksadjfklj j sdfkljk;al fjdfklsdj ljd;jds a;kljf kl jkldsj f} |
338 | 338 | |
339 | {\small small | |
340 | afksadjfklj j sdfkljk;al fjdfklsdj ljd;jds a;kljf kl jkldsj f} | |
339 | 341 | |
340 | 342 | |
341 | 343 | \end{document} |
67 | 67 | $cfg{'PNMROTATE'} = q|pnmrotate|; |
68 | 68 | $cfg{'PNMSCALE'} = q|pnmscale|; |
69 | 69 | $cfg{'PNMTOPNG'} = q|pnmtopng|; |
70 | $cfg{'PPMQUANT'} = q|ppmquant|; | |
70 | $cfg{'PNMQUANT'} = q|pnmquant|; | |
71 | 71 | $cfg{'PPMTOGIF'} = q|ppmtogif|; |
72 | 72 | $cfg{'PPMTOJPEG'} = q|ppmtojpeg|; |
73 | 73 | $cfg{'PREFIX'} = q|/tmp/TeXlive|; |
447 | 447 | $idx_title = "Предметный указатель"; |
448 | 448 | $ref_title = "Список литературы"; |
449 | 449 | $bib_title = "Литература"; |
450 | # $nom_title = "Список обозначений"; | |
451 | $nom_title = "Обозначения"; | |
450 | 452 | $abs_title = "Аннотация"; |
451 | 453 | $app_title = "Приложение"; |
452 | 454 | $pre_title = "Предисловие"; |
1718 | 1718 | $cmd = $&; |
1719 | 1719 | print "."; |
1720 | 1720 | print STDERR "$cmd" if ($VERBOSITY > 2); |
1721 | local($dum1, $dum2) = ($cmd, ''); | |
1722 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
1721 | 1723 | local($mtmp, $ctmp, $wtmp) = |
1722 | ("do_math_cmd_$cmd","do_cmd_$cmd", "wrap_cmd_$cmd"); | |
1724 | ("do_math_cmd_$dum1","do_cmd_$dum1", "wrap_cmd_$dum1"); | |
1723 | 1725 | if ($cmd =~/color/) { |
1724 | 1726 | do { |
1725 | 1727 | local($color_env,$inside_math) = ($color_env,1); |
42 | 42 | sub do_env_raggedright { &declared_env('flushleft', @_) } |
43 | 43 | sub do_env_raggedleft { &declared_env('flushright', @_) } |
44 | 44 | |
45 | sub do_cmd_centering { | |
46 | # MRO *opentags has no effect | |
47 | local($_)= @_; &declared_env('center', $_) } | |
48 | sub do_cmd_raggedright { | |
49 | # MRO *opentags has no effect | |
50 | local($_) = @_; &declared_env('flushleft', $_) } | |
51 | sub do_cmd_raggedleftt { | |
52 | # MRO *opentags has no effect | |
53 | local($_) = @_; &declared_env('flushright', $_) } | |
45 | # SGE: reimplemented via $declarations{$cmd} in &process_command | |
46 | #sub do_cmd_centering { | |
47 | # # MRO *opentags has no effect | |
48 | # local($_)= @_; &declared_env('center', $_) } | |
49 | #sub do_cmd_raggedright { | |
50 | # # MRO *opentags has no effect | |
51 | # local($_) = @_; &declared_env('flushleft', $_) } | |
52 | #sub do_cmd_raggedleft { | |
53 | # # MRO *opentags has no effect | |
54 | # local($_) = @_; &declared_env('flushright', $_) } | |
54 | 55 | |
55 | 56 | sub do_cmd_underline { |
56 | 57 | &styled_text_chunk('U','','text','decoration','underline','',@_)} |
40 | 40 | sub do_env_raggedright { &declared_env('flushleft', @_) } |
41 | 41 | sub do_env_raggedleft { &declared_env('flushright', @_) } |
42 | 42 | |
43 | sub do_cmd_centering { | |
44 | # MRO *opentags has no effect | |
45 | local($_)= @_; &declared_env('center', $_) } | |
46 | sub do_cmd_raggedright { | |
47 | # MRO *opentags has no effect | |
48 | local($_) = @_; &declared_env('flushleft', $_) } | |
49 | sub do_cmd_raggedleftt { | |
50 | # MRO *opentags has no effect | |
51 | local($_) = @_; &declared_env('flushright', $_) } | |
43 | # SGE: reimplemented via $declarations{$cmd} in &process_command | |
44 | #sub do_cmd_centering { | |
45 | # # MRO *opentags has no effect | |
46 | # local($_)= @_; &declared_env('center', $_) } | |
47 | #sub do_cmd_raggedright { | |
48 | # # MRO *opentags has no effect | |
49 | # local($_) = @_; &declared_env('flushleft', $_) } | |
50 | #sub do_cmd_raggedleft { | |
51 | # # MRO *opentags has no effect | |
52 | # local($_) = @_; &declared_env('flushright', $_) } | |
52 | 53 | |
53 | 54 | sub do_cmd_underline { |
54 | 55 | &styled_text_chunk('U','','text','decoration','underline','',@_)} |
15 | 15 | $declarations{'tiny'} = '<SPAN CLASS="TINY"></SPAN>'; |
16 | 16 | $declarations{'Tiny'} = '<SPAN CLASS="XTINY"></SPAN>'; |
17 | 17 | $declarations{'scriptsize'} = '<SPAN CLASS="SCRIPTSIZE"></SPAN>'; |
18 | $declarations{'small'} = '<SPAN CLASS="SPAN"></SPAN>'; | |
18 | $declarations{'small'} = '<SPAN CLASS="SMALL"></SPAN>'; | |
19 | 19 | $declarations{'Small'} = '<SPAN CLASS="FOOTNOTESIZE"></SPAN>'; |
20 | 20 | $declarations{'SMALL'} = '<SPAN CLASS="SCRIPTSIZE"></SPAN>'; |
21 | 21 | $declarations{'footnotesize'} = '<SPAN CLASS="FOOTNOTESIZE"></SPAN>'; |
430 | 430 | $ref_title = "Список литературы"; |
431 | 431 | # $ref_title = "Ссылки"; |
432 | 432 | $bib_title = "Литература"; |
433 | # $nom_title = "Список обозначений"; | |
434 | $nom_title = "Обозначения"; | |
433 | 435 | $abs_title = "Аннотация"; |
434 | 436 | $app_title = "Приложение"; |
435 | 437 | $pre_title = "Предисловие"; |
1797 | 1797 | $cmd = $&; |
1798 | 1798 | print "."; |
1799 | 1799 | print STDERR "$cmd" if ($VERBOSITY > 2); |
1800 | local($dum1, $dum2) = ($cmd, ''); | |
1801 | $dum1 = $cmd unless ($dum1 = &normalize($dum1, $dum2)); | |
1800 | 1802 | local($mtmp, $ctmp, $wtmp) = |
1801 | ("do_math_cmd_$cmd","do_cmd_$cmd", "wrap_cmd_$cmd"); | |
1803 | ("do_math_cmd_$dum1","do_cmd_$dum1", "wrap_cmd_$dum1"); | |
1802 | 1804 | if ($cmd =~/color/) { |
1803 | 1805 | do { |
1804 | 1806 | local($color_env,$inside_math) = ($color_env,1); |