選択したページのテキストをボックスで囲み、そのボックスの下にページ番号を表示する簡単な方法はありますか?

選択したページのテキストをボックスで囲み、そのボックスの下にページ番号を表示する簡単な方法はありますか?

ページ全体または選択したページの周囲にボックスを作成できるようにしたいのですが、ボックスはページ全体の長さにまで伸びますが、添付の例のようにボックスの下端はページ番号の上にあります。これを環境として定義して、その環境内のすべてのページがボックス化されるようにできれば理想的です。この環境を使用して、エグゼクティブ サマリーをドキュメントの残りの部分から区別することができます。

ヒントや提案があれば、ぜひ教えてください。

ボックスページ

答え1

tikzおよびを使用して、ページにフレームを追加したり、ページにフレームを削除したりする と のeso-pic2 つのコマンドを定義しました。\addframe\removeframe

MWE:

\documentclass{article}

\usepackage{tikzpagenodes}
\usetikzlibrary{calc}

\usepackage{eso-pic}

\newcommand{\addframe}{%
  \AddToShipoutPicture{%
  \begin{tikzpicture}[remember picture, overlay]
      \draw[line width=1pt] 
           ($(current page text area.north west) +(-5mm,5mm)$)
           rectangle
           ($(current page text area.south east) +(5mm,-5mm)$);
  \end{tikzpicture}%
  }%
}

\newcommand{\removeframe}{\ClearShipoutPicture}

\usepackage{lipsum} % just for the example

\begin{document}
\addframe
\lipsum[1-10]
\clearpage
\removeframe
\lipsum[1-10]
\clearpage
\addframe
\lipsum[1-10]
\end{document} 

出力:

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

必要に応じてパラメータ(1pt太さや5mmテキストからの距離)を調整できます。

あるいは、\addframeこのように定義することもできます

\newcommand{\addframe}{%
  \begin{tikzpicture}[remember picture, overlay]
      \draw[line width=1pt]
           ($(current page text area.north west) +(-5mm,5mm)$)
           rectangle
           ($(current page text area.south east) +(5mm,-5mm)$);
  \end{tikzpicture}%
}

\addframe次の MWE のように、フレームが必要なすべてのページで使用します。

\documentclass{article}

\usepackage{tikzpagenodes}
\usetikzlibrary{calc}

\newcommand{\addframe}{%
  \begin{tikzpicture}[remember picture, overlay]
      \draw[line width=1pt]
           ($(current page text area.north west) +(-5mm,5mm)$)
           rectangle
           ($(current page text area.south east) +(5mm,-5mm)$);
  \end{tikzpicture}%
}

\usepackage{lipsum} % just for the example

\begin{document}
\addframe
\lipsum[1-10]
\clearpage
\lipsum[1-10]
\clearpage
\addframe
\lipsum[1-10]
\end{document} 

答え2

これを行うにはパッケージを使用できますmdframedmdframed非常にカスタマイズ可能で、背景色やその他多くのものを定義できます。

同じスタイルを使用してボックスをどこにでも表示したい場合は、 で新しい環境を定義しnewmdenv、いくつかのスタイル オプションを設定するのがベスト プラクティスです。この場合、標準が使用され、ボックスの周りに 1 つのフレームが表示されます。2 番目の例に示すように、環境にオプションを与えることで、後でローカルで設定を無効にすることができます。

\documentclass{article}
\usepackage{mdframed}
\newmdenv{boxed}
\usepackage{blindtext}
\begin{document}
\blindtext
\begin{boxed}
\blindtext

\blindtext
\begin{description}
    \item [something] \blindtext
    \item [something else] \blindtext[2]
\end{description}
\end{boxed}

\blindtext

\begin{boxed}[backgroundcolor=yellow]
    \blindtext
\end{boxed}
\end{document}

関連情報