Tikzによるグラデーション

Tikzによるグラデーション

- 伊藤 直人 の投稿
返信数: 8
表題にもあるようにTikZによるグラデーションについて皆様のお知恵を拝借したく思います。
具体的には,美文書第8版のセクションの部分の下線部のようなグラデーション(濃い色から次第に薄くなり最後は白になる。)をTikzで実現したいと考えていますが方法が分からず頭を抱えている状況です。texdocでTikzのマニュアルをみて以下のようなものを考えましたが上手くいきません。
\documentclass{jlreq}
\usepackage{tikz}
\usepackage{xcolor}
\definecolor{ob}{cmyk}{0.70,0.20,0,0.60}
\begin{document}
\begin{tikzpicture}
\useasboundingbox (0,0) rectangle (0,0);
\shadedraw[left color=blue,right color=white,draw=ob,line width=1pt] (0,-4pt)--(\linewidth, -4pt);
\end{tikzpicture}
\end{document}

よろしくお願いします。
伊藤 直人 への返信

Re: Tikzによるグラデーション

- 奥村 晴彦 の投稿
(役に立たない情報ですが,美文書は編集部にイラレで作っていただいた画像を使っています。)
奥村 晴彦 への返信

Re: Tikzによるグラデーション

- 伊藤 直人 の投稿
奥村先生
非常に早い返信ありがとうございます。
てっきりセクションは,Tikzで描画されていると思っていましたがillustratorなどで画像を作ってカスタマイズする方法もあると知り勉強になりました。

伊藤 直人 への返信

Re: Tikzによるグラデーション

- 本田 知亮 の投稿
\documentclass[dvipdfmx]{jlreq}
\usepackage{tikz}
\definecolor{ob}{cmyk}{0.70,0.20,0,0.60}
\begin{document}


\begin{tikzpicture}
\useasboundingbox (0,0) rectangle (0,0);
\shadedraw[left color=blue,
right color=white,
draw=white,
line width=0pt] (0,-4pt) rectangle (50pt, 4pt);
\end{tikzpicture}

\end{document}

driverオプションが指定されていないのと
「中」をグラデーションにするのに,
そもそもその中が実質的に存在せず
外形の線だけが存在しているので
表示されていないように見える状態です.
本田 知亮 への返信

Re: Tikzによるグラデーション

- 伊藤 直人 の投稿
本田様
非常に早い対応ありがとうございます。
おかげさまで自分が望んでいるものが出力されるようになりました。
ただ,実は,先ほど教えて頂いたTikzコードを使って添付したファイルのようにセクションの体裁をカスタマイズしようと考えていましたがそのことを書き忘れていました。申し訳ございません。
本田さんに教えていただいたものを使用すると確かに線にグラデーションがかかりますがセクションの文字と干渉してしまいます。この問題を解決する方法をご存知であれば教えていただきたいです。厚かましいお願いではございますがよろしくお願いします。
\documentclass{jlreq}
%LuaLaTeXのため,ドライバーのオプションを外しています。
\usepackage{tikz}
\usepackage{xcolor}
\definecolor{ob}{cmyk}{0.70,0.20,0,0.60}
\ModifyHeading{section}{%
format={%
\begin{tikzpicture}
\useasboundingbox (0,0) rectangle (0,0);
\shadedraw[left color=ob,right color=white,draw=white,line width=0pt] (0,0pt) rectangle (\linewidth, -1.5pt);
\end{tikzpicture}%
\hspace{6mm}#1#2}
\vspace{-7mm}}
\begin{document}
\section{\LaTeX}
\end{document}
伊藤 直人 への返信

Re: Tikzによるグラデーション

- 本田 知亮 の投稿
>セクションの文字と干渉してしまいます

たしかに重なってますが,最終的にどうなるのが目的なのかが不明なので,手の入れようがないです.

jlreqのModifyの仕様は理解していないのですが,tikzpictureの中に\sectionの引数をnodeとして入れればtizで制御できるのではと思います.
そのときは必要なら\useasboundingboxを考慮しないといけないでしょうが.
本田 知亮 への返信

Re: Tikzによるグラデーション

- 伊藤 直人 の投稿
本田様
返信ありがとうございます。
最終的な形が分からない質問文となってしまい申し訳ございません。
私の最終的な目標は,美文書第8版(印刷版)のようなセクションの見た目にするというものです。[改訂第8版]LaTeX2ε美文書作成入門:書籍案内|技術評論社 (gihyo.jp)の本書のサンプル→本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。の下にある上から1,2枚目の写真の部分が見本になるかと思います。
さて,アドバイスをいただいたTikZのnodeを使ってセクションの引数をtikzpictureの中に入れてみました。結果としては,添付したzipフォルダの中にあるpdfファイルのような結果となりました。
これを修正する方法をご教授いただければ幸いです。
よろしくお願いします。
伊藤 直人 への返信

Re: Tikzによるグラデーション

- 本田 知亮 の投稿
重なるのが問題なら,グラデの線分の位置を単に下げればよいと思います.

商業的な組版だと,文字部分が指定の位置の上下中央で下線は文字の位置を変えずに文字のdescenderから.5mmとか細かい指定があることもありますが,そういうことではないのでしょうから.

本田 知亮 への返信

Re: Tikzによるグラデーション

- 伊藤 直人 の投稿
本田様
返信ありがとうございます。
グラデの線分の位置を単に下げればよいというアイデアを試させていただいたところ目標としていたものが出力できました。
TikZは,まだまだ,分からないことばかりなので勉強せねばと思う今日この頃です。
お知恵をお貸しくださりありがとうございました。