parbox で段落間の間隔を調整するにはどうすればいいですか?

parbox で段落間の間隔を調整するにはどうすればいいですか?

LyX に載っているのは次のものです:

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

序文に次の行を追加しました:

\global\setlength{\parskip}{20pt}

したがって、各行の間に 20 ポイントのスペースがあることを期待しています。ただし、これは Parbox 内では発生しません。私の出力は次のようになります。

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

質問: 上記の 3 行目と 4 行目の間に 20 ポイントのスペースを確保するにはどうすればよいですか?これをグローバルに(つまり、ドキュメント内のすべての Parbox にわたって)実行したいと思います。

LaTeX コード (LyX からエクスポート):

%% LyX 2.2.3 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{calc}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\global\setlength{\parskip}{20pt}

\makeatother

\usepackage{babel}
\begin{document}
1. Hi

2. Hi

\noindent{\fboxrule 3pt\fboxsep 6pt\fbox{\parbox[t]{1\columnwidth - 2\fboxsep - 2\fboxrule}{%
3. Hi

4. Hi%
}}}
\end{document}

答え1

ユーザー指定のコマンドに以下を追加できます:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\setlength{\parskip}{20pt}
\let\oldparbox\parbox
\renewcommand\parbox[3][t]{\oldparbox[#1]{#2}{\setlength{\parskip}{20pt}#3}}
\makeatother

編集: 次の「PS」は間違っています: (David のコメントを参照) PS: parbox のデフォルトのオプション パラメータが であるかどうかはよく分かりませんでしたtが、調べてみたところ、 であることがわかりました。「太字」で囲まれたこれらの文は真実ではありません

私の言い訳: ただ「グーグル検索」したところ、まず次のような結果が見つかりました:

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

タイトルのリンクを見て\parbox、最後の 2 行から上記の間違った文を読みました...

それで、私は教訓を学びました...常に情報源を再確認するGoogleで見たものを「距離」だけで信じないでください

答え2

これは質問に対する直接的な回答ではなく、確かにやりすぎであることは理解しています。ただし、テキストをずらさずにボックスを描画したい場合(例では、3と4が少し左にずれています)、Tiを使用できます。Z オーバーレイ。

\documentclass[english]{article}
\usepackage{calc}
\usepackage{tikzpagenodes}
\usetikzlibrary{fit}
\newcommand{\tikznode}[2]{\tikz[remember picture,baseline=(#1.base)]{\node(#1)[inner sep=0pt]{#2};}}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\global\setlength{\parskip}{20pt}

\makeatother

\begin{document}
1. Hi

2. Hi

3. Hi\tikznode{3}{\strut}

4. Hi\tikznode{4}{\strut}%
\begin{tikzpicture}[overlay,remember picture]
\node [fit=(current page text area.west|-4.south) (current page text
area.east|-3.north),draw,ultra thick,rectangle]{};
\end{tikzpicture}
\end{document}

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

これらのボックスを描画するだけであれば、これは確かにやりすぎですが、より凝ったことをしたい場合には、これは合理的な選択肢かもしれません。

答え3

\parskipあなたはあらゆる を望んでいるようですので\parbox:

\documentclass{article}

\newlength{\normalparskip}
\setlength{\normalparskip}{20pt}
\AtBeginDocument{\setlength{\parskip}{\normalparskip}\setlength{\parindent}{0pt}}

\makeatletter
\g@addto@macro{\@parboxrestore}{\setlength{\parskip}{\normalparskip}}
\makeatother

\newcommand{\framedparbox}[2][c]{%
  \noindent
  \begingroup
  \setlength{\fboxrule}{3pt}%
  \setlength{\fboxsep}{6pt}%
  \fbox{\parbox[#1]{\dimexpr1\columnwidth - 2\fboxsep - 2\fboxrule}{#2}}%
  \endgroup
}

\begin{document}

1. Hi

2. Hi

\framedparbox[t]{%
3. Hi

4. Hi%
}

\end{document}

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

関連情報