동일한 유형의 두 환경 사이의 수직 거리에 대한 질문

동일한 유형의 두 환경 사이의 수직 거리에 대한 질문

나는 내 책에서 연습을 위한 새로운 환경을 정의했고 두 연습 사이의 거리가 다음과 같이 동일하지 않은 이 시점까지는 잘 작동했습니다.

여기에 이미지 설명을 입력하세요

내 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

을(를) 사용하고 싶습니다 \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}

여기에 이미지 설명을 입력하세요

관련 정보