同じタイプの2つの環境間の垂直距離に関する質問

同じタイプの2つの環境間の垂直距離に関する質問

私は自分の本の演習用に新しい環境を定義しましたが、2 つの演習間の距離が次のように同じではない点まではうまく機能していました。

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

これが私の MWE です:

\documentclass[12pt, a4paper, oneside]{book}
\usepackage{amsmath}
\usepackage{tgpagella}
\usepackage[utf8]{vietnam}
\usepackage{parskip}
\newcounter{bt}[chapter]
\newenvironment{bt}[1][]{\refstepcounter{bt}\par\medskip
\noindent \textbf{Bài~\thebt. #1} \rmfamily}{\medskip}
\begin{document}
\section{Bài tập chương I}
\begin{bt}
Viết một chương trình yêu cầu người dùng nhập tên của mình, 
sau đó chương trình sẽ in ra một thông điệp chào mừng người dùng, 
sử dụng tên của họ. \\
Ví dụ, nếu người dùng nhập X, chương trình nên in ra Chào mừng, X. \\
Hãy sử dụng bình luận trong từng bước bài làm của mình để diễn giải mã. 
\end{bt}
\begin{bt}
lesarĂĐkĂÔÂpc
bggcetuƯeyxÔƯ
pyttÂÊĂƯgtvnĐ
ycgƠgkyƠoĐkkb
qiÂÊÊsÊboikƠe
rldÊqclatslsi
ĂatlbnƯĐtdybÊ
omrdrlpxshÂĐi
ƯyƯpivpĐhtrĐa
oiapqocksvvku
ptvvĐtvÂmÊydm
hyĐÔatyalqoÔc
\end{bt}
\begin{bt}
lesarĂĐkĂÔÂpc
bggcetuƯeyxÔƯ
pyttÂÊĂƯgtvnĐ
ycgƠgkyƠoĐkkb
qiÂÊÊsÊboikƠe
rldÊqclatslsi
ĂatlbnƯĐtdybÊ
omrdrlpxshÂĐi
ƯyƯpivpĐhtrĐa
oiapqocksvvku
ptvvĐtvÂmÊydm
hyĐÔatyalqoÔc
\end{bt}
\end{document}

これまで試したことは次のとおりです。

  • 2番目の演習と3番目の演習の内容を英語に変更します。同じ問題が発生します。
  • 1 回目の練習の内容を英語に変更すると、問題は解決します。
  • 1 番目の練習の内容を他のベトナム語のテキストに変更すると、問題は解決します。
  • 最初の演習で \ を削除し、各段落の後に空白行を使用しても、問題は同じままです。
  • 最初の演習の最後の文を削除すると、問題は解決します。最初の 2 つの段落を削除し、演習の最後の文のみを残すと、問題は解決します。

最後の 2 つのアクションから、環境によって文字数によって間隔が変更される可能性があることが示唆されましたが、最初の演習の内容を長いベトナム語テキストに変更すると、問題は解決しました。

それで、ここでの問題は何でしょうか?

助けてください。ありがとう。

答え1

を使用したい\addvspace

\documentclass[12pt, a4paper, oneside]{book}
\usepackage{amsmath}
\usepackage{tgpagella}
\usepackage[utf8]{vietnam}

%\usepackage{parskip}

\newcounter{bt}[chapter]

\newenvironment{bt}[1][]{%
  \refstepcounter{bt}%
  \par\addvspace{\medskipamount}%
  \noindent\textbf{Bài~\thebt. #1}\rmfamily\ignorespaces
}{\par\addvspace{\medskipamount}}

\begin{document}

\section{Bài tập chương I}

\begin{bt}
Viết một chương trình yêu cầu người dùng nhập tên của mình, 
sau đó chương trình sẽ in ra một thông điệp chào mừng người dùng, 
sử dụng tên của họ.

Ví dụ, nếu người dùng nhập X, chương trình nên in ra Chào mừng, X. \\
Hãy sử dụng bình luận trong từng bước bài làm của mình để diễn giải mã. 
\end{bt}

\begin{bt}
lesar ĂĐkĂÔÂpc
bggce tuƯeyxÔƯ
pytt ÊĂƯgtvnĐ
ycgƠg kyƠo Đkkb
qiÂÊÊ sÊboikƠe
rldÊq clatslsi
Ăatlb nƯĐtdybÊ
omrdr lpxshÂĐi
ƯyƯpi vpĐhtrĐa
oiapq ocksvvku
ptvvĐ tvÂmÊydm
hyĐÔa tyalqoÔc
\end{bt}

\begin{bt}
lesarĂ ĐkĂÔÂpc
bggcet uƯeyxÔƯ
pyttÂÊ ĂƯgtvnĐ
ycgƠgk yƠo Đkkb
qiÂÊÊs ÊboikƠe
rldÊqc latslsi
Ăatlbn ƯĐtdybÊ
omrdrl pxshÂĐi
Ưy Ưpiv pĐhtrĐa
oiapqo cksvvku
ptvvĐt vÂmÊydm
hyĐÔat yalqoÔc
\end{bt}

\end{document}

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

関連情報