使用 tikz draw 命令的 \hrulefill 行为

使用 tikz draw 命令的 \hrulefill 行为

我想要用蒂克兹下面就像\hfill\hrulefill行一样。不使用任何外部包有什么想法吗?

\documentclass{article}
\usepackage{tikz}
\NewDocumentCommand{\dottedLine}{m}{%
  \tikz \draw [blue, dotted, thick] (0,0) -- (#1,0);
}

\begin{document}
  Name: {\color{blue}\hrulefill} \quad Date: {\color{blue}\rule{1in}{0.5pt}}\par
  Name: \dottedLine{2in} \quad Date: {\color{blue}\rule{1in}{0.5pt}}
\end{document}

在此处输入图片描述

答案1

如果您希望点像 一样起作用\hrulefill,只需用代替即可。在这种情况下\dotfill不需要。虽然我最初怀疑是否可以“填充”,但 Andrew Stacey(见评论)向我保证它可以这样做。tikztikz

可以通过重新定义默认间距来修改点间距.44em

\documentclass{article}
\usepackage{xcolor}
\begin{document}
  Name: {\color{blue}\dotfill} \quad Date: {\color{blue}\rule{1in}{0.5pt}}\par

Change dot spacing to .33em
\makeatletter
\renewcommand \dotfill {\leavevmode \cleaders \hb@xt@ .33em{\hss .\hss }\hfill \kern \z@}
\makeatother

  Name: {\color{blue}\dotfill} \quad Date: {\color{blue}\rule{1in}{0.5pt}}\par
\end{document}

在此处输入图片描述

答案2

关于该问题的可能解决方案的一些说明,以及 TikZ 有用的示例。

感谢@StevenB.Segletes 和@AndrewStacey 提供的帮助建议:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{fancyvrb}
\DefineShortVerb{\|}

\newcommand\tikzname{Ti\emph{k}Z}
\newcommand\datePart{\quad Date: {\color{blue}\rule{1in}{0.5pt}}}

\begin{document}
  \begin{itemize}
    \item
      Using |\hrulefill|:\par
      Name: {\color{blue}\hrulefill} \datePart
    \item
      Using |\dotfill|:\par
      Name: {\color{blue}\dotfill} \datePart
    \item 
      Using |\dotfill| with custom 0.25em spacing:\par
      \makeatletter
        \renewcommand \dotfill {\leavevmode \cleaders \hb@xt@ .25em{\hss .\hss }\hfill \kern \z@}
      \makeatother
      Name: {\color{blue}\dotfill} \datePart
    \item 
      Using \tikzname\ to hfill line: \par
      Name: \tikzmark{a}\hfill\tikz[remember picture, overlay] \draw[blue, dotted, thick] (pic cs:a) -- (0,0); \datePart
    \item 
      Using \tikzname\ to hfill rectangle: \\[8pt]   
      Name: \tikzmark{b}\hfill\tikz[rounded corners=4pt, remember picture, overlay] \draw [blue, thick, overlay] (0,12pt) rectangle ([shift={(0,-2pt)}]pic cs:b);  \datePart
  \end{itemize}
\end{document}

在此处输入图片描述

相关内容