このセクションのスタイルをより良くするにはどうすればよいでしょうか?

このセクションのスタイルをより良くするにはどうすればよいでしょうか?

私はテンプレートを作成し、その中でいくつかのものをカスタマイズしようとしています。そのうちの 1 つはセクション スタイルです。下の画像とコードに示すように、画面の左側に六角形を作成するコマンドを作成しました。

これ以外にも多くのパッケージを使用していますが、この問題に不可欠なのはこれらだと思います。

\RequirePackage[%
    top =       2.5cm,    
    bottom =    3.8cm,    
    left =      2cm,    
    right =     2cm,
]{geometry}
\RequirePackage[most]{tcolorbox}
\RequirePackage{pgfplots}
\RequirePackage{graphicx}
\RequirePackage{xcolor}
\RequirePackage{tikz}
\RequirePackage{titletoc}
\RequirePackage{lmodern}
\usetikzlibrary{
    decorations.pathreplacing,
    decorations.pathmorphing,
    decorations.markings,
    shapes.multipart,
    shapes.geometric,
    arrows.meta,
    fadings,
    arrows,
    angles,
    quotes,
    calc,
    3d,
 }
\pgfplotsset{compat=1.18}
\definecolor{ChapterBackground}{HTML}{101010} % PERSONAL BLACK
\definecolor{ChapterForeground}{HTML}{e93820} % PERSONAL ORANGE I

\newcommand{\polygonSection}{%
\begin{tikzpicture}[remember picture, overlay]
\foreach \i in {0.5,...,5}{%
    \node[%
        ChapterBackground,
        regular polygon sides   = 6, 
        regular polygon,
        rounded corners,
        minimum size            = \i cm,
        ultra thick,
        draw,
    ] at ($(current page.north west |- current page text area.west)+(0,0)$) {};
}

\node[%
    regular polygon sides   = 6, 
    rounded corners,
    regular polygon,
    minimum size            = 1.58 cm,
    ultra thick,
    inner sep               = 0,
    fill                    = ChapterForeground!85,
    text                    = ChapterForeground!5,
] at ($(current page.north west |- current page text area.west)+(0,0)$) {};

\end{tikzpicture}}

ここに画像の説明を入力してください

さて、このコマンドでは、titlesec パッケージの \titleformat{} を使用して、セクションのスタイルを次のように設定しようとしました。

\titleformat{\section}[display]
{\normalfont\bfseries\color{ChapterBackground}}{}{1em}
{\llap{
\polygonSection\hspace{-6pt}}\huge\textsc}[]

ここに画像の説明を入力してください

ただし、タイトルを六角形に揃えて、その間に小さなスペースを追加したいのですが、これを行う方法が見つからず、次のエラー メッセージが表示されます。

パッケージ pgf エラー: 「現在のページのテキスト領域」という名前の図形が認識されません。

しかし、この部分をコードから取り除くと、思ったような見た目にはなりません。また、tikzpagenodes パッケージを使用すると、ポリゴンはセクションではなくページごとに分割されてしまいますが、これは私が望んでいることではありません。

以上です。どなたか助けていただけると嬉しいです。

答え1

セクション タイトルをインデントして、本文よりも右側から開始するのがよいアイデアかどうかはわかりません。むしろ左余白を増やす必要があるかもしれません。いずれにしても、次の方法でほぼ目的の結果が得られる可能性があります。

\documentclass{article}

\RequirePackage[%
    top    = 2.5cm,    
    bottom = 3.8cm,    
    left   =   2cm,    
    right  =   2cm,
]{geometry}

\RequirePackage{tikz}
\usetikzlibrary{shapes.geometric}

\definecolor{ChapterBackground}{HTML}{101010} % PERSONAL BLACK
\definecolor{ChapterForeground}{HTML}{e93820} % PERSONAL ORANGE I

\newcommand{\polygonSection}{%
\begin{tikzpicture}[remember picture, overlay] 
\node[%
    regular polygon sides   = 6, 
    rounded corners,
    regular polygon,
    minimum size            = 1.58cm,
    ultra thick,
    inner sep               = 0pt,
    fill                    = ChapterForeground!85,
    anchor                  = south
] at (current page.north west |- 0,0) (red polygon) {};
\foreach \i in {2.5,...,4.5}{%
    \node[%
        ChapterBackground,
        regular polygon sides   = 6, 
        regular polygon,
        rounded corners,
        minimum size            = \i cm,
        ultra thick,
        draw,
    ] at (red polygon) {};
}
\end{tikzpicture}}

\RequirePackage{titlesec}
\titleformat{\section}[display]
    {\normalfont\bfseries\color{ChapterBackground}\huge}{}{0pt}
    {\polygonSection\hspace{1em}}

\usepackage{lipsum}

\begin{document}

\section{Section}

\lipsum[1]

\end{document}

ここに画像の説明を入力してください

これはどのように機能するのでしょうか。tikzpictureセクション タイトルに追加する は、最初に赤い六角形をアンカーで固定して、水平方向は のベースライン上にtikzpicture、垂直方向は用紙の左端に配置されるように配置します。次に、他の六角形 (実際に必要なのは 3 つだけなので、リストを調整しました\foreach) をこの赤い六角形の周囲に配置します。

を使用してスペースを挿入することで間隔を調整できます\titleformat{\section}が、最初に述べたように、ドキュメント全体の左余白を増やす方が良い場合があります。

六角形を垂直に中央に配置する場合は、anchor = south赤い六角形のオプションから削除し、環境baseline = -0.5exのオプションに追加しますtikzpicture


注意:tcolorboxロードtikzpgfplotsロードtikztikzロードxcolor。したがって、これらすべてのパッケージを一緒にロードする必要はありません。また、どのTiがロードされるかについても真剣に考える必要があります。本当に必要な Z ライブラリ。上記の場合は、 のみがshapes.geometric必要です。

関連情報