为什么 \uline 有时会变得更粗更暗(与文本其余部分的下划线不一致)?

为什么 \uline 有时会变得更粗更暗(与文本其余部分的下划线不一致)?

我需要使用包\uline中的(或类似的东西)ulem自定义命令。有时,当我使用此自定义命令时(在 mwe 中,我刚刚使用\uline),与标准相比,我得到了特别暗、重(粗)的下划线。

对于可能相关的背景:我正在使用 LaTeX,用 latexmk(通过 Vimtex)进行编译,并使用 Okular 查看。

为什么会发生这种情况?我该如何阻止它?

这种影响在多段落中最为明显。下面是第二段的最后一行:

\documentclass{article}

\usepackage{ulem}j

\begin{document}
\uline{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque laoreet lorem nec nulla sagittis, eu molestie lacus rutrum. Sed iaculis, est a faucibus rutrum, lacus lacus pellentesque magna, sed dignissim lorem arcu id est. Duis in convallis est. Duis gravida nisi quis turpis placerat, ut sagittis nunc tempus. Quisque pulvinar lectus nec orci scelerisque, id hendrerit metus tempor. Duis volutpat faucibus posuere. Ut semper turpis varius nibh ultrices luctus. Integer interdum urna vestibulum consectetur tempor. Nunc sed nibh tempus, aliquet erat non, ornare nibh.}

\uline{Donec viverra nec augue vitae commodo. Cras mollis ac sapien in pulvinar. Maecenas viverra ante a blandit tincidunt. Aliquam porta convallis lacus, sed mollis risus venenatis nec. Praesent eget tortor elit. Duis id ultrices lectus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas sapien tellus, posuere ut lacus at, feugiat lobortis purus. Quisque condimentum magna in rutrum iaculis. Duis at justo quis nulla faucibus blandit vitae eu arcu.}

\uline{Donec fringilla vitae nibh nec sagittis. Sed bibendum dictum dolor sed vehicula. Nulla metus massa, sodales ut consectetur id, rhoncus at elit. Donec orci libero, ornare at mi at, congue mattis orci. Aenean laoreet lectus eget risus ornare porttitor. Morbi sagittis in velit et sagittis. Praesent eu hendrerit orci, faucibus iaculis massa. Nam magna lacus, tincidunt vel justo eu, aliquam mollis risus. Fusce facilisis, mauris in porta pellentesque, nisl augue commodo mi, pellentesque rhoncus nibh leo id risus. Aliquam erat volutpat. Vivamus at velit lacinia, mattis massa sed, molestie odio. Phasellus feugiat in elit vitae consectetur. Nullam ullamcorper quam sed vestibulum tempor. Vestibulum vel tempor magna.}
\end{document}

我最初的例子包括一个\renewcommand{\ULdepth}{1.6pt}命令(因为它是我的自定义命令的一部分),在这种情况下,我可以用一个单词获得相同的效果(虽然不太明显。但使用上面的 MWE 我不能。

任何帮助都值得感激,谢谢!

答案1

我认为您发现下划线的粗细(暗度)在文档中随机变化。我看不到您的 mwe 的效果,但使用时效果很好\setlength{\ULdepth}{1.6pt}...但这只是运气!在查看文档的每个缩放级别下都会有所不同,并且它适用于所有规则(绘制的线条),包括表格和脚注上方。

问题在于理想文档如何栅格化到输出设备,可能将线条粗细四舍五入为整数像素。结果取决于输出设备/视图的像素密度,以及准备视图的程序使用的优先级。如果显示器试图将下划线的上边缘和下边缘尽可能靠近其标称位置,则厚度将随机变化一个像素,您在使用 xdvi 和其他可能的情况下经常会看到这种情况。Pdf(la)tex 将尝试优先考虑线条粗细,而不是精确位置,即使\ULdepth设置了,我也看不出查看示例的 pdf 有什么问题。

这个问题的特点是,暗线和亮线在每个不同的缩放级别上都会切换,而当你放大时,问题就会消失。如果你正在为特定的打印机制作输出,那么将其设置为\ULthickness打印机像素大小的精确倍数会有所帮助。

请注意,您应该使用\setlength进行更改\ULdepth,但这\ULthickness是一个需要重新定义的命令

\renewcommand\ULthickness{0.006666667in} % 2 pixels on a 300 dpi printer

由于现代 TeX 引擎上有更多的寄存器可用,它将来应该会成为一个长度寄存器。

答案2

欢迎来到 TeX.SE。对于您的解决方案,我的简短回答可能是使用\ULthickness减小厚度的值1.3pt(例如)删除使用\ULdepth

\documentclass{article}
\usepackage{ulem}
\renewcommand{\ULthickness}{1.3pt}
\begin{document}
\uline{foo}
\end{document}

在此处输入图片描述

...并且...你还会有....

\documentclass{article}

\usepackage{ulem}

\renewcommand{\ULthickness}{1.3pt}
\begin{document}
\uline{Donec fringilla vitae nibh nec sagittis. Sed bibendum dictum dolor sed vehicula. Nulla metus massa, sodales ut consectetur id, rhoncus at elit. Donec orci libero, ornare at mi at, congue mattis orci. Aenean laoreet lectus eget risus ornare porttitor. Morbi sagittis in velit et sagittis. Praesent eu hendrerit orci, faucibus iaculis massa. Nam magna lacus, tincidunt vel justo eu, aliquam mollis risus. Fusce facilisis, mauris in porta pellentesque, nisl augue commodo mi, pellentesque rhoncus nibh leo id risus. Aliquam erat volutpat. Vivamus at velit lacinia, mattis massa sed, molestie odio. Phasellus feugiat in elit vitae consectetur. Nullam ullamcorper quam sed vestibulum tempor. Vestibulum vel tempor magna.}
\end{document}

在此处输入图片描述

相关内容