
\entry
참조 목록을 만들기 위해 매크로를 정의하고 싶습니다 .
내 시도는 다음과 같습니다.
\documentclass{article}
\pagestyle{empty}
\def\entry#1#2#3{\textbf{#1}~#2\dotfill#3\par}
\setlength{\parindent}{0pt}
\begin{document}
\entry{1}{aa aa aa aa aa aa aa aa aa aa aa aa a a a a}{48}
\entry{2}{bb bb bb bb bb bb bb bb bb bb bb bb b b b
b}{48, 56, 78}
\entry{3}{aaaa bbb ddd eeeeee cc cc ccc cc cc cc cc cc cc cc cc cc cc cc cc c c c
c}{123}
\entry{4}{aaaa bbb dddd eeeeeeeee cc cc ccc cc cc cc cc cc cc cc cc cc cc cc cc c c c
c}{123}
\entry{5}{aaaaaaa bbb ddd eeeeeeee cc cc ccc cc cc cc cc cc cc cc cc cc cc cc cc c c c
c}{123}
\entry{6}{aaaaaaa bbb ddd eeeeeeee cc cc ccc cc cc cc cc cc cc cc cc cc cc cc cc cc c
cccc\\\null}{123}
\end{document}
결과:
항목 1, 2, 3은 괜찮습니다. 그러나 항목 4와 5는 6번째 항목과 같아야 합니다.
\dotfill
항목 4와 5 대신 항목 6을 자동으로 얻으려면 어떤 매크로를 바꾸나요 ?
답변1
최소 너비는 2em이지만 사용자 정의가 가능합니다.
\documentclass{article}
\pagestyle{empty}
\makeatletter
\newcommand{\mdotfill}[1][2em]{%
\leavevmode
\linebreak[0]%
\mbox{}\nobreak
\cleaders \hb@xt@ .44em{\hss.\hss}\hskip #1 plus 1fill
\kern\z@
}
\makeatother
\newcommand{\entry}[3]{\textbf{#1}~#2\mdotfill#3\par}
\setlength{\parindent}{0pt}
\begin{document}
\entry{1}{aa aa aa aa aa aa aa aa aa aa aa aa a a a a}{48}
\entry{2}{bb bb bb bb bb bb bb bb bb bb bb bb b b b
b}{48, 56, 78}
\entry{3}{aaaa bbb ddd eeeeee cc cc ccc cc cc cc cc cc cc cc cc cc cc cc cc c c c
c}{123}
\entry{4}{aaaa bbb dddd eeeeeeeee cc cc ccc cc cc cc cc cc cc cc cc cc cc cc cc c c c
c}{123}
\entry{5}{aaaaaaa bbb ddd eeeeeeee cc cc ccc cc cc cc cc cc cc cc cc cc cc cc cc c c c
c}{123}
\entry{6}{aaaaaaa bbb ddd eeeeeeee cc cc ccc cc cc cc cc cc cc cc cc cc cc cc cc cc c
cccc\\\null}{123}
\end{document}