Skip to content

Instantly share code, notes, and snippets.

@qdaibungei
Last active July 11, 2021 09:25
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save qdaibungei/4230bb59434ec1ba505bc94dbfde1898 to your computer and use it in GitHub Desktop.
%
% jdash.sty
%
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{jdash}[2021/07/11 v0.4a]
\RequirePackage{graphicx}
\def\jdsh@style{\relax}
\def\jdsh@wdashstyle{\relax}
\newcounter{jdsh@cnt}
\setcounter{jdsh@cnt}{0}
\chardef\jdsh@zs=\jis"2121\relax % 全角スペース
\def\jdsh@zenkakujdash{―}
\def\jdsh@keisen{─}
\def\jdsh@rule{rule}
\def\jdsh@wavedash{〜}
\def\jdsh@zenkakutilde{~}
\def\jdsh@wavydash{〰}
\newcommand{\jdash}{\relax}
\newcommand{\jdashstyle}[1]{%
\def\jdsh@style{#1}%
\ifx\jdsh@style\jdsh@zenkakujdash
\renewcommand{\jdash}[1]{%
\setcounter{jdsh@cnt}{1}%
\@whilenum\value{jdsh@cnt}<##1\do{\stepcounter{jdsh@cnt}―\kern-.5zw―\kern-.5zw}%
\jdsh@zenkakujdash
}%
\fi
\ifx\jdsh@style\jdsh@rule
\renewcommand{\jdash}[1]{%
\jdsh@zs\kern-1zw
\ifydir
\rule[.3595zw]{##1zw}{.041zw}% 0.88 - 0.5 - (0.041 / 2) = 0.3595
\else
\rule[-.0205zw]{##1zw}{.041zw}% 0.041 / 2 = 0.0205
\fi
\kern-1zw\jdsh@zs
}%
\fi
\ifx\jdsh@style\jdsh@keisen
\renewcommand{\jdash}[1]{%
\setcounter{jdsh@cnt}{1}%
\jdsh@zs\kern-1zw
\@whilenum\value{jdsh@cnt}<##1\do{\stepcounter{jdsh@cnt}\jdsh@keisen\kern0zw}%
\jdsh@keisen
\kern-1zw\jdsh@zs
}%
\fi
}
\newcommand{\wdashKerningAmount}[1]{\def\jdsh@wdashKA{#1zw}}
\wdashKerningAmount{.25}
\newcommand{\wdash}{\relax}
\newcommand{\〜}{〜}
\newcommand{\~}{~}
\newcommand{\wdashstyle}[1]{%
\def\jdsh@wdashstyle{#1}%
\ifx\jdsh@wdashstyle\jdsh@wavedash
\renewcommand{\〜}{%
\jdsh@zs\kern-1zw
\@ifnextchar\〜{\jdsh@wavedash\kern-\jdsh@wdashKA}{\jdsh@wavedash\kern-1zw\jdsh@zs}%
}%
\let\~=\〜
\renewcommand{\wdash}[1]{%
\setcounter{jdsh@cnt}{1}%
\jdsh@zs\kern-1zw
\@whilenum\value{jdsh@cnt}<##1\do{\stepcounter{jdsh@cnt}\jdsh@wavedash\kern-\jdsh@wdashKA}%
\jdsh@wavedash\kern-1zw\jdsh@zs
}%
\fi
\ifx\jdsh@wdashstyle\jdsh@zenkakutilde
\def\~{%
\jdsh@zs\kern-1zw
\@ifnextchar\~{\jdsh@zenkakutilde\kern-\jdsh@wdashKA}{\jdsh@zenkakutilde\kern-1zw\jdsh@zs}%
}%
\let\〜=\~
\renewcommand{\wdash}[1]{%
\setcounter{jdsh@cnt}{1}%
\jdsh@zs\kern-1zw
\@whilenum\value{jdsh@cnt}<##1\do{\stepcounter{jdsh@cnt}\jdsh@zenkakutilde\kern-\jdsh@wdashKA}%
\jdsh@zenkakutilde\kern-1zw\jdsh@zs
}%
\fi
\ifx\jdsh@wdashstyle\jdsh@wavydash
\def\jdsh@wave{%
\leavevmode\kern0zw\hbox to 1zw{%
\ifydir
\else
\rotatebox[origin=c]{-90}{〰}\fi
}\kern0zw
}%
\renewcommand{\~}{%
\jdsh@zs\kern-1zw
\@ifnextchar\~{\jdsh@wave}{\jdsh@wave\kern-1zw\jdsh@zs}%
}%
\let\〜=\~
\renewcommand{\wdash}[1]{%
\setcounter{jdsh@cnt}{1}%
\jdsh@zs\kern-1zw
\@whilenum\value{jdsh@cnt}<##1\do{\stepcounter{jdsh@cnt}\jdsh@wave}%
\jdsh@wave
\kern-1zw\jdsh@zs
}%
\fi
}
\jdashstyle{―}
\wdashstyle{〜}
\def\――{\jdash{2}}
\endinput
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment