예제 #1
0
        private void InterletterSpaceJP(UChar letterBefore, float zwSizeBefore, UChar letterAfter, float zwSizeAfter, out float zwSpaceSize, out float baseSize)
        {
            var beforeSpaceType = letterBefore.GetSpaceType();
            var afterSpaceType = letterAfter.GetSpaceType();

            switch (beforeSpaceType)
            {
                case SpaceType.Closing:
                    switch (afterSpaceType)
                    {
                        case SpaceType.Closing:
                        case SpaceType.DividingPunctuation:
                        case SpaceType.MiddleDots:
                            zwSpaceSize = 0F;
                            baseSize = zwSizeBefore;
                            break;
                        case SpaceType.Opening:
                        case SpaceType.Normal:
                        default:
                            zwSpaceSize = 0.5F;
                            baseSize = zwSizeBefore;
                            break;
                    }
                    break;
                case SpaceType.DividingPunctuation:
                    switch (afterSpaceType)
                    {
                        case SpaceType.Closing:
                        case SpaceType.DividingPunctuation:
                            zwSpaceSize = 0F;
                            baseSize = zwSizeBefore;
                            break;
                        case SpaceType.MiddleDots:
                            zwSpaceSize = 0.25F;
                            baseSize = zwSizeAfter;
                            break;
                        case SpaceType.Opening:
                            zwSpaceSize = 0.5F;
                            baseSize = zwSizeAfter;
                            break;
                        case SpaceType.Normal:
                        default:
                            zwSpaceSize = 1.0F;
                            baseSize = zwSizeBefore;
                            break;
                    }
                    break;
                case SpaceType.MiddleDots:
                    switch (afterSpaceType)
                    {
                        case SpaceType.Opening:
                            zwSpaceSize = 0.5F;
                            baseSize = zwSizeAfter;
                            break;
                        case SpaceType.Closing:
                        case SpaceType.DividingPunctuation:
                        case SpaceType.MiddleDots:
                            zwSpaceSize = 0F;
                            baseSize = zwSizeBefore;
                            break;
                        case SpaceType.Normal:
                        default:
                            zwSpaceSize = 0.25F;
                            baseSize = zwSizeBefore;
                            break;
                    }
                    break;
                case SpaceType.Opening:
                    switch (afterSpaceType)
                    {
                        case SpaceType.Opening:
                        case SpaceType.Closing:
                        case SpaceType.DividingPunctuation:
                        case SpaceType.MiddleDots:
                        case SpaceType.Normal:
                        default:
                            zwSpaceSize = 0F;
                            baseSize = zwSizeBefore;
                            break;
                    }
                    break;
                case SpaceType.Normal:
                default:
                    switch (afterSpaceType)
                    {
                        case SpaceType.Opening:
                            zwSpaceSize = 0.5F;
                            baseSize = zwSizeAfter;
                            break;
                        case SpaceType.MiddleDots:
                            zwSpaceSize = 0.25F;
                            baseSize = zwSizeAfter;
                            break;
                        case SpaceType.Closing:
                        case SpaceType.DividingPunctuation:
                        case SpaceType.Normal:
                        default:
                            zwSpaceSize = 0F;
                            baseSize = zwSizeBefore;
                            break;
                    }
                    break;
            }
        }
예제 #2
0
        private void InterletterSpaceJP(UChar letterBefore, float zwSizeBefore, UChar letterAfter, float zwSizeAfter, out float zwSpaceSize, out float baseSize)
        {
            var beforeSpaceType = letterBefore.GetSpaceType();
            var afterSpaceType  = letterAfter.GetSpaceType();

            switch (beforeSpaceType)
            {
            case SpaceType.Closing:
                switch (afterSpaceType)
                {
                case SpaceType.Closing:
                case SpaceType.DividingPunctuation:
                case SpaceType.MiddleDots:
                    zwSpaceSize = 0F;
                    baseSize    = zwSizeBefore;
                    break;

                case SpaceType.Opening:
                case SpaceType.Normal:
                default:
                    zwSpaceSize = 0.5F;
                    baseSize    = zwSizeBefore;
                    break;
                }
                break;

            case SpaceType.DividingPunctuation:
                switch (afterSpaceType)
                {
                case SpaceType.Closing:
                case SpaceType.DividingPunctuation:
                    zwSpaceSize = 0F;
                    baseSize    = zwSizeBefore;
                    break;

                case SpaceType.MiddleDots:
                    zwSpaceSize = 0.25F;
                    baseSize    = zwSizeAfter;
                    break;

                case SpaceType.Opening:
                    zwSpaceSize = 0.5F;
                    baseSize    = zwSizeAfter;
                    break;

                case SpaceType.Normal:
                default:
                    zwSpaceSize = 1.0F;
                    baseSize    = zwSizeBefore;
                    break;
                }
                break;

            case SpaceType.MiddleDots:
                switch (afterSpaceType)
                {
                case SpaceType.Opening:
                    zwSpaceSize = 0.5F;
                    baseSize    = zwSizeAfter;
                    break;

                case SpaceType.Closing:
                case SpaceType.DividingPunctuation:
                case SpaceType.MiddleDots:
                    zwSpaceSize = 0F;
                    baseSize    = zwSizeBefore;
                    break;

                case SpaceType.Normal:
                default:
                    zwSpaceSize = 0.25F;
                    baseSize    = zwSizeBefore;
                    break;
                }
                break;

            case SpaceType.Opening:
                switch (afterSpaceType)
                {
                case SpaceType.Opening:
                case SpaceType.Closing:
                case SpaceType.DividingPunctuation:
                case SpaceType.MiddleDots:
                case SpaceType.Normal:
                default:
                    zwSpaceSize = 0F;
                    baseSize    = zwSizeBefore;
                    break;
                }
                break;

            case SpaceType.Normal:
            default:
                switch (afterSpaceType)
                {
                case SpaceType.Opening:
                    zwSpaceSize = 0.5F;
                    baseSize    = zwSizeAfter;
                    break;

                case SpaceType.MiddleDots:
                    zwSpaceSize = 0.25F;
                    baseSize    = zwSizeAfter;
                    break;

                case SpaceType.Closing:
                case SpaceType.DividingPunctuation:
                case SpaceType.Normal:
                default:
                    zwSpaceSize = 0F;
                    baseSize    = zwSizeBefore;
                    break;
                }
                break;
            }
        }