* [PATCH] defer/rcuapi: Tweak Table 9.3 with nimbusmononarrow font
@ 2019-02-21 15:38 Akira Yokosawa
2019-02-21 19:06 ` Paul E. McKenney
0 siblings, 1 reply; 2+ messages in thread
From: Akira Yokosawa @ 2019-02-21 15:38 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa
From 3f0a889f86203934737055e129d574cc1232a8b1 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Thu, 21 Feb 2019 23:36:24 +0900
Subject: [PATCH] defer/rcuapi: Tweak Table 9.3 with nimbusmononarrow font
"nimbusmononarrow" font (used in the experimental target "msn")
is slightly narrower than "lmtt". Table 9.3 hardly fits in
a page with the lmtt font. nimbusmononarrow gives us some room
for a possible new API with longer name.
This change affects targets msnt, 1csf, msr, and msn.
Those targets can be built on TeX Live 2015/Debian or later.
As for the other targets, specifying width of every column
makes "tabularx" unnecessary. Plain "tabular" suffices.
Once everyone (especially our editor) upgrades his/her LaTeX
installation, all the target will be able to use the same font
in this table.
For bold face characters in the table header, use \pmb{} instead
of {\bf ...}, as lmtt's bold face is not bold enough and
nimbusmononarrow lacks bold face font.
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
Makefile | 16 ++++++++++------
defer/rcuapi.tex | 29 +++++++++++++++++++----------
perfbook.tex | 15 +++++++++++----
3 files changed, 40 insertions(+), 20 deletions(-)
diff --git a/Makefile b/Makefile
index 7a6d156..4547256 100644
--- a/Makefile
+++ b/Makefile
@@ -168,23 +168,27 @@ perfbook-mstx.tex: perfbook.tex
sed -e 's/%msfontstub/\\renewcommand*\\ttdefault{txtt}/' < $< > $@
perfbook-msr.tex: perfbook.tex
- sed -e 's/%msfontstub/\\usepackage[scaled=.94]{nimbusmono}/' < $< > $@
+ sed -e 's/%msfontstub/\\usepackage[scaled=.94]{nimbusmono}/' \
+ -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
@echo "## This target requires font package nimbus15. ##"
perfbook-msn.tex: perfbook.tex
sed -e 's/%msfontstub/\\usepackage{nimbusmononarrow}/' \
- -e 's/{lmttforcode}{true}/{lmttforcode}{false}/' < $< > $@
+ -e 's/{lmttforcode}{true}/{lmttforcode}{false}/' \
+ -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
@echo "## This target requires font package nimbus15. ##"
perfbook-msnt.tex: perfbook.tex
- sed -e 's/%msfontstub/\\usepackage[zerostyle=a]{newtxtt}/' < $< > $@
- @echo "## This target requires font package newtxtt. ##"
- @echo "## If build fails, try target 'mstx' instead. ##"
+ sed -e 's/%msfontstub/\\usepackage[zerostyle=a]{newtxtt}/' \
+ -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
+ @echo "## This target requires font packages newtxtt and nimbus15. ##"
+ @echo "## If build fails, try target 'mstx' instead. ##"
perfbook-1csf.tex: perfbook-1c.tex
sed -e 's/setboolean{sansserif}{false}/setboolean{sansserif}{true}/' \
+ -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' \
-e 's/%msfontstub/\\usepackage[var0]{inconsolata}[2013\/07\/17]/' < $< > $@
- @echo "## This target requires math font package newtxsf. ##"
+ @echo "## This target requires math font packages newtxsf and nimbus15. ##"
# Rules related to perfbook_html are removed as of May, 2016
diff --git a/defer/rcuapi.tex b/defer/rcuapi.tex
index a98b5e8..644a937 100644
--- a/defer/rcuapi.tex
+++ b/defer/rcuapi.tex
@@ -758,16 +758,25 @@ Section~\ref{sec:defer:Maintain Multiple Versions of Recently Updated Objects}.
\caption{RCU-Protected List APIs}
\label{tab:defer:RCU-Protected List APIs}
\footnotesize
-\begin{tabularx}{8.4in}{>{\raggedright\arraybackslash}X
- >{\raggedright\arraybackslash}X
- >{\raggedright\arraybackslash}X
- >{\raggedright\arraybackslash}p{1.7in}}
+\newlength{\cwa}\newlength{\cwb}\newlength{\cwc}\newlength{\cwd}
+\IfNimbusAvail{
+ \renewcommand{\ttdefault}{NimbusMonoN}
+ \setlength{\cwa}{1.9in}\setlength{\cwb}{2.1in}
+ \setlength{\cwc}{1.8in}\setlength{\cwd}{1.6in}
+}{
+ \setlength{\cwa}{1.95in}\setlength{\cwb}{2.15in}
+ \setlength{\cwc}{1.9in}\setlength{\cwd}{1.7in}
+}
+\begin{tabular}{>{\raggedright\arraybackslash}p{\cwa}
+ >{\raggedright\arraybackslash}p{\cwb}
+ >{\raggedright\arraybackslash}p{\cwc}
+ >{\raggedright\arraybackslash}p{\cwd}}
\toprule
-{\bf \tco{list}}: Circular doubly linked list &
- {\bf \tco{hlist}}: Linear doubly linked list &
- {\bf \tco{hlist_nulls}}: Linear doubly linked list with marked
- NULL pointer, with up to 31 bits of marking &
- {\bf \tco{hlist_bl}}: Linear doubly linked list with bit locking \\
+\pmb{\tco{list}}: Circular doubly linked list &
+ \pmb{\tco{hlist}}: Linear doubly linked list &
+ \pmb{\tco{hlist_nulls}}: Linear doubly linked list with marked
+ NULL pointer, with up to 31~bits of marking &
+ \pmb{\tco{hlist_bl}}: Linear doubly linked list with bit locking \\
\midrule
\multicolumn{4}{l}{{\bf Initialization}} \\
&
@@ -832,7 +841,7 @@ Section~\ref{sec:defer:Maintain Multiple Versions of Recently Updated Objects}.
&
\\
\bottomrule
-\end{tabularx}
+\end{tabular}
\end{sidewaystable*}
The first pair of categories operate on Linux
diff --git a/perfbook.tex b/perfbook.tex
index edf18d5..f79e7b0 100644
--- a/perfbook.tex
+++ b/perfbook.tex
@@ -9,8 +9,6 @@
\usepackage[T1]{fontenc} % use postscript type 1 fonts
\usepackage[defaultsups]{newtxtext} % use nice, standard fonts for roman
\usepackage{textcomp} % use symbols in TS1 encoding
-\renewcommand*\ttdefault{lmtt}
-%msfontstub
% Improves the text layout
\usepackage{microtype}
@@ -91,6 +89,15 @@
\newboolean{tblcptop}
\setboolean{tblcptop}{true}
\newcommand{\IfTblCpTop}[2]{\ifthenelse{\boolean{tblcptop}}{#1}{#2}}
+\newboolean{nimbusavail}
+\setboolean{nimbusavail}{false}
+\newcommand{\IfNimbusAvail}[2]{\ifthenelse{\boolean{nimbusavail}}{#1}{#2}}
+
+\IfNimbusAvail{
+\usepackage{nimbusmononarrow}
+}{}
+\renewcommand*\ttdefault{lmtt}
+%msfontstub
\newcommand{\OneColumnHSpace}[1]{\IfTwoColumn{}{\hspace*{#1}}}
@@ -127,8 +134,8 @@
\AtBeginEnvironment{verbatim}{\renewcommand{\ttdefault}{lmtt}}
\AtBeginEnvironment{verbbox}{\renewcommand{\ttdefault}{lmtt}}
\AtBeginEnvironment{table}{\renewcommand{\ttdefault}{lmtt}}
-\AtBeginEnvironment{tabular}{\renewcommand{\ttdefault}{lmtt}}
-\AtBeginEnvironment{tabularx}{\renewcommand{\ttdefault}{lmtt}}
+\AtBeginEnvironment{table*}{\renewcommand{\ttdefault}{lmtt}}
+\AtBeginEnvironment{sidewaystable*}{\renewcommand{\ttdefault}{lmtt}}
\AtBeginEnvironment{minipage}{\renewcommand{\ttdefault}{lmtt}}
\AtBeginEnvironment{listing}{\renewcommand{\ttdefault}{lmtt}}
\fvset{fontfamily=lmtt}
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] defer/rcuapi: Tweak Table 9.3 with nimbusmononarrow font
2019-02-21 15:38 [PATCH] defer/rcuapi: Tweak Table 9.3 with nimbusmononarrow font Akira Yokosawa
@ 2019-02-21 19:06 ` Paul E. McKenney
0 siblings, 0 replies; 2+ messages in thread
From: Paul E. McKenney @ 2019-02-21 19:06 UTC (permalink / raw)
To: Akira Yokosawa; +Cc: perfbook
On Fri, Feb 22, 2019 at 12:38:42AM +0900, Akira Yokosawa wrote:
> >From 3f0a889f86203934737055e129d574cc1232a8b1 Mon Sep 17 00:00:00 2001
> From: Akira Yokosawa <akiyks@gmail.com>
> Date: Thu, 21 Feb 2019 23:36:24 +0900
> Subject: [PATCH] defer/rcuapi: Tweak Table 9.3 with nimbusmononarrow font
>
> "nimbusmononarrow" font (used in the experimental target "msn")
> is slightly narrower than "lmtt". Table 9.3 hardly fits in
> a page with the lmtt font. nimbusmononarrow gives us some room
> for a possible new API with longer name.
>
> This change affects targets msnt, 1csf, msr, and msn.
> Those targets can be built on TeX Live 2015/Debian or later.
>
> As for the other targets, specifying width of every column
> makes "tabularx" unnecessary. Plain "tabular" suffices.
>
> Once everyone (especially our editor) upgrades his/her LaTeX
> installation, all the target will be able to use the same font
> in this table.
>
> For bold face characters in the table header, use \pmb{} instead
> of {\bf ...}, as lmtt's bold face is not bold enough and
> nimbusmononarrow lacks bold face font.
>
> Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
Applied and pushed, thank you!
Thanx, Paul
> ---
> Makefile | 16 ++++++++++------
> defer/rcuapi.tex | 29 +++++++++++++++++++----------
> perfbook.tex | 15 +++++++++++----
> 3 files changed, 40 insertions(+), 20 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 7a6d156..4547256 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -168,23 +168,27 @@ perfbook-mstx.tex: perfbook.tex
> sed -e 's/%msfontstub/\\renewcommand*\\ttdefault{txtt}/' < $< > $@
>
> perfbook-msr.tex: perfbook.tex
> - sed -e 's/%msfontstub/\\usepackage[scaled=.94]{nimbusmono}/' < $< > $@
> + sed -e 's/%msfontstub/\\usepackage[scaled=.94]{nimbusmono}/' \
> + -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
> @echo "## This target requires font package nimbus15. ##"
>
> perfbook-msn.tex: perfbook.tex
> sed -e 's/%msfontstub/\\usepackage{nimbusmononarrow}/' \
> - -e 's/{lmttforcode}{true}/{lmttforcode}{false}/' < $< > $@
> + -e 's/{lmttforcode}{true}/{lmttforcode}{false}/' \
> + -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
> @echo "## This target requires font package nimbus15. ##"
>
> perfbook-msnt.tex: perfbook.tex
> - sed -e 's/%msfontstub/\\usepackage[zerostyle=a]{newtxtt}/' < $< > $@
> - @echo "## This target requires font package newtxtt. ##"
> - @echo "## If build fails, try target 'mstx' instead. ##"
> + sed -e 's/%msfontstub/\\usepackage[zerostyle=a]{newtxtt}/' \
> + -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' < $< > $@
> + @echo "## This target requires font packages newtxtt and nimbus15. ##"
> + @echo "## If build fails, try target 'mstx' instead. ##"
>
> perfbook-1csf.tex: perfbook-1c.tex
> sed -e 's/setboolean{sansserif}{false}/setboolean{sansserif}{true}/' \
> + -e 's/{nimbusavail}{false}/{nimbusavail}{true}/' \
> -e 's/%msfontstub/\\usepackage[var0]{inconsolata}[2013\/07\/17]/' < $< > $@
> - @echo "## This target requires math font package newtxsf. ##"
> + @echo "## This target requires math font packages newtxsf and nimbus15. ##"
>
> # Rules related to perfbook_html are removed as of May, 2016
>
> diff --git a/defer/rcuapi.tex b/defer/rcuapi.tex
> index a98b5e8..644a937 100644
> --- a/defer/rcuapi.tex
> +++ b/defer/rcuapi.tex
> @@ -758,16 +758,25 @@ Section~\ref{sec:defer:Maintain Multiple Versions of Recently Updated Objects}.
> \caption{RCU-Protected List APIs}
> \label{tab:defer:RCU-Protected List APIs}
> \footnotesize
> -\begin{tabularx}{8.4in}{>{\raggedright\arraybackslash}X
> - >{\raggedright\arraybackslash}X
> - >{\raggedright\arraybackslash}X
> - >{\raggedright\arraybackslash}p{1.7in}}
> +\newlength{\cwa}\newlength{\cwb}\newlength{\cwc}\newlength{\cwd}
> +\IfNimbusAvail{
> + \renewcommand{\ttdefault}{NimbusMonoN}
> + \setlength{\cwa}{1.9in}\setlength{\cwb}{2.1in}
> + \setlength{\cwc}{1.8in}\setlength{\cwd}{1.6in}
> +}{
> + \setlength{\cwa}{1.95in}\setlength{\cwb}{2.15in}
> + \setlength{\cwc}{1.9in}\setlength{\cwd}{1.7in}
> +}
> +\begin{tabular}{>{\raggedright\arraybackslash}p{\cwa}
> + >{\raggedright\arraybackslash}p{\cwb}
> + >{\raggedright\arraybackslash}p{\cwc}
> + >{\raggedright\arraybackslash}p{\cwd}}
> \toprule
> -{\bf \tco{list}}: Circular doubly linked list &
> - {\bf \tco{hlist}}: Linear doubly linked list &
> - {\bf \tco{hlist_nulls}}: Linear doubly linked list with marked
> - NULL pointer, with up to 31 bits of marking &
> - {\bf \tco{hlist_bl}}: Linear doubly linked list with bit locking \\
> +\pmb{\tco{list}}: Circular doubly linked list &
> + \pmb{\tco{hlist}}: Linear doubly linked list &
> + \pmb{\tco{hlist_nulls}}: Linear doubly linked list with marked
> + NULL pointer, with up to 31~bits of marking &
> + \pmb{\tco{hlist_bl}}: Linear doubly linked list with bit locking \\
> \midrule
> \multicolumn{4}{l}{{\bf Initialization}} \\
> &
> @@ -832,7 +841,7 @@ Section~\ref{sec:defer:Maintain Multiple Versions of Recently Updated Objects}.
> &
> \\
> \bottomrule
> -\end{tabularx}
> +\end{tabular}
> \end{sidewaystable*}
>
> The first pair of categories operate on Linux
> diff --git a/perfbook.tex b/perfbook.tex
> index edf18d5..f79e7b0 100644
> --- a/perfbook.tex
> +++ b/perfbook.tex
> @@ -9,8 +9,6 @@
> \usepackage[T1]{fontenc} % use postscript type 1 fonts
> \usepackage[defaultsups]{newtxtext} % use nice, standard fonts for roman
> \usepackage{textcomp} % use symbols in TS1 encoding
> -\renewcommand*\ttdefault{lmtt}
> -%msfontstub
>
> % Improves the text layout
> \usepackage{microtype}
> @@ -91,6 +89,15 @@
> \newboolean{tblcptop}
> \setboolean{tblcptop}{true}
> \newcommand{\IfTblCpTop}[2]{\ifthenelse{\boolean{tblcptop}}{#1}{#2}}
> +\newboolean{nimbusavail}
> +\setboolean{nimbusavail}{false}
> +\newcommand{\IfNimbusAvail}[2]{\ifthenelse{\boolean{nimbusavail}}{#1}{#2}}
> +
> +\IfNimbusAvail{
> +\usepackage{nimbusmononarrow}
> +}{}
> +\renewcommand*\ttdefault{lmtt}
> +%msfontstub
>
> \newcommand{\OneColumnHSpace}[1]{\IfTwoColumn{}{\hspace*{#1}}}
>
> @@ -127,8 +134,8 @@
> \AtBeginEnvironment{verbatim}{\renewcommand{\ttdefault}{lmtt}}
> \AtBeginEnvironment{verbbox}{\renewcommand{\ttdefault}{lmtt}}
> \AtBeginEnvironment{table}{\renewcommand{\ttdefault}{lmtt}}
> -\AtBeginEnvironment{tabular}{\renewcommand{\ttdefault}{lmtt}}
> -\AtBeginEnvironment{tabularx}{\renewcommand{\ttdefault}{lmtt}}
> +\AtBeginEnvironment{table*}{\renewcommand{\ttdefault}{lmtt}}
> +\AtBeginEnvironment{sidewaystable*}{\renewcommand{\ttdefault}{lmtt}}
> \AtBeginEnvironment{minipage}{\renewcommand{\ttdefault}{lmtt}}
> \AtBeginEnvironment{listing}{\renewcommand{\ttdefault}{lmtt}}
> \fvset{fontfamily=lmtt}
> --
> 2.7.4
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-02-21 19:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-21 15:38 [PATCH] defer/rcuapi: Tweak Table 9.3 with nimbusmononarrow font Akira Yokosawa
2019-02-21 19:06 ` Paul E. McKenney
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.