Latex3: \tl_if_integer:n ์ •์˜

์— ๋งŒ๋“  2021๋…„ 07์›” 05์ผ  ยท  19์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: latex3/latex3

์•ˆ๋…•,

๋‚ด๋ถ€ __int_to_ roman:w ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ† ํฐ ๋ชฉ๋ก์ด ์ •์ˆ˜์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

\prg_new_conditional:Npnn \tl_if_integer:n #1 { p, T, F, TF }
{
  \tl_if_blank:oTF { \__int_to_roman:w -0#1 }
   {
    \prg_return_true:
   }
   {
    \prg_return_false:
   }
}

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

\str_if_integer:nTF ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•˜์ง€๋งŒ ํ—ˆ์šฉ๋˜๋Š” ์ •์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€๋Š” ์•„์ง ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ธฐํ˜ธ ์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ํ—ˆ์šฉ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ TeX๊ฐ€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ •์ˆ˜ ๋‚ด์—์„œ๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

\romannumeral ๊ธฐ๋ฐ˜ ์ฝ”๋“œ๋Š” "์ˆซ์ž๊ฐ€ ๋„ˆ๋ฌด ํผ" ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ๊ธด ์ˆซ์ž ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” ํ•œ ๋ฒˆ์— ๋ช‡ ์ž๋ฆฟ์ˆ˜๋งŒ ์žก๋Š” ๋” ๋Š๋ฆฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, ์ž๋ฆฟ์ˆ˜ ์‚ฌ์ด์˜ ๊ณต๋ฐฑ์„ ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค.

๋Œ€์•ˆ/์ถ”๊ฐ€๋Š” \str_to_integer:nF ๋กœ ๋ฌธ์ž์—ด์ด ์ •์ˆ˜์ฒ˜๋Ÿผ "์ถฉ๋ถ„ํžˆ" ๋ณด์ธ๋‹ค๋ฉด(๋‹ค์†Œ ๋Š์Šจํ•˜๋‹ค๊ณ  ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ(๊ทธ๋Ÿฌ๋‚˜ ์ž˜ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Œ)) ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋ฅผ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์— ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค.

๋ชจ๋“  19 ๋Œ“๊ธ€

๋” ๋‚˜์€ ์—ฌ๊ธฐ:

\prg_new_conditional:Npnn \tl_if_integer:n #1 { p, T, F, TF }
{
  \tl_if_blank:nTF{#1}
    {
      \prg_return_false:
    }
    {
      \tl_if_blank:oTF { \__int_to_roman:w -0#1 }
      {
        \prg_return_true:
      }
      {
        \prg_return_false:
      }
    }
}

์ด๋ฆ„์ด ์ด์ƒํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ •์ˆ˜๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์˜ˆ: -5 ๋Š” ์ •์ˆ˜์ด์ง€๋งŒ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  +7 ๋„ false๋ฅผ ๋ฐ˜ํ™˜ํ•จ). ์ˆซ์ž๋งŒ ์žˆ์œผ๋ฉด ํ…Œ์ŠคํŠธ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

@zauguin ์ด๋ฆ„์€ ๊ดœ์ฐฎ์ง€๋งŒ ๊ธฐ๋Šฅ์€ ์œ ์šฉํ•˜๊ณ  tex book์˜ ์ด์ „ ๋ˆˆ๊ธˆ๊ณผ ์ผ์น˜ํ•˜์—ฌ ์ˆซ์ž์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜๋ฅผ ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜์ง€๋งŒ ์†๋„๊ฐ€ ๋Š๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์˜๊ฒฌ์œผ๋กœ ๊ฐœ์„ :

\prg_new_conditional:Npnn \tl_if_digit:n #1 { p, T, F, TF }
{
  \tl_if_blank:nTF{#1}
    {
      \prg_return_false:
    }
    {
      \tl_if_blank:oTF { \__int_to_roman:w -0#1 }
      {
        \prg_return_true:
      }
      {
        \prg_return_false:
      }
    }
  }
\prg_generate_conditional_variant:Nnn \tl_if_digit:n { o } { p, T, F, TF }
\prg_new_conditional:Npnn \__tl_if_integer:n #1 { p, T, F, TF }
{
    \exp_args:No\str_if_eq:onTF{\tl_head:n{#1}}{+}
    {
      \exp_args:No\tl_if_digit:oTF{\tl_tail:n{#1}}
      {
        \prg_return_true:
      }
      {
        \prg_return_false:
      }
    }
    {
      \exp_args:No\str_if_eq:onTF{\tl_head:n{#1}}{-}
      {
        \exp_args:No\tl_if_digit:oTF{\tl_tail:n{#1}}
        {
          \prg_return_true:
        }
        {
          \prg_return_false:
        }
      }
      {
        \prg_return_false:
      }
    }
}
\prg_new_conditional:Npnn \tl_if_integer:n #1 { p, T, F, TF }
{
  % fast path
  \tl_if_digit:nTF{#1}
  {
    \prg_return_true:
  }
  {
    % slow path
    \__tl_if_integer:nTF{#1}
    {
      \prg_return_true:
    }
    {
      \prg_return_false:
    }
  }
}

@bastien-roucaries TeX๋Š” ์ˆซ์ž ์•ž์— ์—ฌ๋Ÿฌ ๊ธฐํ˜ธ๋ฅผ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ํ…Œ์ŠคํŠธ๋กœ ์ถฉ๋ถ„ํ•˜์ง€๋งŒ ํ•ญ์ƒ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ตฌํ˜„๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ธฐํ˜ธ๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

\ExplSyntaxOn
\prg_new_conditional:Npnn \str_if_integer:n #1 { p, T, F, TF }
  { \exp_after:wN \__str_if_integer_sign:N \tl_to_str:n {#1} \scan_stop: }
\cs_new:Npn \__str_if_integer_sign:N #1
  {
    \if:w $
        \if_meaning:w - #1 F \fi:
        \if_meaning:w + #1 F \fi: $
      \exp_after:wN \__str_if_integer_digits:w \exp_after:wN #1
    \else:
      \exp_after:wN \__str_if_integer_sign:N
    \fi:
  }
\cs_new:Npn \__str_if_integer_digits:w #1 \scan_stop:
  {
    \tl_if_blank:nTF {#1}
      { \prg_return_false: }
      {
        \tl_if_blank:oTF { \__int_to_roman:w -0#1 }
          { \prg_return_true: }
          { \prg_return_false: }
      }
  }

\cs_new:Npn \test #1
  { \typeout { #1: \str_if_integer:nTF {#1} { INT } { NOT } } }

\test {   }
\test { ~ }
\test { 1 }
\test { - }
\test { -1 }
\test { +1 }
\test { +-+-+-1 }

\stop

ํ…Œ์ŠคํŠธ๋Š” ์ธ์ˆ˜์—์„œ ํ† ํฐ ํ™•์žฅ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ str ์ž…๋‹ˆ๋‹ค. ๊ด‘์‚ฐ๊ณผ ๊ท€ํ•˜์˜ ๊ตฌํ˜„ ๋ชจ๋‘ ๊ธฐํ˜ธ๋ฅผ ํ™•์žฅํ•˜์ง€ ์•Š์ง€๋งŒ \romannumeral ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆซ์ž๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. tl ๋ฒ„์ „์€ ์•„๋งˆ๋„ ํ•„์š”์— ๋”ฐ๋ผ ๋ชจ๋“  ๊ฒƒ์„ ํ™•์žฅํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

\str_if_integer:nTF ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•˜์ง€๋งŒ ํ—ˆ์šฉ๋˜๋Š” ์ •์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€๋Š” ์•„์ง ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ธฐํ˜ธ ์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ํ—ˆ์šฉ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ TeX๊ฐ€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ •์ˆ˜ ๋‚ด์—์„œ๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

\romannumeral ๊ธฐ๋ฐ˜ ์ฝ”๋“œ๋Š” "์ˆซ์ž๊ฐ€ ๋„ˆ๋ฌด ํผ" ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ๊ธด ์ˆซ์ž ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์šฐ๋ฆฌ๋Š” ํ•œ ๋ฒˆ์— ๋ช‡ ์ž๋ฆฟ์ˆ˜๋งŒ ์žก๋Š” ๋” ๋Š๋ฆฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, ์ž๋ฆฟ์ˆ˜ ์‚ฌ์ด์˜ ๊ณต๋ฐฑ์„ ๊ฐ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค.

๋Œ€์•ˆ/์ถ”๊ฐ€๋Š” \str_to_integer:nF ๋กœ ๋ฌธ์ž์—ด์ด ์ •์ˆ˜์ฒ˜๋Ÿผ "์ถฉ๋ถ„ํžˆ" ๋ณด์ธ๋‹ค๋ฉด(๋‹ค์†Œ ๋Š์Šจํ•˜๋‹ค๊ณ  ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ(๊ทธ๋Ÿฌ๋‚˜ ์ž˜ ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Œ)) ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋ฅผ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์— ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค.

@blefloch \romannumeral์˜ ๋ฌธ์„œํ™”๋œ ์ œํ•œ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@bastien-roucaries TeX๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ •์ˆ˜: 2ยณยนโˆ’1 = 2147483647.

@PhelypeOleinik @blefloch ๋Š” +-+-+-+-+-+-+-+-+-+-+-+-+00000000000000000000000000000000000000000000000000000000000000000

๊ทธ๋ž˜์„œ ์ตœ๋Œ€ ๋ฌธ์ž์—ด ํฌ๊ธฐ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@bastien-roucaries \romannumeral ๋Š” 0์ด ์•„๋‹Œ ์ˆซ์ž์— ๋Œ€ํ•ด "์ˆซ์ž๊ฐ€ ๋„ˆ๋ฌด ํผ"์œผ๋กœ๋งŒ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. TeX๋Š” ๊ฒฐ๊ณผ ์ •์ˆ˜๊ฐ€ [โˆ’2ยณยนโˆ’1, 2ยณยนโˆ’1] ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋Š” ํ•œ ์ž„์˜๋กœ ๊ธด 0 ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@bastien-roucaries @blefloch 16์ง„์ˆ˜ ๋˜๋Š” 8์ง„์ˆ˜ ํ˜•์‹์˜ ์ •์ˆ˜๋ฅผ ์žŠ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ 

-`a

๋„ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

l3bitset \__bitset_test_digits:nTF ์˜ ์ˆซ์ž์— ๋Œ€ํ•œ ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ•„์š”ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐํ˜ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์ง€๋งŒ ์ •์ˆ˜ ํ‘œํ˜„์‹์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@eg9 ๊ฐ€ ๋ฐฉ๊ธˆ ์•”์‹œํ–ˆ๋“ฏ์ด ์‹ค์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ˆซ์ž ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ๋ฌธ์„œ ๊ฒ€์‚ฌ์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ๋ฌธ์ž์—ด์ด expl3 ์ •์ˆ˜ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์œ ํšจํ•œ ์ž…๋ ฅ์ธ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ํ›„์ž๋Š” expl3 ์ปจํ…์ŠคํŠธ์—์„œ ๋” ์œ ์šฉํ•ด ๋ณด์ด๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ \numexpr#1 ๋’ค์— ์•„๋ฌด๊ฒƒ๋„ ๋‚จ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์ˆซ์ž ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ๋Š๋ฆฐ ๊ฒ€์‚ฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@davidcarlisle ์ด ๋ฒ„๊ทธ๋Š” ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์— ๊ด€ํ•œ ๊ฒƒ์ด์ง€๋งŒ ๋‘ ๋ฒˆ์งธ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ํŠน๋ณ„ํ•œ ์ƒํ™ฉ์—์„œ (์•„๋งˆ๋„) ์œ ์šฉํ•˜์ง€๋งŒ ์ •๊ธฐ์ ์œผ๋กœ ํ•„์š”ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ์ž„์˜์˜ ํ™•์žฅ์œผ๋กœ L3 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณ„์ธต์„ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์— ์ฐฌ์„ฑํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ์ด๊ฒƒ์€ ํ•˜๋‚˜์˜ ๊ทธ๋Ÿฌํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฑธ๋กœ ์‹œ์ž‘ํ•˜๋ฉด ๋์€ ์–ด๋””์ผ๊นŒ์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํŠน๋ณ„ํ•œ "์ด๊ฒƒ์€ X์ž…๋‹ˆ๋‹ค"๋ฅผ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด์— ๋Œ€ํ•œ ๋‚˜์˜ ํˆฌํ‘œ๋Š” ์•„๋‹ˆ์˜ค์ž…๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์–ธ์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

@FrankMittelbach TL์—์„œ ์ผ๋ถ€ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์•„๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ™•์žฅ ์ปจํ…์ŠคํŠธ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํ•จ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค(ํ™•์žฅ ์ปจํ…์ŠคํŠธ์—์„œ ์ž‘๋™ํ•˜๋ ค๋ฉด ์ด ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค)

์˜์‹ฌ์˜ ์—ฌ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ต์‹ฌ ์–ธ์–ด์— ํฌํ•จ๋˜๋Š” ๊ฒƒ์„ ๋ณด์ฆํ•  ๋งŒํผ ์œ ์šฉํ•ฉ๋‹ˆ๊นŒ(๋˜๋Š” ์‹ค์ œ๋กœ ํ•„์š”ํ•  ๋•Œ ์ผ๋ถ€ ํŒจํ‚ค์ง€ ์ฝ”๋“œ์˜ ์ผ๋ถ€๋กœ ์ œ๊ณต๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ)? ๊ทธ๊ฒƒ์€ ์—ฌ๊ธฐ์—์„œ ์ €์—๊ฒŒ ์งˆ๋ฌธ์ด๋ฉฐ ์ง€๊ธˆ๊นŒ์ง€ ํฌํ•จ์„ ์ฐฌ์„ฑํ•˜๋Š” ์ฃผ์žฅ์„ ์‹ค์ œ๋กœ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

"์ฐจ์›์ž…๋‹ˆ๊นŒ?", "๊ฑด๋„ˆ๋›ฐ๊ธฐ์ž…๋‹ˆ๊นŒ?", " ๊ทธ๋ƒฅ ๊ธ€์ž์ž…๋‹ˆ๊นŒ?", "๋น„ ASCII ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?", "๋‚ ์งœ ํ˜•์‹์ž…๋‹ˆ๊นŒ?" ๋ฐ, ๊ทธ๋ฆฌ๊ณ , ๊ทธ๋ฆฌ๊ณ  ... ๊ฐ€๋Šฅ์„ฑ์€ ๋งค์šฐ ๊ฐœ๋ฐฉ์ ์ด๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ•œ๋‘ ๊ฐ€์ง€ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 99%์˜ ์‹œ๊ฐ„์€ ๊ทธ๋ƒฅ ๊ฑฐ๊ธฐ์— ์•‰์•„์„œ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณต๊ฐ„์€ ๊ณผ๊ฑฐ์™€ ๊ฐ™์ด ํ”„๋ฆฌ๋ฏธ์—„์ด ์•„๋‹ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ํ•ต์‹ฌ ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ๊ณผ ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ์ด ๊ธฐ๋Šฅ์ด ๊ด‘๋ฒ”์œ„ํ•˜๊ณ  ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ํฌํ•จ ํ›„๋ณด๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์„ค๋“๋ ฅ ์žˆ๋Š” ์ฃผ์žฅ์„ ๋“ฃ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ์ฝ”๋“œ์˜ ์ผ๋ถ€๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@FrankMittelbach ๋ฌธ์ œ๋Š” biblatex์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ•„๋“œ๊ฐ€ ์ •์ˆ˜์ธ์ง€(ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ์— ๋Œ€ํ•ด ์ƒ๊ฐ) ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ปจํ…์ŠคํŠธ์—์„œ ์ด์— ๋Œ€ํ•ด ์•ฝ๊ฐ„์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Ok ti๋Š” ๊ตฌ์ฒด์ ์ด์ง€๋งŒ ๊นŒ๋‹ค๋กœ์šด ๋ถ€๋ถ„์€ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํ…Œ์ŠคํŠธ๋Š” ๋ฌธ์„œํ™”๋˜์–ด์•ผ๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ biblatex ์ฝ”์–ด๋Š” ํ† ํฐ์ด ์ •์ˆ˜์ธ ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ(ํ™•์žฅ ๊ฐ€๋Šฅ)๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์€ ์ •๊ทœ์‹์„ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค)

์˜คํ•ดํ•˜์ง€ ๋งˆ์„ธ์š”. ์ €๋Š” ์šฐ๋ฆฌ๊ฐ€ biblatex ์ธก์—์„œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค๋Š” ๊ฒƒ์— ์ „ํ˜€ ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์—์„œ ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํ•ต์‹ฌ์ด ๋˜์–ด์•ผ ํ•˜๋Š” ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ๋ˆ„๋ฝ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์š”์ ์€ ํ•ต์‹ฌ์ด "์ผ๋ฐ˜์ ์ธ" ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ œํ•œ๋˜์–ด์•ผ ํ•˜๊ณ  ํŠน์ˆ˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ผ๋ฐ˜ ํ† ๋Œ€๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•˜์ง€๋งŒ ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ํ™•์žฅ์„ ์ œ๊ณตํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: biblatex๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ). ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฒฐ๊ตญ ๋งค์šฐ ๋ถ€ํ’€๋ ค์ง„ ๋ช…๋ น ์„ธํŠธ๋กœ ๋๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž‘์—…์„ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ œํ•œ๋œ ๊ธฐ๋Šฅ์ด๋‚˜ ์†๋„ ์ €ํ•˜ ๋˜๋Š” ๋‘˜ ๋ชจ๋‘์—์„œ ๋ง‰๋Œ€ํ•œ ๊ฐ€๊ฒฉํ‘œ๋ฅผ ์ˆ˜๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ •๊ทœ์‹์„ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์€ ์ƒ๊ฐ์ธ์ง€ ์˜์‹ฌ์Šค๋Ÿฝ๊ธด ํ•˜์ง€๋งŒ @blefloch ๊ฐ€ ์ด์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋” ์ž์„ธํžˆ ์•Œ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ: ์–ด๋”˜๊ฐ€์— ํ•„๋“œ๊ฐ€ ์„ค์ •๋˜๊ณ  ํ• ๋‹น์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋‹จ๊ณ„์—์„œ ์ •์ˆ˜ ๋˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์‹ค์„ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค(๋„์›€์ด ๋˜๊ฑฐ๋‚˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ํ•„๋“œ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์€ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰