[Q] Can LaTeX2e do it like "test -x" in sh?
中治@豊橋です。
シェルの「test -z」のようなことを LaTeX2e でできませんか?
というのが質問の主旨です。以下に経緯を書きます。
先人から引き継いだ jLaTeX209 のころのスタイルファイルを使ってサブネットの
機器一覧表を作っています。どうせなら、この表を HTML にしておいてもいいじゃ
ないかと思ったのですが、latex2html はこのスタイルファイルを解してくれず、
picure 環境で書かれた表を png にしてくれました。
そこで、
\AtBeginDocument{%
\global\newwrite\@titlefile \gdef\@titlename{\jobname.html }%
\immediate\openout\@titlefile\@titlename
\immediate\write\@titlefile{%
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=euc-jp">
<TITLE>サブネット内接続機器一覧</TITLE>
</head>
<h1>サブネット内接続機器一覧</h1>
<table cols=5 border=1>
<COLGROUP>
<COL WIDTH="15\%" align=center valign=middle>
<COL WIDTH="15\%" align=center valign=middle>
<COL WIDTH="15\%" align=center valign=middle>
<COL WIDTH="15\%" align=center valign=middle>
<COL WIDTH="40\%" align=center valign=middle>
</COLGROUP>
<tr>
<td>ホスト名</td>
<td>IPアドレス</td>
<td>設置場所</td>
<td>イーサネットアドレス</td>
<td>接続機器名(OS名)</td>
</tr>
}}
\newcommand{\putlist}[6]{%
\immediate\write\@titlefile{%
<tr>
<td> #1</td>
<td> #2</td>
<td>#5</td>
<td>#6</td>
<td> #3 (#4)</td>
</tr>
}
\begin{picture}(178,25.2)(-29,61.8)
\put(22.5,17){\makebox(38,5)[cm]{\Large \bf #1}}
\put(89,17){\makebox(55,5)[cm] {\large \bf #2}}
\put(44,6.5){\makebox(100,5)[lt]{\large #3}}
\put(44,8.5){\makebox(100,5)[rb]{\large \sf (#4)}}
\put(22.5,0){\makebox(38,5)[cm] {\large \bf #5}}
\put(89,0){\makebox(55,4)[cm] {\large \bf #6}}
\end{picture}
}
\AtEndDocument{%
\immediate\write\@titlefile{%
</table></html>
}
}
という具合いにしてみたところ、それらしいのができたのですが、putlist 環境で
#4 が空だった場合にも「()」だけが出力されてしまい、これはブサイクです。
つまり、putlist 環境で、「#4 が空でなければ \write する」ようにしたいので
すが、どういう方法がありますか?
できあがった \jobname.html をエディタで編集するのは面倒なので、LaTeX2e で
できるとたいへんうれしいのです。
--
NAKAJI Hiroyuki (中治 弘行)
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735