![在 marginpar 中使用 `\nameref` 时出现意外换行](https://linux22.com/image/330157/%E5%9C%A8%20marginpar%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20%60%5Cnameref%60%20%E6%97%B6%E5%87%BA%E7%8E%B0%E6%84%8F%E5%A4%96%E6%8D%A2%E8%A1%8C.png)
我的文本中有一个意外的换行符\marginpar
,不知道它从何而来。它出现在文本的中间\nameref
... 有人看到这个错误吗?
\documentclass[a4paper,twoside]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{lipsum}
% customize Marginpar
\setlength{\marginparwidth}{1.2in}
\let\oldmarginpar\marginpar
\renewcommand\marginpar[1]{\-\oldmarginpar[\raggedleft\footnotesize #1]%
{\raggedright\footnotesize \textit{#1}}}
\usepackage{nameref} %Kann auch mit Namen des Kapitels referenzieren
\begin{document}
\chapter{Anforderungsdokument erstellen} \label{Anforderungenableiten}
\lipsum[1-10]
\chapter{bla}
\marginpar{siehe auch Abschnitt \ref{Anforderungenableiten} \nameref{Anforderungenableiten}}
\lipsum[1]
\end{document}
“erstellen”这个词实际上应该放在上一行……
提前致谢!
答案1
标准\raggedright
并不阻止 TeX 在行尾留下大量的空白,但是 TeX 在对段落倒数第二行进行连字符连接方面确实存在缺点,因此最终强制增加额外的行以使连字符不是倒数第二行是更为可取的。
该\RaggedRight
版本线尾处的柔性胶较少,这足以保持更平衡。
\documentclass[a4paper,twoside]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{lipsum}
\usepackage{ragged2e}
% customize Marginpar
\setlength{\marginparwidth}{1.2in}
\let\oldmarginpar\marginpar
\renewcommand\marginpar[1]{\-\oldmarginpar[\RaggedLeft\footnotesize #1]%
{\RaggedRight\footnotesize \textit{#1}}}
\usepackage{nameref} %Kann auch mit Namen des Kapitels referenzieren
\begin{document}
\chapter{Anforderungsdokument erstellen} \label{Anforderungenableiten}
\lipsum[1-10]
\chapter{bla}
\marginpar{siehe auch Abschnitt \ref{Anforderungenableiten} \nameref{Anforderungenableiten}}
\lipsum[1]
\end{document}