
Defini um novo ambiente para os exercícios no meu livro e funcionou bem até este ponto onde as distâncias entre dois exercícios não são iguais como segue:
Aqui está meu 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}
Aqui está o que tentei até agora:
- Altere o conteúdo do 2º exercício e do 3º exercício para inglês. O mesmo problema ocorre.
- Mude o conteúdo do 1º exercício para inglês, problema resolvido.
- Mude o conteúdo do primeiro exercício para outro texto vietnamita, o problema está resolvido.
- Remova o \ do 1º exercício e use uma linha em branco após cada parágrafo, o problema permanece o mesmo.
- Remova a última frase do 1º exercício e o problema estará resolvido. Remova os dois primeiros parágrafos e deixe apenas a última frase do exercício, então o problema está resolvido.
Minhas duas últimas ações me sugeriram que pode ser que o ambiente mude o espaçamento pelo número de caracteres, mas quando eu mudo o conteúdo dos primeiros exercícios em um texto vietnamita mais longo, o problema está resolvido.
Então, qual é o problema aqui?
Por favor me ajude. Obrigado.
Responder1
Você quer usar \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}