10 关于一段文字末输出“证毕”符号小方块的问题

发布于 2024-07-17 09:08:34

我希望在一段文字末输出一个类似数学中的"证毕"符号小方块,满足:

如果该行文字最右端的字符距右边缘的水平间距小于小方块占据的水平间距,就把小方块放在该行的下一行的最右边。

否则就把小方块放在该行的最右边。

mwe:

\documentclass{ctexart}
\usepackage{amsmath,amsfonts}

\begin{document}

1.这是一段占满一整行的内容,这是一段占满一整行的内容,这是一。\par\hfill $\square$

2.这是一段占满一整行的内容,这是一段占满一整行的内容。\par\hfill $\square$

\end{document}

效果如下:212d5f3f1905f8d2da605f509a613a3a.png

以上第一段内容小方块由于放不下,所以就放在该行的下一行的最右边,这满足要求。

但第二段小方块可以在该行放下,应该放在该行最右边。

我希望 tex 能够自动判断以上方块是否换行输出,诸如用条件语句等方式实现。

请问该如何实现?谢谢。

查看更多

关注者
0
被浏览
808
Swit
Swit 2024-07-17
LaTeX nubility!

如果你看了 TeXBook 第14章的最后,你就会找到一种解决方案:

\documentclass{ctexart}
\usepackage{amsmath,amsfonts}
\def\autoqed{{\unskip\nobreak\hfil\penalty50
  \hskip2em\hbox{}\nobreak\hfil $\square$%
  \parfillskip=0pt \finalhyphendemerits=0 \par}}
\begin{document}

1.这是一段占满一整行的内容,这是一段占满一整行的内容,这是一。\autoqed

2.这是一段占满一整行的内容,这是一段占满一整行的内容。\autoqed

\end{document}
3 个回答
1210
1210 2024-07-17
道阻且长,行则将至,行而不辍,未来可期

删掉par即可

\documentclass{ctexart}
\usepackage{amsmath,amsfonts}

\begin{document}

1.这是一段占满一整行的内容,这是一段占满一整行的内容,这是一。\par\hfill $\square$

2.这是一段占满一整行的内容,这是一段占满一整行的内容。\hfill $\square$

\end{document}

本地环境: win11 23H2 + TeX Live 2024 + XeLaTeX 编译通过
image.png

shadow
shadow 2024-07-17
这家伙很懒,什么也没写!

抱歉,是我问题未叙述清晰,已修改问题

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览