diff --git a/README b/README new file mode 100644 index 0000000..b919eea --- /dev/null +++ b/README @@ -0,0 +1,29 @@ +$Id$ + +This tree contains files related to TUGboat, the main publication of the +TeX Users Group (https://tug.org/TUGboat). + +capsules - machine-readable summaries by issue, and the scripts to +generate the lists by title/author/keyword linked at +https://tug.org/TUGboat/contents.html. Also includes the scripts to +generate the information for DOI registration at Crossref. + +covers - support files for making the four cover pages -- front cover, +inside front cover, inside back cover, back cover, also known as c1 +through c4. + +hyphenex - support files for hyphenation exception list maintained by +Barbara Beeton. Releases posted at https://ctan.org/pkg/hyphenex. + +latex - the LaTeX class file, BibTeX style file, documentation, test files. +Releases posted at https://ctan.org/pkg/tugboat. + +misc - mainly small scripts for various production jobs, like checking +that all fonts are embedded, converting pdfs to grayscale, etc. + +plain - the plain package file tugboat.sty (confusingly named, but it +predates LaTeX) and documentation. Releases posted at +https://ctan.org/pkg/tugboat-plain. + +production - production configuration, list of all issues, and +documentation from our printing company. diff --git a/covers/Makefile b/covers/Makefile new file mode 100644 index 0000000..8f0cf70 --- /dev/null +++ b/covers/Makefile @@ -0,0 +1,107 @@ +# $Id$ +# Makefile for TUGboat covers. Public domain. + +tbn := $(shell sed -n 's,^.issueseqno=\([0-9]*\) .*$$,\1,p' ../tugboat.dates) +tb := tb$(tbn) +envvars = export TEXINPUTS=.:..: #; export TEXFONTS=../texmf/fonts//: +texfot = texfot +PDFTEX = $(envvars); $(texfot) pdftex --file-line-error +cp = cpread + +# We don't use ltugboat.cfg here, but it is what we touch in +# ../Makefile when building the whole issue. Seems safer to rebuild the +# covers too. +deps = ../tugboat.dates ../ltugboat.cfg #../calendar/lastpage.tex + +%.pdf: %.tex $(deps) + $(PDFTEX) '\nonstopmode\input $<' /dev/null + +.PRECIOUS: %.ps + +all: spine.pdf cover4.pdf titlepage.pdf cover1.pdf cover2.pdf $(c3_target) + +titlepage.pdf: $(tb)quote.tex tugboat.front +cover4.pdf: $(tb)cont.tex tugboat.front tubtocmac.tex +cover3.pdf: $(tb)cap.tex tubtocmac.tex +cover1.pdf: word-nobox.pdf press2.pdf # procdrawing.pdf + +# cover3a.pdf is copied to ../CADMUS/ to replace the two-page version. +cover3a.pdf: cover3.pdf cover3-crop.pdf + pdfselect 1 1 $< $@ + $(cp) $@ ../CADMUS/cover3.pdf + +# We want the complete.pdf that we post to have both the internal links +# on the toc pages, that we created in toclinks.pdf, and the external +# links within the issue.pdf, that were created per-article. +# +# So, we extract the linked toc pages from toclinks.pdf and combine them +# with the issue.pdf. Hans wrote a special feature into the context +# --extra=copy routine to support this, based on a Lua data file +# that we create per issue. +# +# See tb138prod.pdf for a published note about this. +$(tb)complete.pdf complete compl c: $(tb)cmplete.lua \ + toclinks.pdf ../CADMUS/issue.pdf + lmtxtub --extra=copy --template $< + mv context-extra.pdf $(tb)complete.pdf + c=$(tb)complete.pdf; du $$c #makes larger: ; ../ps2pdf-tub $$c; du $$c + $(cp) $(tb)complete.pdf ../webdir/ + +# the whole interior, with the toc pages prepended and appended, +# with internal links to the articles. +toclinks.pdf: toclinks.tex cover2.tex cover3.tex cover4.tex tubtocmac.tex \ + ../CADMUS/issue.pdf + $(PDFTEX) '$<' +% To: TUGboat Production team members +% +% traditionally, graphic is offset to the right, with +% space on the right equal to space at left of "tugboat" +% at top. also, graphic is usually [...] +% a bit more toward the bottom than centered. +% +\kern 12.4pc +\hfuzz=1pc \advance\hsize by \hfuzz +% +\rightline{% + \ifprocissue + \immediate\pdfximage height6in {procdrawing.pdf} + \else + \immediate\pdfximage height5in {press2.pdf} + \fi + \pdfrefximage\pdflastximage +} + +\vskip 0pt plus1filll + +% text at bottom, two lines. +\setbox\TestBox=\hbox{% + \boxit 1.5pc/.75pc, \volfont Volume \volno, + Number \issno, \issdt \PostIssno<} +% +\ifdim\wd\TestBox < .8\pagewd + \unhbox\TestBox +\else + \boxit 3pc/.75pc, + \vbox{\volfont \baselineskip=18pt + \let\Dash=\cr + \halign{#\hfil\cr + Volume \volno, Number \issno, \issdt \PostIssno \cr}}< +\fi +\end diff --git a/covers/cover2.tex b/covers/cover2.tex new file mode 100644 index 0000000..925dd44 --- /dev/null +++ b/covers/cover2.tex @@ -0,0 +1,233 @@ +% $Id$ +% cover2.tex - inside front cover of TUGboat. Public domain. + +\input tugboat.sty +\input ../tugboat.dates +\TUBfinal + +\def\rateyear{\the\year} +%\def\rateyear{\count255=\year\advance\count255 by 1 \the\count255} +\def\tug{\acro{TUG}} +\def\rtitle{} + +\def\USA{U\kern-.12em.\kern.04em S\kern-.06em.\kern.06em A\null.} + +\head * \TeX\ Users Group * + +\TUB\/ (\acro{ISSN} 0896-3207) is published by the\newline +\TUG{}. Web: |tug.org/TUGboat|. + +\bigskip \noindent {\bf Individual memberships} + +\noindent +\rateyear\ dues for individual members are as follows: + +\begingroup +\raggedstretch=.3\colwd +\raggedright +\hyphenpenalty=10000 +\item{\bull} Trial rate for new~members:~\$30. +\item{\bull} Regular~members:~\$105. +\item{\bull} Special~rate:~\$75. +\unskip\endgraf +\endgroup % end \raggedright +\noindent The special rate is available to students, seniors, and +citizens of countries with modest economies, as detailed on our web +site. +%Also, anyone joining or renewing before March~31 receives a +%\$20 discount: +%\item{\bull} Regular~members (early bird):~\$85. +%\item{\bull} Special~rate (early bird):~\$55. +Members may also choose to receive \TUB\ and other benefits +electronically, at a discount. All membership +options are described at {\tt tug.org/join}. + +Membership in the \TUG\ is for the calendar year, and includes all issues +of \TUB\/ for the year in which membership begins or is renewed, as well +as software distributions and other benefits. +Individual membership carries with +it such rights and responsibilities as voting in \acro{TUG} elections. +All the details are on the \acro{TUG} web site. + +\bigskip \noindent {\bf Journal subscriptions} + +\noindent \TUB\/ subscriptions (non-voting) are available to libraries +and other organizations or individuals for whom +memberships are either not appropriate or desired. +Subscriptions are delivered on a calendar year basis. +The subscription rate for +\rateyear\ is~\$115. + +\setbox\TestBox=\hbox{Category B:\enspace 99} +\def\Category #1: #2 - #3; #4; #5. {\noindent \hangindent\normalparindent + \hbox to\wd\TestBox{Category #1:\hfil#2} subscriptions\dash + educational \$#3;\penalty-20 \ % + non-educational \$#4; additional \$#5 each.} + +\bigskip \noindent {\bf Institutional memberships} + +\noindent Institutional membership is primarily a means of showing +continuing interest in and support for \TeX\ and \tug. It also +provides a discounted membership rate, site-wide electronic +access, and other benefits. For further information, see +|tug.org/instmem| or contact the \tug\ office. + +\bigskip \noindent {\bf Trademarks} + +\noindent +Many trademarked names appear in the pages of \TUB. If there is any +question about whether a name is or is not a trademark, prudence dictates +that it should be treated as if it is. + +% more space above this. +\vskip 0pt plus1filll \bigskip\bigskip\noindent +[printing date: qqqmonthname \the\year] + +\smallskip +\noindent Printed in \USA{} +\newcol + +\NoParIndent + +\def\1{\ifhmode\/\fi$^\ast$} +% \dag is too large; try to force it to be smaller; use \fivesy if necessary +%\def\2{$^{\hbox{$\scriptstyle\char"79$}}$} +\def\2{\/$^{\hbox{\fivesy\char"79}}$} +\def\3{\relax}%{\ifhmode\/\fi$^{+}$} % no business committee for ages +\def\person#1{{\def\\{, \it}\raggedstretch=.3\colwd\raggedright + \hyphenpenalty=10000 \exhyphenpenalty=10000 + \hangindent\normalparindent #1\endgraf }} + + + +\head * Board of Directors * + +\vskip-2pt +\person{Donald Knuth\\Ur~Wizard of \TeX-arcana\2} +% \1\3 on title of president, not name, since ex officio. +\person{Boris Veytsman\\President\1\3}% +\person{Arthur Rosendahl\1\3\\Vice President}% +\person{Karl Berry\1\3\\Treasurer}% +\person{Klaus H\"oppner\1\3\\Secretary}% +\person{Barbara Beeton}% \\\TUB~Editor}% +\person{Johannes Braams}% +\person{Paulo Cereda}% +\person{Kaja Christiansen}% +\person{Ulrike Fischer}% +\person{Jim Hef{}feron}% +\person{Frank Mittelbach}% +\person{Ross Moore}% +\person{Norbert Preining}% +%\person{Raymond Goucher\\Founding Executive Director\2} +\person{Raymond Goucher (1937--2019)\\ + \null\kern5.15em Founding Executive Director} +\person{Hermann Zapf (1918--2015)\\Wizard of Fonts} + +\smallskip +{\eightpoint\it\raggedright % + \1member of executive committee\break + \2honorary\endgraf} + +\smallskip +{\ninepoint +See |tug.org/board| for a roster of all past and present +board members, and other official positions. +\par} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bigskip +{\ninepoint +\setbox\TestBox=\hbox{Portland, \acro{OR} 97208-2311} +\line{% +\vtop{\hsize=\wd\TestBox +\obeylines +{\bf Addresses} +\smallskip + +%General correspondence, +%All correspondence, +%\leavevmode\qquad payments, parcels, +%\leavevmode\qquad etc. +%\leavevmode\qquad payments, etc. +\TeX\ Users Group +\POBox 2311 +Portland, \acro{OR} 97208-2311 +\USA{} + +\medskip +{\bf Telephone} ++1 503 223-9994 +%\vskip\baselineskip + +\medskip +{\bf Fax} ++1 815 301-3568 +%\vskip\baselineskip + +\medskip +{\bf Web} +|tug.org| +|tug.org/TUGboat| + +}\quad +\vtop{ +\rightskip=0pt plus\hsize +\hyphenpenalty=10000 +\NoBlackBoxes +\obeylines +{\bf Electronic mail} +\smallskip +General \rlap{correspondence,} +membership, \rlap{subscriptions:} +|office@tug.org| + +\medskip +Submissions \rlap{to \TUB,} +letters to \rlap{the Editor:} +|TUGboat@tug.org| + +\medskip +\TeX{}nical support, +public mailing list: +|support@tug.org| + +\medskip +Contact the +Board of \rlap{Directors:} +|board@tug.org| + +}\hss}} + +%\bigskip +%{\bf Have a suggestion? Problems not resolved?}\newline +%The \acro{TUG} Board wants to hear from you:\newline +%Please email |board@tug.org|. + +\vskip 0pt plus1filll %\bigskip\bigskip + +{\eightpoint +\parindent=0pt \parskip=4pt \raggedright +Copyright \copyright{} \the\year\ \TUG{}. + +Copyright to individual articles within this publication remains with +their authors, so the articles may not be reproduced, distributed or +translated without the authors'~permission. + +For the editorial and other material not ascribed to a particular +author, permission is granted to make and distribute verbatim copies +without royalty, in any medium, provided the copyright notice and this +permission notice are~preserved. + +Permission is also granted to make, copy and distribute translations +of such editorial material into another language, except that the \TUG{} +must approve translations of this permission notice itself. Lacking +such approval, the original English permission notice must be~included. +An information notice to the \TUB\ editors regarding such redistribution +is appreciated. + +%% copyright notice replaced 26 June 2003; text provided by Karl Berry +%% final sentence added 3 July 2022 by Barbara Beeton +} +\vfilneg +\end diff --git a/covers/cover3.tex b/covers/cover3.tex new file mode 100644 index 0000000..e8b4922 --- /dev/null +++ b/covers/cover3.tex @@ -0,0 +1,169 @@ +% $Id$ +% cover3.tex - inside back cover of TUGboat. Public domain. +% Output difficulty toc, optionally with page numbers as links. +% Occasionally this overflows to a second page, as in tb137. +% Then we have to handle things in an ad hoc manner. + +\input tubtocmac.tex +\input tugboat.cmn % tugboat.dates macros +\input tugboat.dates + +% our own page layout. +\nopagenumbers +\hoffset = 0pt +\voffset = -.6in +\vsize = 10in +\vfuzz = 2.5pt % don't worry too much + +\def\scriptfonts{% for the A in LaTeX + \scriptfont0=\sevenrm + \scriptfont\itfam=\sevensl + \scriptfont\slfam=\sevensl +} + +\iffalse % fonts - 10pt + \font\manual=logo10 + \font\difficultyfont=cmb10 + \font\smallsl = cmsl9 \font\smallrm = cmr9 \font\smallsy = cmsy9 + \font\manualsl = logosl10 + \font\slc = cmsl8 at 7pt + \font\smc = cmcsc10 + \font\lslashfont = ec-lmro10 + \font\thanhfont = t5-lmr10 + \font\sevenrm=cmr7 + \font\sevensl=cmti7 + \scriptfonts + \baselineskip=12pt +\fi + +\iftrue % fonts - 9pt (what we usually use) + \font\tenrm=cmr9 \font\tensl=cmsl9 \font\tentt=cmtt9 \font\manual=logo9 + \font\tenit=cmti9 \font\tenbf=cmbx9 \font\sf = cmss9 + \font\difficultyfont=cmb10 + \font\smallsl = cmsl8 \font\smallrm = cmr8 \font\smallsy = cmsy9 + \font\manualsl = logosl10 at 9pt + \font\slc = cmsl8 at 6pt + \font\smc = cmcsc10 at 9pt + \font\lslashfont = ec-lmro9 + \font\thanhfont = t5-lmr9 + \font\sevenrm=cmr7 at 6.5pt + \font\sevensl=cmti7 at 6.5pt + \scriptfonts + \baselineskip=10.9pt +\fi + +\iffalse % fonts - 8pt + \font\tenrm=cmr8 \font\tensl=cmsl8 \font\tentt=cmtt8 \font\manual=logo8 + \font\tenit=cmti8 \font\tenbf=cmbx8 \font\sf = cmss8 + \font\difficultyfont=cmbx9 + \font\smallsl = cmsl8 at 7pt \font\smallrm = cmr7 \font\smallsy = cmsy8 + \font\manualsl = logosl10 at 8pt + \font\slc = cmsl8 at 5pt + \font\smc = cmcsc10 at 8pt + \font\lslashfont = ec-lmro8 + \font\thanhfont = t5-lmr8 + \font\sevenrm=cmr6 + \font\sevensl=cmti7 at 6pt + \scriptfonts + \baselineskip=9.7pt +\fi +\rm % start smaller font + +\newskip\abovedifficultyskip % default 8pt plus2pt minus1pt + \abovedifficultyskip = 2.6pt plus2pt minus1pt +\newskip\abovecapsuleskip % default 2pt plus1pt + \abovecapsuleskip = 1pt plus1pt + +% we want ragged right, and interword stretch seems unnecessary, but we +% still allow interword shrink since it helps keep things on one line. +\advance\rightskip by 0pt plus 4em +\spaceskip = \fontdimen2\tenrm minus \fontdimen4\tenrm + +\def\acrofont{% if slanted font, use slanted acro font + \ifdim \fontdimen1\font>0pt \smallsl \else \smallrm\fi +} +\def\acro#1{{\acrofont #1}} + +\textfont2 = \smallsy +\def\CS{{\the\textfont2 C\kern-.1em\lower.4ex\hbox{S}\kern.1em}} + +\def\slMF{{\manualsl META}\-{\manualsl FONT}\spacefactor1000 } +\def\slMP{{\manualsl META}\-{\manualsl POST}\spacefactor1000 } + +% for \LaTeX, etc. +\scriptfont\slfam=\sevensl +\scriptfont\itfam=\sevensl + +% abbreviations +\def\\{\hfil\break} +\def\newline{\\} +\def\cand{\unskip,\space\ignorespaces} +\def\smallbullet{\raise .4ex \hbox{$\scriptscriptstyle \bullet$}} + +% from tugboat.front +\def\titleslash{\raise.3ex\hbox{\sevenrm/}} + +\def\CONNECT{~} +\let\offset=\gobble % ignore manual sorting offset +\long\def\begin#1#2\end#3{} % ignore blurb +\def\issue#1#2#3#4#5#6{} % ignore issue info + +% formatting +\newdimen\pagenowidth % space for justification +\setbox0=\hbox{000} +\pagenowidth=\wd0 % aka 1.5em +\newdimen\pagenospace \pagenospace = 2.5em + +\def\difficulty#1{% + \vskip\abovedifficultyskip + \noindent{\difficultyfont #1}% + \par + \vskip-.5\abovecapsuleskip +} + +% make page numbers in toc be links? no for cadmus, yes for online. +\newif\iftublinktoc \tublinktoctrue +\newcount\tublinkdestpage + +% #1 is difficulty rating -- follows \capsule on first line, usually empty +% #2 is TB category -- arg 2 alone on its line, maybe with replace|add comment +% #3 is author -- args 3-7 are alone on their lines +% #4 is title +% #5 is for statement +% #6 is page number +% #7 is URL of paper PDF +% #8 is subtitles -- arg 8 can be alone on its line or multiple lines long +% #9 is for notes added at html time -- arg 9 can be alone on its line +% or multiple lines long + +% the main command. +\def\capsule#1#2#3#4#5#6#7#8#9{% + \def\author{#3}% + \def\title{#4}% + \vskip \abovecapsuleskip + \noindent + \hangindent = \pagenospace + \advance\hangindent by 3em + \hbox to \pagenospace{\overfullrule=0pt + \hbox to \pagenowidth{\hfil \tubmaybelinkpageno{#6}}% + \hfil}% + % + \ifx\author\empty\else + \tubmaybelinktext{\sl \author}% + % + % / only if both parts are present. + \ifx\title\empty\else\ \titleslash\ \fi + \fi + % + \ifx\title\empty\else \tubmaybelinktext{\rm \title}\fi + % + \def\blurb{#5}% + \ifx\blurb\empty\else \hfil\break\hglue-2em\smallbullet\ \blurb\fi + \par +} + +\def\capsulenoprint#1#2#3#4#5#6#7#8#9{} + +\Input cap.tex + +\bye diff --git a/covers/cover4.tex b/covers/cover4.tex new file mode 100644 index 0000000..828b4e3 --- /dev/null +++ b/covers/cover4.tex @@ -0,0 +1,68 @@ +% $Id$ +% cover4.tex - back cover of TUGboat. Public domain. +% +% space reduction priorities (change values below). +% - add length to page, within reason +% - decrease skips between sections (\secskipa) +% - decrease skips between items (\secskipb) +% - decrease font size for items only (not headings) +% - decrease baselines within items +% - if multiple ads (not a current problem), reduce to a single +% line and put an advertisers' index inside + +\input tubtocmac.tex +\input tugboat.sty +\input tugboat.front + +\input tugboat.dates +\TUBfinal + +\headmargin=\normalheadmargin +\rheadlgt=\normalrheadlgt +\collgt=\normalcollgt +\resetpagelgt + +\let\runhead=\normalrunhead +\let\runfoot=\normalrunfoot + +% fonts: +\tenpoint\baselineskip=12.5pt % default 10pt baselineskip is 12.5pt + \font\slnine = cmsl9 + \font\manual = logo10 + \font\manualsl = logosl10 + \font\thanhfont = t5-lmr10 + \font\lslashfont = ec-lmr10 + +%\ninepoint\baselineskip=11.1pt % default 9pt baselineskip is 11.1pt +% \font\slnine = cmsl8 +% \font\manual = logosl10 at 9pt +% \font\thanhfont = t5-lmr9 +% \font\lslashfont = ec-lmro9 +% \font\lslashrmfont = ec-lmr9 +% \AdjustNormalSpacing\ninepoint{20} + +% seems to work ok for both sizes. +\font\slc = cmsl9 at 7pt % cmcscsl10 not available as type1 + +\LoadSansFonts +\Trimmarkstrue +\NoBlackBoxes +\def\rtitle{} +\setdigitwidth{999} % number of digits in highest page number + +% page length +\vfuzz=0pc % normally zero + \advance\vsize by \vfuzz + +\secskipa=6.0pt plus3pt % between sections, default 6.0pt plus3pt +\secskipb=1.5pt plus1pt % between entries, default 1.5pt plus1pt + +% +{ + \hfuzz=2pc % normally 2pc + \advance\hsize by \hfuzz + % + \advance\voffset by -2\baselineskip % somehow starts too low? + \Input cont +} +\bye % not \end, because we redefine \bye as needed in tbNNNcomplete.pdf. diff --git a/covers/tbcomplete.lua b/covers/tbcomplete.lua new file mode 100644 index 0000000..e052955 --- /dev/null +++ b/covers/tbcomplete.lua @@ -0,0 +1,30 @@ +-- $Id$ +-- Public domain. +-- Lua template file for use with ConTeXt to preserve all the links, +-- both internal and external, in the file tbNNNcomplete.pdf. +-- See tb138prod.pdf for a published note about this. +return { + list = { + { + filename = "toclinks", + first = 1, --cover1 + last = 2, --cover2 + interaction = "all", + pageoffset = 0, + }, + { + filename = "../CADMUS/issue", + first = 1, + last = 176, + interaction = "all", + }, + { + filename = "toclinks", + first = 179, --cover3, page1 + last = 180, --cover3, page2 + interaction = "all", + pageoffset = 0, + }, + }, +} + diff --git a/covers/tbcomplete.tex b/covers/tbcomplete.tex new file mode 100644 index 0000000..cfd067b --- /dev/null +++ b/covers/tbcomplete.tex @@ -0,0 +1,65 @@ +% $Id$ +% Public domain. +% Plain TeX file to generate the complete issue as toclinks.pdf, +% for use in making the final tbNNNcomplete.pdf. +% See tb138prod.pdf for a published note about this. + +% Output complete issue for online. +\let\bye=\relax % end of subfiles is not the end of the job. + +% We start with the usual cover4, but make the page numbers into links. +\let\tublinktoc=t + +\input cover4.tex +\vfil\eject % before we change the page layout + +% Now the issue contents and other covers. +% We have premade pages, so don't let TeX interfere, +% but do it all inside a group, since we need to restore the regular +% parameters for the capsule. +% +\begingroup + +\voffset=-1in \hoffset=-1in \topskip=0pt \nointerlineskip +\vsize=11in \hsize=8.5in +\output = {\shipout\box255 \advancepageno} + +% Have to handle multiple-page PDFs. +\newcount\mylastpage +\newcount\mytemppage + +% Output PDF from #1.pdf, either single-page or multiple pages. +\def\doitem#1{% + \pdfximage{#1.pdf}% + \mylastpage=\pdflastximagepages + % + \ifnum\mylastpage=1 + % single page -> just output it. + \doitempage + \else + % multiple pages -> output each page. + \mytemppage = 0 + \loop\ifnum\mytemppage < \mylastpage + \advance\mytemppage by 1 + \pdfximage page\mytemppage {#1.pdf}% + \doitempage + \repeat + \fi +} + +% Output the last ximage on its own page. +\def\doitempage{% + \null % without the box there is nothing to eject, whatsits accumulate + \pdfrefximage\pdflastximage + \eject +} + +\doitem{cover2}% include premade pdf, one page +\doitem{../CADMUS/issue}% premade pdf for interior, many pages + +\endgroup % restore normal page layout, so capsule comes out. + +% Finally, retypeset the capsule, to make the pdf links again. +\input cover3.tex + +\end diff --git a/hyphenex/README b/hyphenex/README index a075aab..c613582 100644 --- a/hyphenex/README +++ b/hyphenex/README @@ -8,8 +8,8 @@ It is maintained by the TUGboat editors. If questions, problems, or suggestions for additional exceptions, please email tugboat@tug.org. Also here is the master file for the exceptions, maintained as a TUGboat -article: tb0hyf.tex. Updates are printed in TUGboat from the time to -time; the exact list is given in the file. +article: tb0hyf.tex. Updates are printed in TUGboat from time to time; +the exact list is given in the file. Also here are scripts to generate ushyphex.tex from tb0hyf.tex: hyphenex.pl and hyphenex.sh, written by Werner Lemberg. The two scripts diff --git a/latex/tugboat.dtx b/latex/tugboat.dtx index 1dc55f7..eee47c6 100644 --- a/latex/tugboat.dtx +++ b/latex/tugboat.dtx @@ -1295,6 +1295,21 @@ {\textbraceleft #1\textbraceright}% } % +% Literal text, such as class names, package names, filenames, etc, +% Trying to define separate commands for each seems impossible and pointless. +% Usually we don't want hyphenation or any other kind of break. +\DeclareRobustCommand{\tbcode}[1]{\mbox{\texttt{#1}}} +% +% On the other hand, sometimes we need to break such code fragments. +% If |hyperref| is loaded, we want |\nolinkurl|, else just |\url|. +\AtBeginDocument{% +\ifx\nolinkurl\undefined + \DeclareRobustCommand{\tbcodebreak}{\url} +\else + \DeclareRobustCommand{\tbcodebreak}{\nolinkurl} +\fi +} +% % Not sure why we ever want this instead of LaTeX's \, (using \kern), % but fine, just keeping it. \DeclareRobustCommand{\thinskip}{\hskip 0.16667em\relax}