テキストまたは段落の周囲に、テキストの形状(ボックスのように長方形ではない)でフレームを描画する LaTeX パッケージはありますか?

テキストまたは段落の周囲に、テキストの形状(ボックスのように長方形ではない)でフレームを描画する LaTeX パッケージはありますか?

意図的に形式を与えられた詩の場合、テキストと行の周囲に枠を描くことができれば、確かに役に立つかもしれません。これは、長方形の単純なボックスとは異なりますが、書かれた行の形状に適しています。

可能であれば、ヒントをいただければ幸いです。

MWE:

\documentclass{report}

\begin{document}
    
\centering
This is\\
an example  \\
how it can be\\
and should\\
appear.

\vspace*{\baselineskip}
Without \\
the lines \\
around it. Can you\\
imagine the\\
lines?

\end{document}

テキストの周囲の線は想像する必要があります。テキストの境界に近い線を描く方法やパッケージはありますか。Not長方形のボックスです。

次の画像ファイルを参照してください。 ここに画像の説明を入力してください

パッケージを最初に調べたところ、tikz次のコードが解決策の可能性があることがわかりましたが、まだ満足のいくものではないようです。理由: 外側の線と内側のテキストの分離が不十分です。試してみましたinner sep=5mmが効果はありませんでした (以下のコードには含まれていません)。

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
    
\centering
\tikzmark{A} \qquad \tikzmark{N}\\
\tikzmark{B} This is \tikzmark{M}\\
\tikzmark{C} an example \tikzmark{L}    \\
\tikzmark{D} how it can be \tikzmark{K}\\
\tikzmark{E} and should \tikzmark{J}\\
\tikzmark{F} appear. \tikzmark{I}\\
\tikzmark{G} \qquad \tikzmark{H} 

\tikz[remember picture] \draw[overlay,thick,rounded corners=6pt] (pic cs:A) -- (pic cs:B) -- (pic cs:C) -- (pic cs:D) -- (pic cs:E) -- (pic cs:F) -- (pic cs:G) -- (pic cs:H) -- (pic cs:I) -- (pic cs:J) -- (pic cs:K) -- (pic cs:L) -- (pic cs:M) -- (pic cs:N) -- cycle;

\vspace*{\baselineskip}

\tikzmark{a} \qquad \tikzmark{n}\\
\tikzmark{b} Without \tikzmark{m}\\
\tikzmark{c} the lines \tikzmark{l}\\
\tikzmark{d} around it. Can you \tikzmark{k}\\
\tikzmark{e} imagine the \tikzmark{j}\\
\tikzmark{f} lines? \tikzmark{i}\\
\tikzmark{g} \qquad \tikzmark{h}

\tikz[remember picture] \draw[overlay,thick,rounded corners=6pt] (pic cs:a) -- (pic cs:b) -- (pic cs:c) -- (pic cs:d) -- (pic cs:e) -- (pic cs:f) -- (pic cs:g) -- (pic cs:h) -- (pic cs:i) -- (pic cs:j) -- (pic cs:k) -- (pic cs:l) -- (pic cs:m) -- (pic cs:n) -- cycle;

\end{document}

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

答え1

\draw plot[smooth cycle, thick] coordinates { ... }sa を少し上にシフトすると、より良い結果が得られる場合があります\tikzmark。これによりtension=...、予想外の面白い効果が得られる可能性があります。

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

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newcommand\ml[3]{% marked line
  \raisebox{0.5ex}[0ex][0ex]{\tikzmark{#1}}\quad
  #2\quad
  \raisebox{0.5ex}[0ex][0ex]{\tikzmark{#3}}%
}
\begin{document}
    
\begin{center}
  \ml A{}N\\
  \ml B{This is}M\\
  \ml C{an example}L\\
  \ml D{how it can be}K\\
  \ml E{and should}J\\
  \ml F{appear.}I\\
  \ml G{}H
\end{center}
\tikz[remember picture,overlay] \draw plot[smooth cycle, thick]
coordinates {(pic cs:A) (pic cs:B) (pic cs:C) (pic cs:D) (pic cs:E)
  (pic cs:F) (pic cs:G) (pic cs:H) (pic cs:I) (pic cs:J) (pic cs:K)
  (pic cs:L) (pic cs:M) (pic cs:N)};

\begin{center}
  \ml a{}n\\
  \ml b{Without}m\\
  \ml c{the lines}l\\
  \ml d{around it. Can you}k\\
  \ml e{imagine the}j\\
  \ml f{lines?}i\\
  \ml g{}h
\end{center}
\tikz[remember picture,overlay] \draw plot[smooth cycle, thick]
coordinates {(pic cs:a) (pic cs:b) (pic cs:c) (pic cs:d) (pic cs:e)
  (pic cs:f) (pic cs:g) (pic cs:h) (pic cs:i) (pic cs:j) (pic cs:k)
  (pic cs:l) (pic cs:m) (pic cs:n)};

\begin{center}
  \ml 1{}{14}\\
  \ml 2{Without}{13}\\
  \ml 3{the lines}{12}\\
  \ml 4{around it. Can you}{11}\\
  \ml 5{imagine the}{10}\\
  \ml 6{lines?}9\\
  \ml 7{}8
\end{center}
\tikz[remember picture,overlay] \draw plot[smooth cycle, thick, tension=3]
coordinates {(pic cs:1) (pic cs:2) (pic cs:3) (pic cs:4) (pic cs:5)
  (pic cs:6) (pic cs:7) (pic cs:8) (pic cs:9) (pic cs:10) (pic cs:11)
  (pic cs:12) (pic cs:13) (pic cs:14)};
\end{document}

関連情報